diff --git a/.abf.yml b/.abf.yml index 7697ebe..fd90c86 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,2 +1,2 @@ sources: - kubernetes-1.13.11.tar.gz: c7df65ee06e563e373004809569f383b9b463262 + kubernetes-1.20.2.tar.gz: 06d562409795c779a4826a71e50228f6eb969493 diff --git a/kubernetes.spec b/kubernetes.spec index 5733210..a99196c 100644 --- a/kubernetes.spec +++ b/kubernetes.spec @@ -2,16 +2,19 @@ %define debug_package %nil Name: kubernetes -Version: 1.13.11 +Version: 1.20.2 Release: 1 Summary: Production-Grade Container Scheduling and Management License: ASL 2.0 URL: https://kubernetes.io -Source0: %{name}-%{version}.tar.gz +Source0: https://github.com/kubernetes/kubernetes/archive/v%{version}/%{name}-%{version}.tar.gz +Source1: https://raw.githubusercontent.com/kubernetes/release/master/packages/rpm/kubelet.service +Source2: https://raw.githubusercontent.com/kubernetes/release/master/packages/rpm/10-kubeadm-post-1.11.conf +Source3: https://raw.githubusercontent.com/kubernetes/release/master/packages/rpm/kubelet.env Source1000: %{name}.rpmlintrc Group: Development/Other -BuildRequires: golang >= 1.12.1 -BuildRequires: git +BuildRequires: go >= 1.15 +BuildRequires: git-core BuildRequires: upx %description @@ -19,6 +22,8 @@ Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. +#------------------------------------------------------------ + %package -n kubectl Summary: Container Cluster Manager - Kubernetes client tools @@ -28,32 +33,31 @@ Command-line utility for interacting with a Kubernetes cluster %files -n kubectl %{_bindir}/kubectl +#------------------------------------------------------------ + %package -n kubeadm -Summary: Container Cluster Manager - Kubernetes Cluster Bootstrapping Tool -Requires: kubelet >= 1.8.0 -Requires: kubectl >= 1.8.0 -Requires: cni-plugins >= 0.7.5 -Requires: cri-tools >= 1.11.0 +Summary: Command-line utility for administering a Kubernetes cluster +Requires: kubelet >= 1.20.0 +Requires: kubectl >= 1.20.0 +Requires: cni-plugins >= 0.8.6 +Requires: cri-tools >= 1.20.0 %description -n kubeadm Command-line utility for deploying a Kubernetes cluster %files -n kubeadm %{_bindir}/kubeadm -%{_sysconfdir}/systemd/kubelet.service.d/10-kubeadm.conf -%{_sysconfdir}/sysconfig/kubelet -%dir %{_libexecdir}/modules-load.d -%{_libexecdir}/modules-load.d/kubeadm.conf -%{_prefix}/lib/sysctl.d/50-kubeadm.conf + +#------------------------------------------------------------ %package -n kubelet -Summary: Container Cluster Manager - Kubernetes Node Agent +Summary: Container Cluster Manager - Kubernetes Node Agent Requires: conntrack Requires: ebtables Requires: ethtool Requires: iproute Requires: iptables >= 1.4.21 -Requires: cni-plugins >= 0.7.5 +Requires: cni-plugins >= 0.8.6 Requires: socat Requires: util-linux Requires: systemd @@ -63,78 +67,80 @@ The node agent of Kubernetes, the container cluster manager %files -n kubelet %{_bindir}/kubelet -%attr(644,-,-) %{_unitdir}/kubelet.service +%{_unitdir}/kubelet.service +%{_unitdir}/kubelet.service.d/10-kubeadm.conf %{_sysconfdir}/kubernetes/manifests/ +%{_sysconfdir}/sysconfig/kubelet -%package client -Summary: Kubernetes client tools -BuildRequires: golang >= 1.12.0 -Requires: kubectl == %{version} +#------------------------------------------------------------ -%description client -Kubernetes client tools like kubectl +%package tools +Summary: Kubernetes tools -%files client -%doc *.md LICENSE -%{_bindir}/hyperkube +%description tools +Kubernetes tools -%package docs -Summary: Kubernetes documentations +%files tools +%{_bindir}/kube-* -%description docs -Kubernetes documentations +#------------------------------------------------------------ -%files docs -%doc docs/admin/*.md docs/user-guide/kubectl/*.md docs/yaml/kubectl/*.yaml docs/api-reference LICENSE +%package docs +Summary: Documentation for Kubernetes + +%description docs +Documentation for Kubernetes + +%files docs +%doc docs/admin docs/user-guide docs/yaml README.md LICENSE %{_mandir}/man1/* +#------------------------------------------------------------ + %prep %setup -q %build -%define GOPATH $RPM_BUILD_DIR/go -GOPATH=%{GOPATH} make +#create docs +hack/update-generated-docs.sh -hack/generate-docs.sh +make all GOLDFLAGS="-s -w" -upx _output/bin/kubeadm -upx _output/bin/kubelet -upx _output/bin/kubectl -upx _output/bin/hyperkube +#upx _output/bin/kubeadm +#upx _output/bin/kubelet +#upx _output/bin/kubectl +#upx _output/bin/* %install + +#make install install -dm0755 %{buildroot}%{_bindir} -install -dm0755 %{buildroot}%{_sysconfdir}/systemd/kubelet.service.d +install -dm0755 %{buildroot}%{_unitdir}/kubelet.service.d/ install -dm0755 %{buildroot}%{_sysconfdir}/sysconfig install -dm0755 %{buildroot}%{_sysconfdir}/kubernetes/manifests +install -dm0755 %{buildroot}%{_sysconfdir}/sysconfig/kubelet +install -dm0755 %{buildroot}%{_sysconfdir}/cni/net.d install -dm0755 %{buildroot}%{_libexecdir}/modules-load.d install -dm0755 %{buildroot}/usr/lib/sysctl.d install -dm0755 %{buildroot}%{_mandir}/man1 -install -dm0755 %{buildroot}%{_unitdir} # kubeadm -install -p -m 0755 -t %{buildroot}%{_bindir} _output/bin/kubeadm -install -p -m 0644 -t %{buildroot}%{_sysconfdir}/systemd/kubelet.service.d/ build/rpms/10-kubeadm.conf - -install -p -m 0644 -T build/rpms/kubelet.env %{buildroot}%{_sysconfdir}/sysconfig/kubelet -install -p -m 0644 -t %{buildroot}%{_libexecdir}/modules-load.d/ build/rpms/kubeadm.conf -install -p -m 0644 -t %{buildroot}/usr/lib/sysctl.d/ build/rpms/50-kubeadm.conf +install -Dm0755 _output/bin/kubeadm %{buildroot}%{_bindir}/kubeadm # kubelet -install -p -m 0755 -t %{buildroot}%{_bindir} _output/bin/kubelet -install -p -m 0644 build/rpms/kubelet.service %{buildroot}%{_unitdir} +install -Dm0755 _output/bin/kubelet %{buildroot}%{_bindir}/kubelet +install -Dm0644 %{SOURCE1} %{buildroot}%{_unitdir}/kubelet.service +install -Dm0644 %{SOURCE2} %{buildroot}%{_unitdir}/kubelet.service.d/10-kubeadm.conf +install -Dm0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/kubelet # kubectl -install -p -m 0755 -t %{buildroot}%{_bindir} _output/bin/kubectl +install -Dm0755 _output/bin/kubectl %{buildroot}%{_bindir}/kubectl + +# other bins +install -Dm0755 _output/bin/kube-* %{buildroot}%{_bindir} # docs -install -p -m 0644 docs/man/man1/* %{buildroot}%{_mandir}/man1/ - -# client -install -p -m 0755 _output/bin/hyperkube %{buildroot}%{_bindir} - -# fix perm docs -find docs/ -type f -exec chmod 0644 {} \; +install -Dm0644 docs/man/man1/* %{buildroot}%{_mandir}/man1 %files -%doc README.md LICENSE CHANGELOG-*.md +%doc README.md LICENSE LICENSES