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