Browse code

Docker image name includes release, use stage RPMS for tdnf install

Change-Id: I41da67346ed72a4f77cefcc2e1b0d8de14a41aaf
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4082
Reviewed-by: Anish Swaminathan <anishs@vmware.com>
Tested-by: Anish Swaminathan <anishs@vmware.com>

Vinay Kulkarni authored on 2017/10/20 04:08:40
Showing 22 changed files
... ...
@@ -426,6 +426,7 @@ start-docker: check-docker
426 426
 	systemctl start docker
427 427
 
428 428
 k8s-docker-images: start-docker photon-docker-image
429
+	mkdir -p $(PHOTON_STAGE)/docker_images && \
429 430
 	cd ./support/dockerfiles/k8s-docker-images && \
430 431
 	./build-k8s-base-image.sh $(PHOTON_RELEASE_VERSION) $(PHOTON_BUILD_NUMBER) $(PHOTON_STAGE)  && \
431 432
 	./build-k8s-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
... ...
@@ -1,8 +1,7 @@
1
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
2 2
 
3 3
 MAINTAINER kulkarniv@vmware.com
4 4
 
5
-RUN tdnf install -y sed net-tools
6 5
 COPY [ "./tmp/calico/opt/cni/bin/calico", \
7 6
        "./tmp/calico/opt/cni/bin/calico-ipam", \
8 7
        "./tmp/calico/opt/cni/bin/portmap", \
... ...
@@ -1,4 +1,4 @@
1
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
2 2
 
3 3
 MAINTAINER kulkarniv@vmware.com
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
2 2
 
3 3
 MAINTAINER kulkarniv@vmware.com
4 4
 
... ...
@@ -6,7 +6,9 @@ MAINTAINER kulkarniv@vmware.com
6 6
 ENV DOCKER_API_VERSION 1.21
7 7
 
8 8
 # Install required packages
9
-RUN tdnf install -y initscripts iproute2 ipset iptables iputils net-tools runit
9
+COPY [ "./stage-rpms-tdnf.conf", "./tmp/stage-rpms.repo", "/tmp/tdnf/" ]
10
+RUN tdnf -c /tmp/tdnf/stage-rpms-tdnf.conf install -y initscripts iproute2 \
11
+         ipset iptables iputils runit --refresh
10 12
 
11 13
 # Copy binaries needed by calico/node
12 14
 COPY [ "./tmp/calico/usr/share/calico/docker/fs/etc", "/etc/" ]
... ...
@@ -1,10 +1,10 @@
1
-# Photon Base Build Container
2
-
3
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
4 2
 
5 3
 MAINTAINER kulkarniv@vmware.com
6 4
 
7
-RUN tdnf install -y dnsmasq
5
+COPY [ "./stage-rpms-tdnf.conf", "./tmp/stage-rpms.repo", "/tmp/tdnf/" ]
6
+RUN tdnf -c /tmp/tdnf/stage-rpms-tdnf.conf install -y dnsmasq --refresh
7
+
8 8
 RUN echo "user=root" > /etc/dnsmasq.conf
9 9
 RUN mkdir -p /var/run/
10 10
 STOPSIGNAL SIGCONT
... ...
@@ -1,10 +1,12 @@
1
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
2 2
 
3 3
 MAINTAINER kulkarniv@vmware.com
4 4
 
5 5
 ENV FLANNEL_ARCH=amd64
6 6
 
7
-RUN tdnf install -y iproute2 net-tools iptables
7
+COPY [ "./stage-rpms-tdnf.conf", "./tmp/stage-rpms.repo", "/tmp/tdnf/" ]
8
+RUN tdnf -c /tmp/tdnf/stage-rpms-tdnf.conf install -y iproute2 iptables --refresh
9
+
8 10
 ADD tmp/flannel/usr/bin/flanneld /opt/bin/flanneld
9 11
 COPY tmp/flannel/usr/share/flannel/docker/mk-docker-opts.sh /opt/bin/
10 12
 RUN ln -s /usr/sbin/iptables /usr/local/bin/iptables
... ...
@@ -1,6 +1,6 @@
1 1
 # Photon Base Build Container
2 2
 
3
-FROM vmware/photon
3
+FROM vmware/photon:2.0
4 4
 
5 5
 MAINTAINER kulkarniv@vmware.com
6 6
 
... ...
@@ -1,6 +1,4 @@
1
-# Photon Base Build Container
2
-
3
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
4 2
 
5 3
 MAINTAINER kulkarniv@vmware.com
6 4
 
... ...
@@ -4,7 +4,7 @@ FROM vmware/photon:2.0
4 4
 
5 5
 MAINTAINER kulkarniv@vmware.com
6 6
 
7
-RUN tdnf install -y ebtables iptables iproute2 shadow socat
7
+RUN tdnf install -y ebtables iptables iproute2 shadow socat --refresh
8 8
 ADD tmp/k8s/usr/bin/kube-proxy /usr/bin/kube-proxy
9 9
 RUN ln -s /usr/bin/kube-proxy /usr/local/bin/kube-proxy
10 10
 
... ...
@@ -1,8 +1,9 @@
1
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
2 2
 
3 3
 MAINTAINER kulkarniv@vmware.com
4 4
 
5
-RUN tdnf install -y shadow openssl nginx
5
+COPY [ "./stage-rpms-tdnf.conf", "./tmp/stage-rpms.repo", "/tmp/tdnf/" ]
6
+RUN tdnf -c /tmp/tdnf/stage-rpms-tdnf.conf install -y openssl nginx shadow --refresh
6 7
 RUN useradd --system --no-create-home -U -s /bin/false nginx
7 8
 
8 9
 # forward nginx access and error logs to stdout and stderr
... ...
@@ -1,6 +1,4 @@
1
-# Photon Base Build Container
2
-
3
-FROM vmware/photon:2.0
1
+FROM k8s-base-image:2.0
4 2
 
5 3
 MAINTAINER kulkarniv@vmware.com
6 4
 
... ...
@@ -1,5 +1,7 @@
1 1
 #!/bin/bash -e
2 2
 
3
+source common.inc
4
+
3 5
 DIST_TAG=$1
4 6
 DIST_VER=$2
5 7
 SPEC_DIR=$3
... ...
@@ -122,9 +124,9 @@ fi
122 122
 CALICO_NODE_IMG_NAME=vmware_photon_${DIST_VER}/calico-node:v${CALICO_VER}
123 123
 CALICO_CNI_IMG_NAME=vmware_photon_${DIST_VER}/calico-cni:v${CALICO_CNI_VER}
124 124
 CALICO_K8S_POLICY_IMG_NAME=vmware_photon_${DIST_VER}/calico-kube-policy-controller:v${CALICO_K8S_POLICY_VER}
125
-CALICO_NODE_TAR=calico-node-v${CALICO_VER}.tar
126
-CALICO_CNI_TAR=calico-cni-v${CALICO_CNI_VER}.tar
127
-CALICO_K8S_POLICY_TAR=calico-k8s-policy-v${CALICO_K8S_POLICY_VER}.tar
125
+CALICO_NODE_TAR=calico-node-v${CALICO_VER_REL}.tar
126
+CALICO_CNI_TAR=calico-cni-v${CALICO_CNI_VER_REL}.tar
127
+CALICO_K8S_POLICY_TAR=calico-k8s-policy-v${CALICO_K8S_POLICY_VER_REL}.tar
128 128
 
129 129
 NODE_IMG_ID=`docker images -q ${CALICO_NODE_IMG_NAME} 2> /dev/null`
130 130
 if [[ ! -z "${NODE_IMG_ID}" ]]; then
... ...
@@ -162,19 +164,21 @@ rpm2cpio ${K8S_CNI_RPM} | cpio -vid
162 162
 rpm2cpio ${CALICO_K8S_POLICY_RPM} | cpio -vid
163 163
 popd
164 164
 
165
+setup_repo
166
+
165 167
 docker build --rm -t ${CALICO_NODE_IMG_NAME} -f Dockerfile.calico-node .
166 168
 docker save -o ${CALICO_NODE_TAR} ${CALICO_NODE_IMG_NAME}
167 169
 gzip ${CALICO_NODE_TAR}
168
-mv -f ${CALICO_NODE_TAR}.gz ${STAGE_DIR}/
170
+mv -f ${CALICO_NODE_TAR}.gz ${STAGE_DIR}/docker_images/
169 171
 
170 172
 docker build --rm -t ${CALICO_CNI_IMG_NAME} -f Dockerfile.calico-cni .
171 173
 docker save -o ${CALICO_CNI_TAR} ${CALICO_CNI_IMG_NAME}
172 174
 gzip ${CALICO_CNI_TAR}
173
-mv -f ${CALICO_CNI_TAR}.gz ${STAGE_DIR}/
175
+mv -f ${CALICO_CNI_TAR}.gz ${STAGE_DIR}/docker_images/
174 176
 
175 177
 docker build --rm -t ${CALICO_K8S_POLICY_IMG_NAME} -f Dockerfile.calico-k8s-policy .
176 178
 docker save -o ${CALICO_K8S_POLICY_TAR} ${CALICO_K8S_POLICY_IMG_NAME}
177 179
 gzip ${CALICO_K8S_POLICY_TAR}
178
-mv -f ${CALICO_K8S_POLICY_TAR}.gz ${STAGE_DIR}/
180
+mv -f ${CALICO_K8S_POLICY_TAR}.gz ${STAGE_DIR}/docker_images/
179 181
 
180 182
 rm -rf ./tmp
... ...
@@ -1,5 +1,7 @@
1 1
 #!/bin/bash -e
2 2
 
3
+source common.inc
4
+
3 5
 DIST_TAG=$1
4 6
 DIST_VER=$2
5 7
 SPEC_DIR=$3
... ...
@@ -13,7 +15,7 @@ FLANNEL_VER=`cat ${SPEC_DIR}/flannel/flannel.spec | grep Version | cut -d: -f2 |
13 13
 FLANNEL_VER_REL=${FLANNEL_VER}-`cat ${SPEC_DIR}/flannel/flannel.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
14 14
 FLANNEL_RPM=flannel-${FLANNEL_VER_REL}${DIST_TAG}.${ARCH}.rpm
15 15
 FLANNEL_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${FLANNEL_RPM}
16
-FLANNEL_TAR=flannel-v${FLANNEL_VER}.tar
16
+FLANNEL_TAR=flannel-v${FLANNEL_VER_REL}.tar
17 17
 
18 18
 if [ ! -f ${FLANNEL_RPM_FILE} ]
19 19
 then
... ...
@@ -34,9 +36,12 @@ cp ${FLANNEL_RPM_FILE} tmp/flannel/
34 34
 pushd ./tmp/flannel
35 35
 rpm2cpio ${FLANNEL_RPM} | cpio -vid
36 36
 popd
37
+
38
+setup_repo
39
+
37 40
 docker build --rm -t ${IMG_NAME} -f Dockerfile.flannel .
38 41
 docker save -o ${FLANNEL_TAR} ${IMG_NAME}
39 42
 gzip ${FLANNEL_TAR}
40
-mv -f ${FLANNEL_TAR}.gz ${STAGE_DIR}/
43
+mv -f ${FLANNEL_TAR}.gz ${STAGE_DIR}/docker_images/
41 44
 
42 45
 rm -rf ./tmp
... ...
@@ -13,7 +13,7 @@ K8S_DASH_VER=`cat ${SPEC_DIR}/kubernetes-dashboard/kubernetes-dashboard.spec | g
13 13
 K8S_DASH_VER_REL=${K8S_DASH_VER}-`cat ${SPEC_DIR}/kubernetes-dashboard/kubernetes-dashboard.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
14 14
 K8S_DASH_RPM=kubernetes-dashboard-${K8S_DASH_VER_REL}${DIST_TAG}.${ARCH}.rpm
15 15
 K8S_DASH_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${K8S_DASH_RPM}
16
-K8S_DASH_TAR=kubernetes-dashboard-v${K8S_DASH_VER}.tar
16
+K8S_DASH_TAR=kubernetes-dashboard-v${K8S_DASH_VER_REL}.tar
17 17
 
18 18
 if [ ! -f ${K8S_DASH_RPM_FILE} ]
19 19
 then
... ...
@@ -40,7 +40,7 @@ cd img
40 40
 docker build --rm -t ${IMG_NAME} .
41 41
 docker save -o ${K8S_DASH_TAR} ${IMG_NAME}
42 42
 gzip ${K8S_DASH_TAR}
43
-mv -f ${K8S_DASH_TAR}.gz ${STAGE_DIR}/
43
+mv -f ${K8S_DASH_TAR}.gz ${STAGE_DIR}/docker_images/
44 44
 popd
45 45
 
46 46
 rm -rf ./tmp
... ...
@@ -1,5 +1,7 @@
1 1
 #!/bin/bash -e
2 2
 
3
+source common.inc
4
+
3 5
 DIST_TAG=$1
4 6
 DIST_VER=$2
5 7
 SPEC_DIR=$3
... ...
@@ -36,13 +38,15 @@ pushd ./tmp/k8dns
36 36
 rpm2cpio ${K8S_DNS_RPM} | cpio -vid
37 37
 popd
38 38
 
39
+setup_repo
40
+
39 41
 for K8S_BIN in ${K8S_DNS_BINS[*]}; do
40 42
     IMG_NAME=vmware_photon_${DIST_VER}/k8s-dns-${K8S_BIN}-amd64:${K8S_DNS_VER}
41
-    K8S_TAR_NAME=k8s-dns-${K8S_BIN}-${K8S_DNS_VER}.tar
43
+    K8S_TAR_NAME=k8s-dns-${K8S_BIN}-${K8S_DNS_VER_REL}.tar
42 44
     docker build --rm -t ${IMG_NAME} -f ./Dockerfile.${K8S_BIN} .
43 45
     docker save -o ${K8S_TAR_NAME} ${IMG_NAME}
44 46
     gzip ${K8S_TAR_NAME}
45
-    mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/
47
+    mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/docker_images/
46 48
 done
47 49
 
48 50
 rm -rf ./tmp
... ...
@@ -42,11 +42,11 @@ popd
42 42
 
43 43
 for K8S_BIN in ${K8S_BINS[*]}; do
44 44
     IMG_NAME=vmware_photon_${DIST_VER}/${K8S_BIN}-amd64:v${K8S_VER}
45
-    K8S_TAR_NAME=${K8S_BIN}-v${K8S_VER}.tar
45
+    K8S_TAR_NAME=${K8S_BIN}-v${K8S_VER_REL}.tar
46 46
     docker build --rm -t ${IMG_NAME} -f ./Dockerfile.${K8S_BIN} .
47 47
     docker save -o ${K8S_TAR_NAME} ${IMG_NAME}
48 48
     gzip ${K8S_TAR_NAME}
49
-    mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/
49
+    mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/docker_images/
50 50
 done
51 51
 
52 52
 
... ...
@@ -54,7 +54,7 @@ done
54 54
 # K8S Pause container
55 55
 #
56 56
 PAUSE_IMG_NAME=vmware_photon_${DIST_VER}/pause-amd64:v${K8S_VER}
57
-PAUSE_TAR_NAME=k8s-pause-v${K8S_VER}.tar
57
+PAUSE_TAR_NAME=k8s-pause-v${K8S_VER_REL}.tar
58 58
 
59 59
 PAUSE_IMG_ID=`docker images -q ${PAUSE_IMG_NAME} 2> /dev/null`
60 60
 if [[ ! -z "${PAUSE_IMG_ID}" ]]; then
... ...
@@ -65,6 +65,6 @@ fi
65 65
 docker build --rm -t ${PAUSE_IMG_NAME} -f ./Dockerfile.pause .
66 66
 docker save -o ${PAUSE_TAR_NAME} ${PAUSE_IMG_NAME}
67 67
 gzip ${PAUSE_TAR_NAME}
68
-mv -f ${PAUSE_TAR_NAME}.gz ${STAGE_DIR}/
68
+mv -f ${PAUSE_TAR_NAME}.gz ${STAGE_DIR}/docker_images/
69 69
 
70 70
 rm -rf ./tmp
... ...
@@ -34,10 +34,10 @@ pushd ./tmp/k8heapster
34 34
 rpm2cpio ${K8S_HEAPSTER_RPM} | cpio -vid
35 35
 popd
36 36
 
37
-K8S_TAR_NAME=k8s-heapster-${K8S_HEAPSTER_VER}.tar
37
+K8S_TAR_NAME=k8s-heapster-${K8S_HEAPSTER_VER_REL}.tar
38 38
 docker build --rm -t ${IMG_NAME} -f ./Dockerfile.heapster .
39 39
 docker save -o ${K8S_TAR_NAME} ${IMG_NAME}
40 40
 gzip ${K8S_TAR_NAME}
41
-mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/
41
+mv -f ${K8S_TAR_NAME}.gz ${STAGE_DIR}/docker_images/
42 42
 
43 43
 rm -rf ./tmp
... ...
@@ -1,5 +1,7 @@
1 1
 #!/bin/bash -e
2 2
 
3
+source common.inc
4
+
3 5
 DIST_TAG=$1
4 6
 DIST_VER=$2
5 7
 SPEC_DIR=$3
... ...
@@ -13,7 +15,7 @@ NGINX_INC_VER=`cat ${SPEC_DIR}/nginx-ingress/nginx-ingress.spec | grep Version |
13 13
 NGINX_INC_VER_REL=${NGINX_INC_VER}-`cat ${SPEC_DIR}/nginx-ingress/nginx-ingress.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
14 14
 NGINX_INC_RPM=nginx-ingress-${NGINX_INC_VER_REL}${DIST_TAG}.${ARCH}.rpm
15 15
 NGINX_INC_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${NGINX_INC_RPM}
16
-NGINX_INC_TAR=nginx-ingress-v${NGINX_INC_VER}.tar
16
+NGINX_INC_TAR=nginx-ingress-v${NGINX_INC_VER_REL}.tar
17 17
 
18 18
 if [ ! -f ${NGINX_INC_RPM_FILE} ]
19 19
 then
... ...
@@ -34,9 +36,12 @@ cp ${NGINX_INC_RPM_FILE} tmp/nginxinc/
34 34
 pushd ./tmp/nginxinc
35 35
 rpm2cpio ${NGINX_INC_RPM} | cpio -vid
36 36
 popd
37
+
38
+setup_repo
39
+
37 40
 docker build --rm -t ${IMG_NAME} -f Dockerfile.nginx-ingress .
38 41
 docker save -o ${NGINX_INC_TAR} ${IMG_NAME}
39 42
 gzip ${NGINX_INC_TAR}
40
-mv -f ${NGINX_INC_TAR}.gz ${STAGE_DIR}/
43
+mv -f ${NGINX_INC_TAR}.gz ${STAGE_DIR}/docker_images/
41 44
 
42 45
 rm -rf ./tmp
... ...
@@ -13,7 +13,7 @@ WAVEFRONT_PROXY_VER=`cat ${SPEC_DIR}/wavefront-proxy/wavefront-proxy.spec | grep
13 13
 WAVEFRONT_PROXY_VER_REL=${WAVEFRONT_PROXY_VER}-`cat ${SPEC_DIR}/wavefront-proxy/wavefront-proxy.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
14 14
 WAVEFRONT_PROXY_RPM=wavefront-proxy-${WAVEFRONT_PROXY_VER_REL}${DIST_TAG}.${ARCH}.rpm
15 15
 WAVEFRONT_PROXY_RPM_FILE=${STAGE_DIR}/RPMS/${ARCH}/${WAVEFRONT_PROXY_RPM}
16
-WAVEFRONT_PROXY_TAR=wavefront-proxy-v${WAVEFRONT_PROXY_VER}.tar
16
+WAVEFRONT_PROXY_TAR=wavefront-proxy-v${WAVEFRONT_PROXY_VER_REL}.tar
17 17
 
18 18
 if [ ! -f ${WAVEFRONT_PROXY_RPM_FILE} ]
19 19
 then
... ...
@@ -37,6 +37,6 @@ popd
37 37
 docker build --rm -t ${IMG_NAME} -f Dockerfile.wavefront-proxy .
38 38
 docker save -o ${WAVEFRONT_PROXY_TAR} ${IMG_NAME}
39 39
 gzip ${WAVEFRONT_PROXY_TAR}
40
-mv -f ${WAVEFRONT_PROXY_TAR}.gz ${STAGE_DIR}/
40
+mv -f ${WAVEFRONT_PROXY_TAR}.gz ${STAGE_DIR}/docker_images/
41 41
 
42 42
 rm -rf ./tmp
43 43
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+
1
+setup_repo()
2
+{
3
+    mkdir -p tmp
4
+    ln -fs ${STAGE_DIR}/RPMS tmp/RPMS
5
+    ETH0_IP=`ip -4 addr show eth0 scope global | grep 'inet ' | awk '{print $2}' | cut -f1  -d'/'`
6
+    cat stage-rpms.repo | sed 's/ETH0_IP/'"${ETH0_IP}"'/g' > tmp/stage-rpms.repo
7
+    if ! iptables -C INPUT -p tcp --dport 62965 -j ACCEPT &> /dev/null; then
8
+        iptables -A INPUT -p tcp --dport 62965 -j ACCEPT
9
+    fi
10
+    python3 -m http.server --bind ${ETH0_IP} 62965 &
11
+    PY_WS_PID=$!
12
+    if [ -z "${PY_WS_PID}" ]; then
13
+        echo "Failed to start repo server"
14
+        exit 1
15
+    fi
16
+    echo "tdnf repo server started with pid: " ${PY_WS_PID}
17
+}
18
+
19
+function cleanup_repo {
20
+  echo "Terminating tdnf repo server with pid: " ${PY_WS_PID}
21
+  kill ${PY_WS_PID}
22
+}
23
+trap cleanup_repo EXIT
0 24
new file mode 100644
... ...
@@ -0,0 +1,6 @@
0
+[main]
1
+gpgcheck=1
2
+installonly_limit=3
3
+clean_requirements_on_remove=true
4
+repodir=/tmp/tdnf
5
+cachedir=/var/cache/tdnf
0 6
new file mode 100644
... ...
@@ -0,0 +1,7 @@
0
+[stage-rpms]
1
+name=stage-rpms
2
+baseurl=http://ETH0_IP:62965/tmp/RPMS
3
+gpgkey=file:///etc/pki/rpm-gpg/VMWARE-RPM-GPG-KEY
4
+gpgcheck=0
5
+enabled=1
6
+skip_if_unavailable=True