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