Browse code

k8s docker images for dns and dashboard

Change-Id: Id40a22ac34e50d61c9d34c05e8d51bb03dfd7c82
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/3343
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Vinay Kulkarni <kulkarniv@vmware.com>

Vinay Kulkarni authored on 2017/07/24 00:44:04
Showing 6 changed files
... ...
@@ -86,7 +86,7 @@ clean-install clean-chroot build-updated-packages check generate-yaml-files
86 86
 
87 87
 THREADS?=1
88 88
 
89
-all: iso docker-image live-iso cloud-image-all src-iso
89
+all: iso photon-docker-image k8s-docker-images live-iso cloud-image-all src-iso
90 90
 
91 91
 micro: micro-iso
92 92
 	@:
... ...
@@ -379,7 +379,7 @@ generate-dep-lists:
379 379
 		--input-type=json --file $$f -d json -a $(PHOTON_DATA_DIR); \
380 380
 	done
381 381
 
382
-docker-image:
382
+photon-docker-image:
383 383
 	createrepo $(PHOTON_RPMS_DIR)
384 384
 	sudo docker build --no-cache --tag photon-build ./support/dockerfiles/photon
385 385
 	sudo docker run \
... ...
@@ -393,7 +393,13 @@ docker-image:
393 393
 		photon-build \
394 394
 		./support/dockerfiles/photon/make-docker-image.sh tdnf
395 395
 
396
-install-docker-image: docker-image
396
+k8s-docker-images:
397
+	systemctl start docker && \
398
+	cd ./support/dockerfiles/k8s-docker-images && \
399
+	./build-k8s-dns-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
400
+	./build-k8s-dashboard-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE)
401
+
402
+install-photon-docker-image: photon-docker-image
397 403
 	sudo docker build -t photon:tdnf .
398 404
 
399 405
 clean: clean-install clean-chroot
