Browse code

Add kubectl-extras package.

To better support Kubernetes with multiple client operating
systems from vCenter, we'd really like to be able to package and
deliver kubectl for various operating systems (namely Windows,
Linux and macOS 64-bit x86 for now).

This patch adds support for a 'kubectl-extras' package which ships
all of the necessary kubectl versions in a VMware reserved /opt
directory, such that they aren't located in the system path by
default and can be easily extracted for delivery.

Change-Id: I09a322d248d2ebe74a6c6a7025420cd235ba6537
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5198
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George

Andrew Walton authored on 2018/05/17 02:58:31
Showing 1 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        Kubernetes cluster management
2 2
 Name:           kubernetes
3 3
 Version:        1.10.2
4
-Release:        2%{?dist}
4
+Release:        3%{?dist}
5 5
 License:        ASL 2.0
6 6
 URL:            https://github.com/kubernetes/kubernetes/archive/v%{version}.tar.gz
7 7
 Source0:        kubernetes-%{version}.tar.gz
... ...
@@ -36,6 +36,12 @@ Requires:       %{name} = %{version}
36 36
 %description    kubeadm
37 37
 kubeadm is a tool that enables quick and easy deployment of a kubernetes cluster.
38 38
 
39
+%package	kubectl-extras
40
+Summary:	kubectl binaries for extra platforms
41
+Group:		Development/Tools
42
+%description	kubectl-extras
43
+Contains kubectl binaries for additional platforms.
44
+
39 45
 %package        pause
40 46
 Summary:        pause binary
41 47
 Group:          Development/Tools
... ...
@@ -57,10 +63,15 @@ mkdir -p bin
57 57
 gcc -Os -Wall -Werror -static -o bin/pause-amd64 pause.c
58 58
 strip bin/pause-amd64
59 59
 popd
60
+make WHAT="cmd/kubectl" KUBE_BUILD_PLATFORMS="darwin/amd64 windows/amd64"
60 61
 
61 62
 %install
62 63
 install -vdm644 %{buildroot}/etc/profile.d
63 64
 install -m 755 -d %{buildroot}%{_bindir}
65
+install -m 755 -d %{buildroot}/opt/vmware/kubernetes
66
+install -m 755 -d %{buildroot}/opt/vmware/kubernetes/darwin/amd64
67
+install -m 755 -d %{buildroot}/opt/vmware/kubernetes/linux/amd64
68
+install -m 755 -d %{buildroot}/opt/vmware/kubernetes/windows/amd64
64 69
 
65 70
 binaries=(cloud-controller-manager hyperkube kube-aggregator kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler kubectl)
66 71
 for bin in "${binaries[@]}"; do
... ...
@@ -69,6 +80,11 @@ for bin in "${binaries[@]}"; do
69 69
 done
70 70
 install -p -m 755 -t %{buildroot}%{_bindir} build/pause/bin/pause-amd64
71 71
 
72
+# kubectl-extras
73
+install -p -m 755 -t %{buildroot}/opt/vmware/kubernetes/darwin/amd64/ _output/local/bin/darwin/amd64/kubectl
74
+install -p -m 755 -t %{buildroot}/opt/vmware/kubernetes/linux/amd64/ _output/local/bin/linux/amd64/kubectl
75
+install -p -m 755 -t %{buildroot}/opt/vmware/kubernetes/windows/amd64/ _output/local/bin/windows/amd64/kubectl.exe
76
+
72 77
 # kubeadm install
73 78
 install -vdm644 %{buildroot}/etc/systemd/system/kubelet.service.d
74 79
 install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/amd64/kubeadm
... ...
@@ -184,7 +200,15 @@ fi
184 184
 %defattr(-,root,root)
185 185
 %{_bindir}/pause-amd64
186 186
 
187
+%files kubectl-extras
188
+%defattr(-,root,root)
189
+/opt/vmware/kubernetes/darwin/amd64/kubectl
190
+/opt/vmware/kubernetes/linux/amd64/kubectl
191
+/opt/vmware/kubernetes/windows/amd64/kubectl.exe
192
+
187 193
 %changelog
194
+*   Tue May 23 2018 A. Walton <waltona@vmware.com> 1.10.2-3
195
+-   Add kubectl-extras package.
188 196
 *   Thu May 17 2018 Sharath George <sharathg@vmware.com> 1.10.2-2
189 197
 -   Add vke patch.
190 198
 *   Thu May 03 2018 Xiaolin Li <xiaolinl@vmware.com> 1.10.2-1