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>
... | ... |
@@ -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 | 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 |