%define debug %nil %define debug_package %nil Name: kubernetes Version: 1.13.11 Release: 1 Summary: Production-Grade Container Scheduling and Management License: ASL 2.0 URL: https://kubernetes.io Source0: %{name}-%{version}.tar.gz Source1000: %{name}.rpmlintrc Group: Development/Other BuildRequires: golang >= 1.12.1 BuildRequires: git BuildRequires: upx %description 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 %description -n kubectl 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 %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 Requires: conntrack Requires: ebtables Requires: ethtool Requires: iproute Requires: iptables >= 1.4.21 Requires: cni-plugins >= 0.7.5 Requires: socat Requires: util-linux Requires: systemd %description -n kubelet The node agent of Kubernetes, the container cluster manager %files -n kubelet %{_bindir}/kubelet %attr(644,-,-) %{_unitdir}/kubelet.service %{_sysconfdir}/kubernetes/manifests/ %package client Summary: Kubernetes client tools BuildRequires: golang >= 1.12.0 Requires: kubectl == %{version} %description client Kubernetes client tools like kubectl %files client %doc *.md LICENSE %{_bindir}/hyperkube %package docs Summary: Kubernetes documentations %description docs Kubernetes documentations %files docs %doc docs/admin/*.md docs/user-guide/kubectl/*.md docs/yaml/kubectl/*.yaml docs/api-reference LICENSE %{_mandir}/man1/* %prep %setup -q %build %define GOPATH $RPM_BUILD_DIR/go GOPATH=%{GOPATH} make hack/generate-docs.sh upx _output/bin/kubeadm upx _output/bin/kubelet upx _output/bin/kubectl upx _output/bin/hyperkube %install install -dm0755 %{buildroot}%{_bindir} install -dm0755 %{buildroot}%{_sysconfdir}/systemd/kubelet.service.d install -dm0755 %{buildroot}%{_sysconfdir}/sysconfig install -dm0755 %{buildroot}%{_sysconfdir}/kubernetes/manifests 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 # kubelet install -p -m 0755 -t %{buildroot}%{_bindir} _output/bin/kubelet install -p -m 0644 build/rpms/kubelet.service %{buildroot}%{_unitdir} # kubectl install -p -m 0755 -t %{buildroot}%{_bindir} _output/bin/kubectl # 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 {} \; %files %doc README.md LICENSE CHANGELOG-*.md