Hello community, here is the log from the commit of package kubernetes for openSUSE:Factory checked in at 2020-04-18 00:29:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubernetes (Old) and /work/SRC/openSUSE:Factory/.kubernetes.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubernetes" Sat Apr 18 00:29:09 2020 rev:60 rq:794180 version:1.18.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kubernetes/kubernetes.changes 2020-04-09 23:14:13.562201881 +0200 +++ /work/SRC/openSUSE:Factory/.kubernetes.new.2738/kubernetes.changes 2020-04-18 00:30:33.754068730 +0200 @@ -2 +2 @@ -Mon Apr 6 10:23:14 UTC 2020 - Robert Munteanu <[email protected]> +Wed Apr 15 12:36:45 UTC 2020 - Richard Brown <[email protected]> @@ -4 +4,7 @@ -- Add fix-spn-prefix-added.patch, fixing upstream issue #89672 +- Declare Kubernetes 1.18.1 as default + +------------------------------------------------------------------- +Fri Apr 3 11:42:55 UTC 2020 - Richard Brown <[email protected]> + +- Introduce multi-version kubernetes packaging +- Remove fix-spn-prefix-added.patch kubeadm-opensuse-flexvolume.patch, kubeadm-opensuse-registry.patch and opensuse-version-checks.patch; Now located in version specific packages. Old: ---- 10-kubeadm.conf 90-kubeadm.conf _constraints _service _servicedata fix-spn-prefix-added.patch genmanpages.sh kubeadm-opensuse-flexvolume.patch kubeadm-opensuse-registry.patch kubeadm.conf kubelet.service kubelet.sh kubelet.tmp.conf kubernetes-1.17.4.tar.xz kubernetes-1.18.0.tar.xz kubernetes-rpmlintrc kubernetes.obsinfo opensuse-version-checks.patch sysconfig.kubelet-kubernetes New: ---- README.packaging ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubernetes.spec ++++++ --- /var/tmp/diff_new_pack.64N9gF/_old 2020-04-18 00:30:37.598076691 +0200 +++ /var/tmp/diff_new_pack.64N9gF/_new 2020-04-18 00:30:37.602076700 +0200 @@ -16,56 +16,19 @@ # -%{!?tmpfiles_create:%global tmpfiles_create systemd-tmpfiles --create} -# maxcriversion - version of cri-tools which is notsupported by this version of kubeadm. -%define maxcriversion 1.19 # baseversion - version of kubernetes for this package %define baseversion 1.18 -# prebaseversion - release of kubernetes for the previous supported kubelet version -%define prebaseversion 1.17 -# preversion - version of kubernetes for the previous supported kubelet version -%define preversion %{prebaseversion}.4 +# baseversionminus1 - previous version of kubernetes +%define baseversionminus1 1.17 Name: kubernetes -Version: 1.18.0 +Version: 1.18.1 Release: 0 Summary: Container Scheduling and Management License: Apache-2.0 Group: System/Management URL: http://kubernetes.io -Source: %{name}-%{version}.tar.xz -Source1: %{name}-%{preversion}.tar.xz -Source2: genmanpages.sh -Source3: kubelet.sh -#systemd services -Source10: kubelet.service -#config files -Source22: sysconfig.kubelet-kubernetes -Source23: kubeadm.conf -Source24: 90-kubeadm.conf -Source25: 10-kubeadm.conf -Source27: kubelet.tmp.conf -Source28: kubernetes-rpmlintrc -Source29: kubernetes.obsinfo -# Patch to change the default registry to registry.opensuse.org/kubic -Patch2: kubeadm-opensuse-registry.patch -# Patch to change the version check server to kubic.opensuse.org -Patch3: opensuse-version-checks.patch -# Patch to change the default flexvolume path in kubeadm to match that used by our kubelet, else kubeadm tries to write to /usr when kubelet is already looking at a path on /var thanks to the fix to bsc#1084766 -Patch4: kubeadm-opensuse-flexvolume.patch -# Fix https://github.com/kubernetes/kubernetes/issues/89672 -Patch5: fix-spn-prefix-added.patch -BuildRequires: bash-completion -BuildRequires: fdupes -BuildRequires: git -BuildRequires: go-go-md2man -# Kubernetes 1.17.0 requires at least go 1.13.4 (see changelog) -BuildRequires: golang(API) = 1.13 -BuildRequires: go >= 1.13.4 -BuildRequires: golang(github.com/jteeuwen/go-bindata) -BuildRequires: golang-packaging -BuildRequires: rsync -BuildRequires: systemd-rpm-macros +Source: README.packaging ExcludeArch: %{ix86} s390 ppc64 %description @@ -75,13 +38,12 @@ It groups containers that make up an application into logical units for management and discovery. -# packages to build containerized control plane +# packages for containerized control plane %package apiserver Summary: Kubernetes apiserver for container image Group: System/Management -Conflicts: kubernetes-common -Conflicts: kubernetes-master +Requires: kubernetes%{baseversion}-apiserver = %{version} %description apiserver This subpackage contains the kube-apiserver binary for Kubic images @@ -89,8 +51,7 @@ %package controller-manager Summary: Kubernetes controller-manager for container image Group: System/Management -Conflicts: kubernetes-common -Conflicts: kubernetes-master +Requires: kubernetes%{baseversion}-controller-manager = %{version} %description controller-manager This subpackage contains the kube-controller-manager binary for Kubic images @@ -98,8 +59,7 @@ %package scheduler Summary: Kubernetes scheduler for container image Group: System/Management -Conflicts: kubernetes-common -Conflicts: kubernetes-master +Requires: kubernetes%{baseversion}-scheduler = %{version} %description scheduler This subpackage contains the kube-scheduler binary for Kubic images @@ -107,64 +67,59 @@ %package proxy Summary: Kubernetes proxy for container image Group: System/Management -Requires: conntrack-tools -Requires: ebtables -Requires: ipset -Requires: iptables +Requires: kubernetes%{baseversion}-proxy = %{version} %description proxy This subpackage contains the kube-proxy binary for Kubic images -%package kubelet%{baseversion} -Summary: Kubernetes kubelet daemon +# packages for old containerised control plane + +%package apiserver-minus1 +Summary: Kubernetes apiserver for container image Group: System/Management -Requires: cri-runtime -Requires: kubernetes-kubelet-common -Provides: kubernetes-kubelet = %{version}-%{release} -%{?systemd_requires} +Requires: kubernetes%{baseversionminus1}-apiserver -%description kubelet%{baseversion} -Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. -kubelet daemon (current version) +%description apiserver-minus1 +This subpackage contains the kube-apiserver binary for Kubic images -%package kubelet%{prebaseversion} -Summary: Kubernetes kubelet daemon +%package controller-manager-minus1 +Summary: Kubernetes controller-manager for container image Group: System/Management -Requires: cri-runtime -Requires: kubernetes-kubelet-common -Provides: kubernetes-kubelet = %{preversion} -%{?systemd_requires} +Requires: kubernetes%{baseversionminus1}-controller-manager -%description kubelet%{prebaseversion} -Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. -kubelet daemon (previous version for upgrades) +%description controller-manager-minus1 +This subpackage contains the kube-controller-manager binary for Kubic images + +%package scheduler-minus1 +Summary: Kubernetes scheduler for container image +Group: System/Management +Requires: kubernetes%{baseversionminus1}-scheduler + +%description scheduler-minus1 +This subpackage contains the kube-scheduler binary for Kubic images -%package kubelet-common +%package proxy-minus1 +Summary: Kubernetes proxy for container image +Group: System/Management +Requires: kubernetes%{baseversionminus1}-proxy +%description proxy-minus1 +This subpackage contains the kube-proxy binary for Kubic images + +# packages for running on hosts/clients + +%package kubelet Summary: Kubernetes kubelet daemon Group: System/Management -Requires: cri-runtime -Requires: kubernetes-kubelet +Requires: kubernetes%{baseversion}-kubelet = %{version} -%description kubelet-common +%description kubelet Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. kubelet daemon %package kubeadm Summary: Kubernetes kubeadm bootstrapping tool Group: System/Management -Requires: cri-runtime -# Kubeadm 1.15.0 requires cri-tools 1.14.0 or higher (see changelog) -Requires: cri-tools >= 1.14.0 -Requires: ebtables -Requires: ethtool -Requires: kubernetes-kubeadm-criconfig -Requires: socat -Requires(pre): shadow -# openSUSE style of upgrade handling -# Kubeadm requires current kubelet version and previous -Requires: kubernetes-kubelet = %{version}-%release -Requires: kubernetes-kubelet = %{preversion} -Conflicts: cri-tools >= %{maxcriversion} +Requires: kubernetes%{baseversion}-kubeadm = %{version} %description kubeadm Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. @@ -173,233 +128,50 @@ %package client Summary: Kubernetes client tools Group: System/Management -Recommends: bash-completion +Requires: kubernetes%{baseversion}-client = %{version} %description client Kubernetes client tools like kubectl. %prep -%setup -q -T -D -b 1 -n %{name}-%{preversion} -%setup -q -%patch2 -p0 -%patch3 -p1 -%patch4 -p0 -%patch5 -p1 +#Not Needed %build -# This is fixing bug bsc#1065972 -export KUBE_GIT_COMMIT=$(grep "commit:" %{SOURCE29} | cut -d ":" -f2 | tr -d " ") -# KUBE_GIT_TREE_STATE="clean" indicates no changes since the git commit id -# KUBE_GIT_TREE_STATE="dirty" indicates source code changes after the git commit id -export KUBE_GIT_TREE_STATE="clean" -export KUBE_GIT_VERSION=v%{version} - -# https://bugzilla.redhat.com/show_bug.cgi?id=1392922#c1 -%ifarch ppc64le -export GOLDFLAGS='-linkmode=external' -%endif - -#TEST -make %{?_smp_mflags} WHAT="cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kube-proxy cmd/kubelet cmd/kubectl cmd/kubeadm" GOFLAGS="-buildmode=pie" - -# The majority of the documentation has already been moved into -# http://kubernetes.io/docs/admin, and most of the files stored in the `docs` -# directory simply point there. That being said, some of the files are actual -# man pages, but they have to be generated with `hack/generate-docs.sh`. So, -# let's do that and run `genmanpages.sh`. -./hack/generate-docs.sh || true -pushd docs -pushd admin -cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. -popd -cp %{SOURCE2} genmanpages.sh -bash genmanpages.sh -popd - -# Make previous version of kubelet for migration aiding -echo "+++ BUILDING Previous kubelet version" -export KUBE_GIT_VERSION=v%{preversion} -pushd %{_builddir}/%{name}-%{preversion} -make %{?_smp_mflags} WHAT="cmd/kubelet" -popd +echo "This is a dummy package to provide a dependency on supported kubernetes versions." > README %install -%ifarch ppc64le aarch64 -output_path="_output/local/go/bin" -%else -output_path="_output/local/bin/linux/%{go_arch}" -%endif - -install -m 755 -d %{buildroot}%{_bindir} - -echo "+++ INSTALLING kubeadm" -install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm - -binaries=(kube-apiserver kube-controller-manager kube-scheduler kube-proxy kubelet kubectl) -for bin in "${binaries[@]}"; do - echo "+++ INSTALLING ${bin}" - install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/${bin} -done - -echo "+++ RENAMING kubelet to kubelet%{baseversion}" -mv %{buildroot}%{_bindir}/kubelet %{buildroot}%{_bindir}/kubelet%{baseversion} - -echo "+++ INSTALLING kubelet multi-version loader" -install -p -m 755 %{SOURCE3} %{buildroot}%{_bindir}/kubelet - -echo "+++ INSTALLING kubelet%{prebaseversion}" -mv %{_builddir}/%{name}-%{preversion}/${output_path}/kubelet %{_builddir}/%{name}-%{preversion}/${output_path}/kubelet%{prebaseversion} -install -p -m 755 -t %{buildroot}%{_bindir} %{_builddir}/%{name}-%{preversion}/${output_path}/kubelet%{prebaseversion} - -# create sysconfig.kubelet-kubernetes in fullupdir -sed -i -e 's|BASE_VERSION|%{baseversion}|g' %{SOURCE22} -install -D -m 0644 %{SOURCE22} %{buildroot}%{_fillupdir}/sysconfig.kubelet-kubernetes - - -# install the bash completion -install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/ -%{buildroot}%{_bindir}/kubectl completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl - -# move CHANGELOG-%{baseversion}.md to old location -mv CHANGELOG/CHANGELOG-%{baseversion}.md . - -# cleanup before copying dirs... -rm -f hack/.linted_packages -find . -name '.gitignore' -type f -delete -find hack -name '*.sh.orig' -type f -delete -find hack -name '.golint_*' -type f -delete - -# systemd service -install -d -m 0755 %{buildroot}%{_unitdir} -install -m 0644 -t %{buildroot}%{_unitdir}/ %{SOURCE10} - -# make symlinks to rc files -install -d -m 0755 %{buildroot}%{_sbindir} -ln -sf service "%{buildroot}%{_sbindir}/rckubelet" - -# install manpages -install -d %{buildroot}%{_mandir}/man1 -install -p -m 644 docs/man/man1/* %{buildroot}%{_mandir}/man1 - -# create config folder -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} - -# manifests file for the kubelet -install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name}/manifests - -# place kubernetes.tmp.conf to /usr/lib/tmpfiles.d/kubernetes.conf -install -d -m 0755 %{buildroot}%{_tmpfilesdir} -install -D -m 0644 %{SOURCE27} %{buildroot}/%{_tmpfilesdir}/kubelet.conf - -# install the place the kubelet defaults to put volumes -install -d %{buildroot}%{_localstatedir}/lib/kubelet - -%define volume_plugin_dir %{_localstatedir}/lib/kubelet/volume-plugin -install -d %{buildroot}/%{volume_plugin_dir} - -# Add kubeadm modprobe.d and sysctl.d drop-in configs -mkdir -p %{buildroot}%{_libexecdir}/modules-load.d -mkdir -p %{buildroot}%{_sysctldir} -install -m 0644 -t %{buildroot}%{_libexecdir}/modules-load.d/ %{SOURCE23} -install -m 0644 -t %{buildroot}%{_sysctldir} %{SOURCE24} - -# Create kubeadm systemd unit drop-in -install -d -m 0755 %{buildroot}%{_unitdir}/kubelet.service.d -sed -i -e 's|PATH_TO_FLEXVOLUME|%{volume_plugin_dir}|g' %{SOURCE25} -install -m 0644 -t %{buildroot}%{_unitdir}/kubelet.service.d/ %{SOURCE25} - -%fdupes -s %{buildroot} - -%pre kubelet-common -%service_add_pre kubelet.service - -%post kubelet-common -%fillup_only -an kubelet -%service_add_post kubelet.service -%if 0%{?suse_version} < 1500 -# create some subvolumes needed by CNI -if [ ! -e %{_localstatedir}/lib/cni ]; then - if [ "`findmnt -o FSTYPE -l /|grep -v FSTYPE`" = "btrfs" ]; then - %{_sbindir}/mksubvolume %{_localstatedir}/lib/cni - fi -fi -%endif -%tmpfiles_create %{_tmpfilesdir}/kubelet.conf - -%preun kubelet-common -%service_del_preun kubelet.service - -%postun kubelet-common -%service_del_postun kubelet.service - -%files kubelet-common -%doc README.md CONTRIBUTING.md CHANGELOG-%{baseversion}.md -%license LICENSE -%{_mandir}/man1/kubelet.1%{?ext_man} -%{_bindir}/kubelet -%{_unitdir}/kubelet.service -%dir %{_unitdir}/kubelet.service.d -%{_sbindir}/rckubelet -%dir %{_localstatedir}/lib/kubelet -%dir %{_sysconfdir}/%{name} -%dir %{_sysconfdir}/%{name}/manifests -%{_tmpfilesdir}/kubelet.conf -%attr(0750,root,root) %dir %ghost %{_rundir}/%{name} -%dir %{volume_plugin_dir} -%{_fillupdir}/sysconfig.kubelet-kubernetes - -# openSUSE is using kubeadm with containerizied control plane, we -# only need the binaries - %files apiserver -%doc README.md CONTRIBUTING.md -%license LICENSE -%{_mandir}/man1/kube-apiserver.1%{?ext_man} -%{_bindir}/kube-apiserver +%doc README %files controller-manager -%doc README.md CONTRIBUTING.md -%license LICENSE -%{_mandir}/man1/kube-controller-manager.1%{?ext_man} -%{_bindir}/kube-controller-manager +%doc README %files scheduler -%doc README.md CONTRIBUTING.md -%license LICENSE -%{_mandir}/man1/kube-scheduler.1%{?ext_man} -%{_bindir}/kube-scheduler +%doc README %files proxy -%doc README.md CONTRIBUTING.md -%license LICENSE -%{_mandir}/man1/kube-proxy.1%{?ext_man} -%{_bindir}/kube-proxy - -%files kubelet%{baseversion} -%license LICENSE -%{_bindir}/kubelet%{baseversion} - -%files kubelet%{prebaseversion} -%license LICENSE -%{_bindir}/kubelet%{prebaseversion} +%doc README + +%files apiserver-minus1 +%doc README + +%files controller-manager-minus1 +%doc README + +%files scheduler-minus1 +%doc README + +%files proxy-minus1 +%doc README + +%files kubelet +%doc README %files kubeadm -%doc README.md CONTRIBUTING.md CHANGELOG-%{baseversion}.md -%{_unitdir}/kubelet.service.d/10-kubeadm.conf -%dir %{_libexecdir}/modules-load.d -%{_libexecdir}/modules-load.d/kubeadm.conf -%{_sysctldir}/90-kubeadm.conf -%license LICENSE -%{_bindir}/kubeadm -%{_mandir}/man1/kubeadm* +%doc README %files client -%doc README.md CONTRIBUTING.md -%license LICENSE -%{_mandir}/man1/kubectl.1%{?ext_man} -%{_mandir}/man1/kubectl-* -%{_bindir}/kubectl -%{_datadir}/bash-completion/completions/kubectl +%doc README %changelog ++++++ README.packaging ++++++ ======== OVERVIEW This package is a dummy package that always depends on the version of corresponding kubernetes packages that openSUSE currently supports. There are up to three packages that need to be handled in a given update. This package, the base "kubernetes" package, the current "kubernetesX" package (X is the major version numbers), and the next "kubernetesX" package if the major version has changed. NOTE: This package should always have the same "License" tag as the currently-supported version of the kubernetesX package.
