jchaloup pushed to kubernetes (master). "Decompose kubernetes into master and node subpackages (..more)"
notifications at fedoraproject.org
notifications at fedoraproject.org
Mon May 25 20:58:34 UTC 2015
From f709bab21d5102d2270cb8ae9d8d26a0a27c8d2c Mon Sep 17 00:00:00 2001
From: Jan Chaloupka <jchaloup at redhat.com>
Date: Tue, 12 May 2015 13:19:00 +0200
Subject: Decompose kubernetes into master and node subpackages Thanks to Avesh
for testing and patience. - related: #1211266
diff --git a/kubernetes.spec b/kubernetes.spec
index 5e56ae3..e684d80 100644
--- a/kubernetes.spec
+++ b/kubernetes.spec
@@ -20,7 +20,7 @@
Name: kubernetes
Version: 0.17.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Container cluster management
License: ASL 2.0
URL: %{import_path}
@@ -34,20 +34,10 @@ Patch0: build-with-debug-info.patch
# It obsoletes cadvisor but needs its source code (literally integrated)
Obsoletes: cadvisor
-%if 0%{?fedora} >= 21 || 0%{?rhel}
-Requires: docker
-%else
-Requires: docker-io
-%endif
-
-Requires(pre): shadow-utils
-
-BuildRequires: golang >= 1.2-7
-BuildRequires: systemd
-BuildRequires: etcd >= 2.0.8
-BuildRequires: hostname
-BuildRequires: rsync
-BuildRequires: NetworkManager
+# kubernetes is decomposed into master and node subpackages
+# require both of them for updates
+Requires: kubernetes-master = %{version}-%{release}
+Requires: kubernetes-node = %{version}-%{release}
%if 0%{?fedora}
# needed for go cover. Not available in RHEL/CentOS (available in Fedora/EPEL)
@@ -298,6 +288,50 @@ Requires: NetworkManager
%description unit-test
%{summary} - for running unit tests
+%package master
+Summary: Kubernetes services for master host
+
+BuildRequires: golang >= 1.2-7
+BuildRequires: systemd
+# below BRs used for testing
+BuildRequires: etcd >= 2.0.9
+BuildRequires: hostname
+BuildRequires: rsync
+
+Requires(pre): shadow-utils
+
+# if node is installed with node, version and release must be the same
+Conflicts: kubernetes-node < %{version}-%{release}
+Conflicts: kubernetes-node > %{version}-%{release}
+
+%description master
+Kubernetes services for master host
+
+%package node
+Summary: Kubernetes services for node host
+
+%if 0%{?fedora} >= 21 || 0%{?rhel}
+Requires: docker
+%else
+Requires: docker-io
+%endif
+
+BuildRequires: golang >= 1.2-7
+BuildRequires: systemd
+# below BRs used for testing
+BuildRequires: etcd >= 2.0.9
+BuildRequires: hostname
+BuildRequires: rsync
+
+Requires(pre): shadow-utils
+
+# if master is installed with node, version and release must be the same
+Conflicts: kubernetes-master < %{version}-%{release}
+Conflicts: kubernetes-master > %{version}-%{release}
+
+%description node
+Kubernetes services for node host
+
%prep
%autosetup -n %{name}-%{commit} -p1
@@ -386,29 +420,49 @@ echo "******Testing integration******"
%endif
%files
+# empty as it depends on master and node
+
+%files master
%doc README.md LICENSE CONTRIB.md CONTRIBUTING.md DESIGN.md
-%{_mandir}/man1/*
+%{_mandir}/man1/kube-apiserver.1*
+%{_mandir}/man1/kube-controller-manager.1*
+%{_mandir}/man1/kube-scheduler.1*
+%{_mandir}/man1/kubectl.1*
+%{_mandir}/man1/kubectl-*
%{_bindir}/kube-apiserver
-%{_bindir}/kubectl
%{_bindir}/kube-controller-manager
-%{_bindir}/kubelet
-%{_bindir}/kube-proxy
%{_bindir}/kube-scheduler
%{_bindir}/kube-version-change
+%{_bindir}/kubectl
+%{_datadir}/bash-completion/completions/kubectl
%{_unitdir}/kube-apiserver.service
-%{_unitdir}/kubelet.service
-%{_unitdir}/kube-scheduler.service
%{_unitdir}/kube-controller-manager.service
-%{_unitdir}/kube-proxy.service
+%{_unitdir}/kube-scheduler.service
%dir %{_sysconfdir}/%{name}
-%{_datadir}/bash-completion/completions/kubectl
-%dir /var/lib/kubelet
-%config(noreplace) %{_sysconfdir}/%{name}/config
%config(noreplace) %{_sysconfdir}/%{name}/apiserver
+%config(noreplace) %{_sysconfdir}/%{name}/scheduler
+%config(noreplace) %{_sysconfdir}/%{name}/config
%config(noreplace) %{_sysconfdir}/%{name}/controller-manager
-%config(noreplace) %{_sysconfdir}/%{name}/proxy
+%{_tmpfilesdir}/kubernetes.conf
+
+%files node
+%doc README.md LICENSE CONTRIB.md CONTRIBUTING.md DESIGN.md
+%{_mandir}/man1/kubelet.1*
+%{_mandir}/man1/kube-proxy.1*
+%{_mandir}/man1/kubectl.1*
+%{_mandir}/man1/kubectl-*
+%{_bindir}/kubelet
+%{_bindir}/kube-proxy
+%{_bindir}/kube-version-change
+%{_bindir}/kubectl
+%{_datadir}/bash-completion/completions/kubectl
+%{_unitdir}/kube-proxy.service
+%{_unitdir}/kubelet.service
+%dir %{_sharedstatedir}/kubelet
+%dir %{_sysconfdir}/%{name}
+%config(noreplace) %{_sysconfdir}/%{name}/config
%config(noreplace) %{_sysconfdir}/%{name}/kubelet
-%config(noreplace) %{_sysconfdir}/%{name}/scheduler
+%config(noreplace) %{_sysconfdir}/%{name}/proxy
%{_tmpfilesdir}/kubernetes.conf
%files unit-test
@@ -421,21 +475,41 @@ echo "******Testing integration******"
%{gopath}/src/%{import_path}
%endif
-%pre
+%pre master
+getent group kube >/dev/null || groupadd -r kube
+getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \
+ -c "Kubernetes user" kube
+
+%post master
+%systemd_post kube-apiserver kube-scheduler kube-controller-manager
+
+%preun master
+%systemd_preun kube-apiserver kube-scheduler kube-controller-manager
+
+%postun master
+%systemd_postun
+
+
+%pre node
getent group kube >/dev/null || groupadd -r kube
getent passwd kube >/dev/null || useradd -r -g kube -d / -s /sbin/nologin \
-c "Kubernetes user" kube
-%post
-%systemd_post kube-apiserver kube-scheduler kube-controller-manager kubelet kube-proxy
+%post node
+%systemd_post kubelet kube-proxy
-%preun
-%systemd_preun kube-apiserver kube-scheduler kube-controller-manager kubelet kube-proxy
+%preun node
+%systemd_preun kubelet kube-proxy
-%postun
+%postun node
%systemd_postun
%changelog
+* Mon May 25 2015 jchaloup <jchaloup at redhat.com> - 0.17.1-3
+- Decompose package into master and node subpackage.
+ Thanks to Avesh for testing and patience.
+ related: #1211266
+
* Mon May 25 2015 jchaloup <jchaloup at redhat.com> - 0.17.1-2
- Bump to upstream cf7b0bdc2a41d38613ac7f8eeea91cae23553fa2
related: #1211266
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/kubernetes.git/commit/?h=master&id=f709bab21d5102d2270cb8ae9d8d26a0a27c8d2c
More information about the scm-commits
mailing list