From 916edfdf4d867e70805a71015b34d40e278bdc90 Mon Sep 17 00:00:00 2001 From: Bradley G Smith Date: Feb 03 2024 21:52:36 +0000 Subject: Correct Obsoletes Handling Corrects handling of obsoletes to cover all packages older than v1.29. Initially failed to accommodate future updates to v1.28 release of kubernetes (now in copr). Also corrected output display of newrelease.sh. --- diff --git a/.gitignore b/.gitignore index 3949a38..c4a8055 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ newrelease.conf /kubernetes-506050d.tar.gz /kubernetes-be3af46.tar.gz /kubernetes-bc401b9.tar.gz +/kubernetes-1.29.1.tar.gz diff --git a/newrelease.sh b/newrelease.sh index 15d9765..776bd15 100755 --- a/newrelease.sh +++ b/newrelease.sh @@ -66,7 +66,7 @@ else echo " Edit ${CFG_NAME} with release information and rerun script" { printf "# spec file name\nexport SPEC_NAME=kubernetes\n\n" - printf "# spec template name and path\nTEMPLATE=./template/template.spec\n\n" + printf "# spec template name and path\nTEMPLATE=./template/kubernetes-template.spec\n\n" printf "# kubernetes release tag from git repository\n# e.g. export GIT_TAG=v1.24.3\nexport GIT_TAG=vxx.xx.xx\n\n" printf "# the 'built-with' golang version - expressed as SEMVER\n# e.g. export GOLANG_VERSION=1.18.3\nexport GOLANG_VERSION=xx.xx.xx" } >> "${CFG_NAME}" @@ -92,7 +92,7 @@ echo "Spec file: ${SPEC}" echo "Spec name: ${SPEC_NAME}" echo "Template: ${TEMPLATE}" echo "GIT Tag: ${GIT_TAG}" -echo "Tar Version: $TAR_VERSION}" +echo "Tar Version: ${TAR_VERSION}" echo "Version: ${SPEC_VERSION}" echo "Major:Minor: ${MAJ_MIN}" echo "Golang Version: ${GOLANG_VERSION}" diff --git a/sources b/sources index 843c138..7553854 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (kubernetes-bc401b9.tar.gz) = 3c55b2593dbe00de8dd537182248a18ab6635cfc374f8a1d54df03d7b84dc6ee85bf9fdf6cf222d86c547d4954bf5389d41dd1f9b674eaec2804e6d9a2152554 +SHA512 (kubernetes-1.29.1.tar.gz) = aee9da0fb1da355cbcdc9db584d99969c13cf8c4fce669f209b6e309cf059556f2820e66a90e8ea09dd56d7c289c6a9cb2bf817e2d260220c77d0a9cd2a4850a diff --git a/template/kubernetes-template.spec b/template/kubernetes-template.spec index 8d47aeb..c3b12c1 100644 --- a/template/kubernetes-template.spec +++ b/template/kubernetes-template.spec @@ -29,7 +29,7 @@ $WARNING # last release version of these rpms prior to F40 restructure # should not change once restructure goes into rawhide -%global switchver 1.28.6-4 +%global switchver 1.29.0 # Needed otherwise "version_ldflags=$(kube::version_ldflags)" doesn't work %global _buildshell /bin/bash @@ -99,9 +99,9 @@ Conflicts: %{name}-client > %{version}-%{release} # provides and obsoletes kubernetes-node and kubernetes-kubeadm Provides: kubernetes-kubeadm = %{version}-%{release} -Obsoletes: kubernetes-kubeadm <= %{switchver} +Obsoletes: kubernetes-kubeadm < %{switchver} Provides: kubernetes-node = %{version}-%{release} -Obsoletes: kubernetes-node <= %{switchver} +Obsoletes: kubernetes-node < %{switchver} %description %{summary} @@ -125,8 +125,8 @@ Conflicts: %{name} > %{version}-%{release} Installs kubectl, the Kubernetes command line client. ############################################## -%package legacy-systemd -Summary: Legacy systemd services for control plane and/or node +%package systemd +Summary: Systemd services for control plane and/or node BuildRequires: golang >= %{golangver} BuildRequires: systemd @@ -139,15 +139,18 @@ Requires: %{name} = %{version}-%{release} # obsoletes kubernetes-master in part Provides: kubernetes-master = %{version}-%{release} -Obsoletes: kubernetes-master <= %{switchver} - -%description legacy-systemd -Legacy systemd services needed for manual installation of Kubernetes -on control plane or node machines. Not needed for most modern clusters. -If kubeadm is used to bootstrap Kubernetes then this rpm is not -needed as kubeadm will install these services as static pods in -the cluster on nodes as needed. If these services are used, enable - all services on each control plane. Enable kube-proxy on all nodes. +Provides: kubernetes-legacy-systemd = %{version}-%{release} +Obsoletes: kubernetes-master < %{switchver} + +%description systemd +Systemd services needed for manual installation of Kubernetes +on control plane or node machines. If kubeadm is used to bootstrap +Kubernetes then this rpm is not needed as kubeadm will install +these services as static pods in the cluster on nodes as needed. +If these systemd services are used, enable all services except +kube-proxy on each control plane. Enable kube-proxy on all machines +nodes that runs kubelet, including control plane machines with +kubelet. ############################################## ############################################## @@ -362,7 +365,7 @@ fi ############################################## -%files legacy-systemd +%files systemd %license LICENSE %doc *.md %{_mandir}/man1/kube-apiserver.1* @@ -389,16 +392,16 @@ fi ############################################## -%pre legacy-systemd +%pre systemd %sysusers_create_compat %{SOURCE116} -%post legacy-systemd +%post systemd %systemd_post kube-apiserver kube-scheduler kube-controller-manager kube-proxy -%preun legacy-systemd +%preun systemd %systemd_preun kube-apiserver kube-scheduler kube-controller-manager kube-proxy -%postun legacy-systemd +%postun systemd %systemd_postun kube-apiserver kube-scheduler kube-controller-manager kube-proxy