Browse code

Add kubernetes-metrics-server

* Create kubernetes container images and rpm for metrics-server

Change-Id: If50871e1efbfa604cea9baa6a958d7a1b73b80ca
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5343
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George
(cherry picked from commit 994e0f7a71d7d133990a7e09230fa28331b54548)
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5367
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>

DheerajSShetty authored on 2018/07/12 07:27:18
Showing 4 changed files
... ...
@@ -442,6 +442,7 @@ k8s-docker-images: start-docker photon-docker-image
442 442
 	cd ./support/dockerfiles/k8s-docker-images && \
443 443
 	./build-k8s-base-image.sh $(PHOTON_RELEASE_VERSION) $(PHOTON_BUILD_NUMBER) $(PHOTON_STAGE)  && \
444 444
 	./build-k8s-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
445
+	./build-k8s-metrics-server-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE)  && \
445 446
 	./build-k8s-dns-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
446 447
 	./build-k8s-dashboard-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
447 448
 	./build-flannel-docker-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
448 449
new file mode 100644
... ...
@@ -0,0 +1,52 @@
0
+Summary:        Kubernetes Metrics Server
1
+Name:           kubernetes-metrics-server
2
+Version:        0.2.1
3
+Release:        1%{?dist}
4
+License:        Apache License 2.0
5
+URL:            https://github.com/kubernetes-incubator/metrics-server/%{name}-%{version}.tar.gz
6
+Source0:        %{name}-%{version}.tar.gz
7
+%define sha1    kubernetes-metrics-server-%{version}.tar.gz=ac18b1360aede4647c9dbaa72bddf735b228daf3
8
+Group:          Development/Tools
9
+Vendor:         VMware, Inc.
10
+Distribution:   Photon
11
+BuildRequires:  go
12
+
13
+%description
14
+In Kubernetes, resource usage metrics, such as container CPU and memory usage, are available through the Metrics API.
15
+These metrics can be either accessed directly by user, for example by using kubectl top command, or used by a controller
16
+in the cluster, e.g. Horizontal Pod Autoscaler, to make decisions.
17
+
18
+%prep -p exit
19
+%setup -qn metrics-server-%{version}
20
+
21
+%build
22
+export ARCH=amd64
23
+export VERSION=%{version}
24
+export PKG=k8s.io/dns
25
+export GOARCH=${ARCH}
26
+export GOHOSTARCH=${ARCH}
27
+export GOOS=linux
28
+export GOHOSTOS=linux
29
+export GOROOT=/usr/lib/golang
30
+export GOPATH=/usr/share/gocode
31
+export CGO_ENABLED=0
32
+mkdir -p ${GOPATH}/src/github.com/kubernetes-incubator/metrics-server
33
+cp -r * ${GOPATH}/src/github.com/kubernetes-incubator/metrics-server/
34
+pushd ${GOPATH}/src/github.com/kubernetes-incubator/metrics-server
35
+make build
36
+
37
+%install
38
+install -m 755 -d %{buildroot}%{_bindir}
39
+install -pm 755 -t %{buildroot}%{_bindir} ${GOPATH}/src/github.com/kubernetes-incubator/metrics-server/metrics-server
40
+
41
+
42
+%clean
43
+rm -rf %{buildroot}/*
44
+
45
+%files
46
+%defattr(-,root,root)
47
+%{_bindir}/metrics-server
48
+
49
+%changelog
50
+*   Tue Jul 10 2018 Dheeraj Shetty <dheerajs@vmware.com> 0.2.1-1
51
+-   kubernetes-metrics-server 0.2.1
0 52
new file mode 100644
... ...
@@ -0,0 +1,7 @@
0
+FROM k8s-base-image:2.0
1
+
2
+MAINTAINER dheerajs@vmware.com
3
+
4
+COPY tmp/k8smetserv/usr/bin/metrics-server /
5
+
6
+ENTRYPOINT ["/metrics-server"]
0 7
new file mode 100755
... ...
@@ -0,0 +1,43 @@
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-metrics-server
10
+#
11
+K8S_MET_SERV_VER=`cat ${SPEC_DIR}/kubernetes-metrics-server/kubernetes-metrics-server.spec | grep Version | cut -d: -f2 | tr -d ' '`
12
+K8S_MET_SERV_VER_REL=${K8S_MET_SERV_VER}-`cat ${SPEC_DIR}/kubernetes-metrics-server/kubernetes-metrics-server.spec | grep Release | cut -d: -f2 | tr -d ' ' | cut -d% -f1`
13
+K8S_MET_SERV_RPM=kubernetes-metrics-server-${K8S_MET_SERV_VER_REL}${DIST_TAG}.${ARCH}.rpm
14
+K8S_MET_SERV_RPM_FILE=${STAGE_DIR}/RPMS/x86_64/${K8S_MET_SERV_RPM}
15
+K8S_MET_SERV_TAR=kubernetes-metrics-server-v${K8S_MET_SERV_VER_REL}.tar
16
+
17
+if [ ! -f ${K8S_MET_SERV_RPM_FILE} ]
18
+then
19
+    echo "Kubernetes Metrics Server RPM ${K8S_MET_SERV_RPM_FILE} not found. Exiting.."
20
+    exit 1
21
+fi
22
+
23
+IMG_NAME=vmware/photon-${DIST_VER}-kubernetes-metrics-server-amd64:v${K8S_MET_SERV_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/k8smetserv
32
+cp ${K8S_MET_SERV_RPM_FILE} tmp/k8smetserv/
33
+pushd ./tmp/k8smetserv
34
+rpm2cpio ${K8S_MET_SERV_RPM} | cpio -vid
35
+popd
36
+
37
+docker build --rm -t ${IMG_NAME} -f ./Dockerfile.metrics-server .
38
+docker save -o ${K8S_MET_SERV_TAR} ${IMG_NAME}
39
+gzip ${K8S_MET_SERV_TAR}
40
+mv -f ${K8S_MET_SERV_TAR}.gz ${STAGE_DIR}/docker_images/
41
+
42
+rm -rf ./tmp