400 406
new file mode 100644
... ...
@@ -0,0 +1,14 @@
0
+# Photon Base Build Container
1
+
2
+FROM vmware/photon
3
+
4
+MAINTAINER kulkarniv@vmware.com
5
+
6
+RUN tdnf install -y dnsmasq
7
+RUN echo "user=root" > /etc/dnsmasq.conf
8
+RUN mkdir -p /var/run/
9
+STOPSIGNAL SIGCONT
10
+
11
+RUN mkdir -p /etc/k8s/dns/dnsmasq-nanny
12
+ADD tmp/k8dns/usr/bin/dnsmasq-nanny /dnsmasq-nanny
13
+ENTRYPOINT ["/dnsmasq-nanny"]
0 14
new file mode 100644
... ...
@@ -0,0 +1,8 @@
0
+# Photon Base Build Container
1
+
2
+FROM vmware/photon
3
+
4
+MAINTAINER kulkarniv@vmware.com
5
+
6
+ADD tmp/k8dns/usr/bin/kube-dns /kube-dns
7
+ENTRYPOINT ["/kube-dns"]
0 8
new file mode 100644
... ...
@@ -0,0 +1,10 @@
0
+# Photon Base Build Container
1
+
2
+FROM vmware/photon
3
+
4
+MAINTAINER kulkarniv@vmware.com
5
+
6
+ADD tmp/k8dns/usr/bin/sidecar /sidecar
7
+
8
+USER nobody:nobody
9
+ENTRYPOINT ["/sidecar"]
0 10
new file mode 100755
... ...
@@ -0,0 +1,45 @@
0
+#!/bin/bash -e
1
+
2
+DIST_TAG=$1
3
+DIST_VER=$2
4
+SPEC_DIR=$3
5
+STAGE_DIR=$4
6
+ARCH=x86_64
7
+
8
+#
9
+# Docker images for kubernetes-dashboard
10
+#
11
+K8S_DASH_VER=`cat ${SPEC_DIR}/kubernetes-dashboard/kubernetes-dashboard.spec | grep Version | cut -d: -f2 | tr -d ' '`
12
+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`
13
+K8S_DASH_RPM=kubernetes-dashboard-${K8S_DASH_VER_REL}${DIST_TAG}.${ARCH}.rpm
14
+K8S_DASH_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${K8S_DASH_RPM}
15
+K8S_DASH_TAR=k8s-dashboard.tar
16
+
17
+if [ ! -f ${K8S_DASH_RPM_FILE} ]
18
+then
19
+    echo "Kubernetes Dashboard RPM ${K8S_DASH_RPM_FILE} not found. Exiting.."
20
+    exit 1
21
+fi
22
+
23
+IMG_NAME=vmware/k8s-dashboard-${DIST_VER}:v${K8S_DASH_VER}
24
+
25
+IMG_ID=`docker images -q ${IMG_NAME} 2> /dev/null`
26
+if [[ ! -z "${IMG_ID}" ]]; then
27
+    echo "Removing image ${IMG_NAME}"
28
+    docker rmi -f ${IMG_NAME}
29
+fi
30
+
31
+mkdir -p tmp/k8dash
32
+cp ${K8S_DASH_RPM_FILE} tmp/k8dash/
33
+pushd ./tmp/k8dash
34
+rpm2cpio ${K8S_DASH_RPM} | cpio -vid
35
+mkdir -p img
36
+cp -p usr/bin/dashboard img/
37
+cp -p -r opt/k8dashboard/* img/
38
+cd img
39
+docker build --rm -t ${IMG_NAME} .
40
+docker save -o ${K8S_DASH_TAR} ${IMG_NAME}
41
+mv -f ${K8S_DASH_TAR} ${STAGE_DIR}/
42
+popd
43
+
44
+rm -rf ./tmp
0 45
new file mode 100755
... ...
@@ -0,0 +1,47 @@
0
+#!/bin/bash -e
1
+
2
+DIST_TAG=$1
3
+DIST_VER=$2
4
+SPEC_DIR=$3
5
+STAGE_DIR=$4
6
+ARCH=x86_64
7
+
8
+#
9
+# Docker images for kubernetes-dns artifacts
10
+#
11
+K8S_DNS_VER=`cat ${SPEC_DIR}/kubernetes-dns/kubernetes-dns.spec | grep Version | cut -d: -f2 | tr -d ' '`
12
+K8S_DNS_VER_REL=${K8S_DNS_VER}-`cat ${SPEC_DIR}/kubernetes-dns/kubernetes-dns.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
13
+K8S_DNS_RPM=kubernetes-dns-${K8S_DNS_VER_REL}${DIST_TAG}.${ARCH}.rpm
14
+K8S_DNS_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${K8S_DNS_RPM}
15
+K8S_DNS_BINS=(dnsmasq-nanny kube-dns sidecar)
16
+
17
+if [ ! -f ${K8S_DNS_RPM_FILE} ]
18
+then
19
+    echo "Kubernetes DNS RPM ${K8S_DNS_RPM_FILE} not found. Exiting.."
20
+    exit 1
21
+fi
22
+
23
+for K8S_BIN in ${K8S_DNS_BINS[*]}; do
24
+    IMG_NAME=vmware/k8s-dns-${K8S_BIN}-${DIST_VER}:v${K8S_DNS_VER}
25
+    IMG_ID=`docker images -q ${IMG_NAME} 2> /dev/null`
26
+    if [[ ! -z "${IMG_ID}" ]]; then
27
+        echo "Removing image ${IMG_NAME}"
28
+        docker rmi -f ${IMG_NAME}
29
+    fi
30
+done
31
+
32
+mkdir -p tmp/k8dns
33
+cp ${K8S_DNS_RPM_FILE} tmp/k8dns/
34
+pushd ./tmp/k8dns
35
+rpm2cpio ${K8S_DNS_RPM} | cpio -vid
36
+popd
37
+
38
+for K8S_BIN in ${K8S_DNS_BINS[*]}; do
39
+    IMG_NAME=vmware/k8s-dns-${K8S_BIN}-${DIST_VER}:v${K8S_DNS_VER}
40
+    K8S_TAR_NAME=k8s-dns-${K8S_BIN}.tar
41
+    docker build --rm -t ${IMG_NAME} -f ./Dockerfile.${K8S_BIN} .
42
+    docker save -o ${K8S_TAR_NAME} ${IMG_NAME}
43
+    mv -f ${K8S_TAR_NAME} ${STAGE_DIR}/
44
+done
45
+
46
+rm -rf ./tmp