Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubernetes1.36 for openSUSE:Factory checked in at 2026-04-23 19:21:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubernetes1.36 (Old) and /work/SRC/openSUSE:Factory/.kubernetes1.36.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubernetes1.36" Thu Apr 23 19:21:29 2026 rev:1 rq:1348930 version:1.36.0 Changes: -------- New Changes file: --- /dev/null 2026-03-30 12:12:19.476000000 +0200 +++ /work/SRC/openSUSE:Factory/.kubernetes1.36.new.11940/kubernetes1.36.changes 2026-04-23 19:21:51.548046799 +0200 @@ -0,0 +1,13 @@ +------------------------------------------------------------------- +Thu Apr 23 10:56:40 UTC 2026 - Priyanka Saggu <[email protected]> + +- drop kubeadm-opensuse-flexvolume.patch: + * Patch is no longer needed as upstream kubeadm removed built-in flex volume support entirely in v1.36. + The patch was originally added to align kubeadm's flex volume plugin path with the SUSE kubelet path (/var/lib/kubelet/volume-plugin) on immutable/transactional filesystems (bsc#1084766). + Ref: https://github.com/kubernetes/kubernetes/commit/c7b4a6593bf87e9eb85a366735567c1e72d317a0 + +------------------------------------------------------------------- +Thu Apr 23 05:37:41 UTC 2026 - Priyanka Saggu <[email protected]> + +- initial package for kubernetes v1.36.0 + * Full changelog - https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.36.md#v1360 New: ---- 10-kubeadm.conf 90-kubeadm.conf _constraints _service _servicedata genmanpages.sh kubeadm-opensuse-registry.patch kubeadm.conf kubelet.service kubelet.sh kubelet.tmp.conf kubernetes-1.36.0.tar.xz kubernetes-rpmlintrc kubernetes.obsinfo kubernetes1.36.changes kubernetes1.36.spec opensuse-version-checks.patch revert-coredns-image-renaming.patch sysconfig.kubelet-kubernetes ----------(New B)---------- New: WARN: kubeadm-opensuse-registry.patch not found in changes New: WARN: opensuse-version-checks.patch not found in changes New: WARN: revert-coredns-image-renaming.patch not found in changes ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubernetes1.36.spec ++++++ # # spec file for package kubernetes1.36 # # Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{!?tmpfiles_create:%global tmpfiles_create systemd-tmpfiles --create} # baseversion - version of kubernetes for this package %define baseversion 1.36 %define baseversionminus1 1.35 Name: kubernetes%{baseversion} Version: 1.36.0 Release: 0 Summary: Container Scheduling and Management License: Apache-2.0 Group: System/Management URL: https://kubernetes.io/ Source: kubernetes-%{version}.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 revert renaming of coredns image location to match how it's done on download.opensuse.org Patch4: revert-coredns-image-renaming.patch BuildRequires: fdupes BuildRequires: git BuildRequires: go >= 1.26.2 BuildRequires: go-go-md2man BuildRequires: golang-packaging BuildRequires: rsync BuildRequires: systemd-rpm-macros BuildRequires: golang(API) = 1.26 BuildRequires: golang(github.com/jteeuwen/go-bindata) ExcludeArch: %{ix86} s390 ppc64 %{arm} %description Kubernetes is a system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for management and discovery. # packages to build containerized control plane %package apiserver Summary: Kubernetes apiserver for container image Group: System/Management Provides: kubernetes-apiserver-provider = %{version} Conflicts: kubernetes-apiserver-provider %description apiserver This subpackage contains the kube-apiserver binary for Kubic images %package controller-manager Summary: Kubernetes controller-manager for container image Group: System/Management Provides: kubernetes-controller-manager-provider = %{version} Conflicts: kubernetes-controller-manager-provider %description controller-manager This subpackage contains the kube-controller-manager binary for Kubic images %package scheduler Summary: Kubernetes scheduler for container image Group: System/Management Provides: kubernetes-scheduler-provider = %{version} Conflicts: kubernetes-scheduler-provider %description scheduler This subpackage contains the kube-scheduler binary for Kubic images %package proxy Summary: Kubernetes proxy for container image Group: System/Management Provides: kubernetes-proxy-provider = %{version} Conflicts: kubernetes-proxy-provider Requires: conntrack-tools Requires: ebtables Requires: ipset Requires: iptables %description proxy This subpackage contains the kube-proxy binary for Kubic images %package kubelet Summary: Kubernetes kubelet daemon Group: System/Management Requires: cri-runtime Requires: kubernetes-kubelet-common Recommends: kubernetes-kubelet-common = %{version} Provides: kubernetes-kubelet%{baseversion} = %{version} Obsoletes: kubernetes-kubelet%{baseversion} < %{version} %{?systemd_requires} %description kubelet Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. kubelet daemon (current version) %package kubelet-common Summary: Kubernetes kubelet daemon Group: System/Management Requires: cri-runtime Requires: kubernetes-kubelet%{baseversion} Provides: kubernetes-kubelet-common = %{version} Conflicts: kubernetes-kubelet-common %description kubelet-common 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 Provides: kubernetes-kubeadm-provider = %{version} Conflicts: kubernetes-kubeadm-provider Obsoletes: kubernetes%{baseversionminus1}-kubeadm Requires: cri-runtime Requires: cri-tools Requires: ebtables Requires: ethtool Requires: kubernetes-kubeadm-criconfig Requires: socat Requires(pre): shadow Requires: (kubernetes%{baseversion}-kubelet or kubernetes%{baseversionminus1}-kubelet) Recommends: kubernetes%{baseversion}-kubelet %description kubeadm Manage a cluster of Linux containers as a single system to accelerate Dev and simplify Ops. kubeadm bootstrapping tool %package client Summary: Kubernetes client tools Group: System/Management Provides: kubernetes-client-provider = %{version} Requires: kubernetes%{baseversion}-client-common Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: diffutils %description client Kubernetes client tools like kubectl. %package client-common Summary: Kubernetes client tools common files Group: System/Management Requires: kubernetes%{baseversion}-client Provides: kubernetes-client-common = %{version} Conflicts: kubernetes-client-common Recommends: bash-completion %description client-common Kubernetes client tools common files %package client-bash-completion Summary: Bash Completion for %{name}-client Group: System/Shells BuildRequires: bash-completion Requires: bash-completion Requires: kubernetes%{baseversion}-client = %{version} Supplements: (kubernetes%{baseversion}-client and bash-completion) BuildArch: noarch Obsoletes: kubernetes%{baseversionminus1}-client-bash-completion Provides: kubernetes-client-bash-completion = %{version} Conflicts: kubernetes-client-bash-completion %description client-bash-completion Bash command line completion support for %{name}-client %package client-fish-completion Summary: Fish Completion for %{name}-client Group: System/Shells BuildRequires: fish Requires: kubernetes%{baseversion}-client = %{version} Supplements: (kubernetes%{baseversion}-client and fish) BuildArch: noarch Obsoletes: kubernetes%{baseversionminus1}-client-fish-completion Provides: kubernetes-client-fish-completion = %{version} Conflicts: kubernetes-client-fish-completion %description client-fish-completion Fish command line completion support for %{name}-client. %prep %setup -q -n kubernetes-%{version} %patch -P 2 -p1 %patch -P 3 -p1 %patch -P 4 -p1 %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 export FORCE_HOST_GO=y %if (0%{?sle_version} == 0 || 0%{?is_opensuse}) %ifarch s390x # On openSUSE s390x, build all, but without PIE # `-buildmode=pie` with "internal linking" is not yet supported on linux/s390x platform # https://github.com/golang/go/blob/a63907808d14679c723e566cb83acc76fc8cafc2/src/internal/platform/supported.go#L223-L232 # https://github.com/golang/go/issues/64875#issuecomment-1870734528 make WHAT="cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kube-proxy cmd/kubelet cmd/kubectl cmd/kubeadm" %else # On openSUSE (non-s390x), build all with PIE make WHAT="cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kube-proxy cmd/kubelet cmd/kubectl cmd/kubeadm" GOFLAGS="-buildmode=pie" %endif %else %ifarch s390x # On non-openSUSE s390x, only build kubectl but without PIE make WHAT="cmd/kubectl" %else # On non-openSUSE (non-s390x), only build kubectl with PIE make WHAT="cmd/kubectl" GOFLAGS="-buildmode=pie" %endif %endif # 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 %if 0%{?sle_version} == 0 || 0%{?is_opensuse} pushd admin cp kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md .. popd %endif cp %{SOURCE2} genmanpages.sh bash genmanpages.sh popd %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} %if 0%{?sle_version} == 0 || 0%{?is_opensuse} echo "+++ INSTALLING kubeadm" install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/kubeadm binaries=(kube-apiserver kube-controller-manager kube-scheduler kube-proxy) for bin in "${binaries[@]}"; do echo "+++ INSTALLING ${bin}" install -p -m 755 -t %{buildroot}%{_bindir} ${output_path}/${bin} done echo "+++ INSTALLING kubelet with %{baseversion} suffix" install -p -m 755 ${output_path}/kubelet %{buildroot}%{_bindir}/kubelet%{baseversion} %endif echo "+++ INSTALLING kubectl with %{baseversion} suffix" install -p -m 755 ${output_path}/kubectl %{buildroot}%{_bindir}/kubectl%{baseversion} %if 0%{?sle_version} == 0 || 0%{?is_opensuse} echo "+++ INSTALLING kubelet multi-version loader" install -p -m 755 %{SOURCE3} %{buildroot}%{_bindir}/kubelet # 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%{baseversion} %endif # install the bash completion install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions/ %{buildroot}%{_bindir}/kubectl%{baseversion} completion bash > %{buildroot}%{_datadir}/bash-completion/completions/kubectl # install the fish completion mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d %{buildroot}%{_bindir}/kubectl%{baseversion} completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/kubectl.fish # 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 %if 0%{?sle_version} == 0 || 0%{?is_opensuse} # 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 %else # install kubectl manpages install -d %{buildroot}%{_mandir}/man1 install -p -m 644 docs/man/man1/kubectl* %{buildroot}%{_mandir}/man1 %endif %if 0%{?sle_version} == 0 || 0%{?is_opensuse} # 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}%{_prefix}/lib/modules-load.d mkdir -p %{buildroot}%{_sysctldir} install -m 0644 -t %{buildroot}%{_prefix}/lib/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} %endif # alternatives ln -s -f %{_sysconfdir}/alternatives/kubectl %{buildroot}%{_bindir}/kubectl %fdupes -s %{buildroot} %post client-common %{_sbindir}/update-alternatives \ --install %{_bindir}/kubectl kubectl %{_bindir}/kubectl%{baseversion} %(echo %{baseversion} | tr -d .) %postun client-common if [ ! -f %{_bindir}/kubectl%{baseversion} ] ; then update-alternatives --remove kubectl %{_bindir}/kubectl%{baseversion} fi %if 0%{?sle_version} == 0 || 0%{?is_opensuse} %pre kubelet-common %service_add_pre kubelet.service %post kubelet-common %fillup_only -an kubelet # Check if /etc/sysconfig/kubelet exists if [ -e "/etc/sysconfig/kubelet" ]; then # Extract the value from the fillup file UPDATED_KUBELET_VER=$(grep '^KUBELET_VER=' %{_fillupdir}/sysconfig.kubelet-kubernetes%{baseversion} | cut -d '=' -f2) # Update the value in the sysconfig file sed -i "s/^KUBELET_VER=.*/KUBELET_VER=$UPDATED_KUBELET_VER/" /etc/sysconfig/kubelet fi %service_add_post kubelet.service if [ $1 -eq 1 ]; then # Check if modprobe command is available [ ! -x /sbin/modprobe ] || { /sbin/modprobe br_netfilter && /sbin/modprobe overlay; } || true fi %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 %post kubeadm # Check if sysctl command is available if [ -x /usr/sbin/sysctl ]; then # Run sysctl --system after the package installation /usr/sbin/sysctl -p %{_sysctldir}/90-kubeadm.conf || true fi %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%{baseversion} # 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 %files controller-manager %doc README.md CONTRIBUTING.md %license LICENSE %{_mandir}/man1/kube-controller-manager.1%{?ext_man} %{_bindir}/kube-controller-manager %files scheduler %doc README.md CONTRIBUTING.md %license LICENSE %{_mandir}/man1/kube-scheduler.1%{?ext_man} %{_bindir}/kube-scheduler %files proxy %doc README.md CONTRIBUTING.md %license LICENSE %{_mandir}/man1/kube-proxy.1%{?ext_man} %{_bindir}/kube-proxy %files kubelet %license LICENSE %{_bindir}/kubelet%{baseversion} %files kubeadm %doc README.md CONTRIBUTING.md CHANGELOG-%{baseversion}.md %{_unitdir}/kubelet.service.d/10-kubeadm.conf %dir %{_prefix}/lib/modules-load.d %{_prefix}/lib/modules-load.d/kubeadm.conf %{_sysctldir}/90-kubeadm.conf %license LICENSE %{_bindir}/kubeadm %{_mandir}/man1/kubeadm* %endif %files client %doc README.md CONTRIBUTING.md %license LICENSE %{_bindir}/kubectl %{_bindir}/kubectl%{baseversion} %ghost %_sysconfdir/alternatives/kubectl %files client-common %doc README.md CONTRIBUTING.md %license LICENSE %{_mandir}/man1/kubectl.1%{?ext_man} %{_mandir}/man1/kubectl-* %files client-bash-completion %{_datadir}/bash-completion/completions/kubectl %files client-fish-completion %{_datadir}/fish/vendor_completions.d/kubectl.fish %changelog ++++++ 10-kubeadm.conf ++++++ # Note: This dropin only works with kubeadm and kubelet v1.11+ [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --volume-plugin-dir=PATH_TO_FLEXVOLUME" Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. EnvironmentFile=-/etc/sysconfig/kubelet # Workaround boo#1171770 by setting required sysctl parameters on kubelet start (Toggle off and on to ensure all ethernet devices are refreshed) ExecStartPre=/usr/sbin/sysctl net.ipv4.ip_forward=0 ExecStartPre=/usr/sbin/sysctl net.ipv6.conf.all.forwarding=0 ExecStartPre=/usr/sbin/sysctl net.ipv4.ip_forward=1 ExecStartPre=/usr/sbin/sysctl net.ipv6.conf.all.forwarding=1 ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS ++++++ 90-kubeadm.conf ++++++ # The file is provided as part of the kubernetes-kubeadm package net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 ++++++ _constraints ++++++ <constraints> <hardware> <memory> <size unit="G">8</size> </memory> <physicalmemory> <size unit="G">8</size> </physicalmemory> <disk> <size unit="G">13</size> </disk> </hardware> <overwrite> <conditions> <arch>ppc64le</arch> </conditions> <hardware> <physicalmemory> <size unit="M">9600</size> </physicalmemory> </hardware> </overwrite> </constraints> ++++++ _service ++++++ <services> <service name="obs_scm" mode="manual"> <param name="url">https://github.com/kubernetes/kubernetes.git</param> <param name="scm">git</param> <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="revision">v1.36.0</param> <param name="changesgenerate">enable</param> </service> <service name="tar" mode="manual"/> <service name="recompress" mode="manual"> <param name="file">*.tar</param> <param name="compression">xz</param> </service> <service name="set_version" mode="manual"> <param name="basename">kubernetes</param> </service> </services> ++++++ _servicedata ++++++ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubernetes/kubernetes.git</param> <param name="changesrevision">ecf6decece6a6de25a57aad9ba90b6ce580f6f78</param></service></servicedata> (No newline at EOF) ++++++ genmanpages.sh ++++++ MDSFORMANPAGES="kube-apiserver.md kube-controller-manager.md kube-proxy.md kube-scheduler.md kubelet.md" # remove comments from man pages for manpage in ${MDSFORMANPAGES}; do pos=$(grep -n "<\!-- END MUNGE: UNVERSIONED_WARNING -->" ${manpage} | cut -d':' -f1) if [ -n ${pos} ]; then sed -i "1,${pos}{/.*/d}" ${manpage} fi done # for each man page add NAME and SYNOPSIS section # kube-apiserver sed -i -s "s/## kube-apiserver/# NAME\nkube-apiserver \- Provides the API for kubernetes orchestration.\n\n# SYNOPSIS\n**kube-apiserver** [OPTIONS]\n/" kube-apiserver.md cat << 'EOF' >> kube-apiserver.md # EXAMPLES ``` /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://127.0.0.1:4001 --insecure_bind_address=127.0.0.1 --insecure_port=8080 --kubelet_port=10250 --service-cluster-ip-range=10.1.1.0/24 --allow_privileged=false ``` EOF # kube-controller-manager sed -i -s "s/## kube-controller-manager/# NAME\nkube-controller-manager \- Enforces kubernetes services.\n\n# SYNOPSIS\n**kube-controller-manager** [OPTIONS]\n/" kube-controller-manager.md cat << 'EOF' >> kube-controller-manager.md # EXAMPLES ``` /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=127.0.0.1:8080 ``` EOF # kube-proxy sed -i -s "s/## kube-proxy/# NAME\nkube-proxy \- Provides network proxy services.\n\n# SYNOPSIS\n**kube-proxy** [OPTIONS]\n/" kube-proxy.md cat << 'EOF' >> kube-proxy.md # EXAMPLES ``` /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://127.0.0.1:8080 ``` EOF # kube-scheduler sed -i -s "s/## kube-scheduler/# NAME\nkube-scheduler \- Schedules containers on hosts.\n\n# SYNOPSIS\n**kube-scheduler** [OPTIONS]\n/" kube-scheduler.md cat << 'EOF' >> kube-scheduler.md # EXAMPLES ``` /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=127.0.0.1:8080 ``` EOF # kubelet sed -i -s "s/## kubelet/# NAME\nkubelet \- Processes a container manifest so the containers are launched according to how they are described.\n\n# SYNOPSIS\n**kubelet** [OPTIONS]\n/" kubelet.md cat << 'EOF' >> kubelet.md # EXAMPLES ``` /usr/bin/kubelet --logtostderr=true --v=0 --api_servers=http://127.0.0.1:8080 --address=127.0.0.1 --port=10250 --hostname_override=127.0.0.1 --allow-privileged=false ``` EOF # for all man-pages for md in $MDSFORMANPAGES; do # correct section names sed -i -s "s/### Synopsis/# DESCRIPTION/" $md sed -i -s "s/### Options/# OPTIONS/" $md # add header sed -i "s/# NAME/% KUBERNETES(1) kubernetes User Manuals\n# NAME/" $md # modify list of options # options with no value in "" sed -i -r 's/(^ )(-[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md # option with value in "" sed -i -r 's/(^ )(-[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md # options in -s, --long sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)(:)(.*)/\*\*\2\*\*\n\t\4\n/' $md sed -i -r 's/(^ )(-[a-z], -[^":][^":]*)("[^"]*")(:)(.*)/\*\*\2\3\*\*\n\t\5\n/' $md # remove ``` sed -i 's/```//' $md # remove all lines starting with ###### sed -i 's/^######.*//' $md # modify footer sed -i -r "s/^\[!\[Analytics\].*//" $md # md does not contain section => taking 1 name="${md%.md}" go-md2man -in $md -out man/man1/$name.1 done ++++++ kubeadm-opensuse-registry.patch ++++++ Index: kubernetes-1.27.0/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults.go =================================================================== --- kubernetes-1.27.0.orig/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults.go +++ kubernetes-1.27.0/cmd/kubeadm/app/apis/kubeadm/v1beta3/defaults.go @@ -43,7 +43,7 @@ const ( DefaultCertificatesDir = "/etc/kubernetes/pki" // DefaultImageRepository defines default image registry // (previously this defaulted to k8s.gcr.io) - DefaultImageRepository = "registry.k8s.io" + DefaultImageRepository = "registry.opensuse.org/kubic" // DefaultManifestsDir defines default manifests directory DefaultManifestsDir = "/etc/kubernetes/manifests" // DefaultClusterName defines the default cluster name ++++++ kubeadm.conf ++++++ # Load br_netfilter module at boot br_netfilter overlay ++++++ kubelet.service ++++++ [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=https://kubernetes.io/docs/concepts/overview/components/#kubelet https://kubernetes.io/docs/reference/generated/kubelet After=network.target network-online.target Wants=containerd.service crio.service ConditionPathExists=/var/lib/kubelet/config.yaml [Service] ExecStartPre=/bin/bash -c "findmnt -t bpf --mountpoint /sys/fs/bpf > /dev/null || mount bpffs /sys/fs/bpf -t bpf" ExecStart=/usr/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target ++++++ kubelet.sh ++++++ #!/bin/sh # Loader Script for Multi-Version Kubelet arrangement introduced to openSUSE in March 2020 source /etc/sysconfig/kubelet if [ -z "$KUBELET_VER" ] then echo "ERROR: KUBELET_VER= not defined in /etc/sysconfig/kubelet" exit 1 else /usr/bin/kubelet$KUBELET_VER "$@" fi ++++++ kubelet.tmp.conf ++++++ d /var/lib/cni 0755 root root - d /var/lib/kubelet 0755 root root - ++++++ kubernetes-rpmlintrc ++++++ addFilter ("^kubernetes-unit-test.*: E: devel-file-in-non-devel-package") addFilter ("^kubernetes-master.*: W: statically-linked-binary") addFilter ("^kubernetes-extra.*: E: env-script-interpreter") addFilter ("^kubernetes-extra.*: E: wrong-script-interpreter") ++++++ kubernetes.obsinfo ++++++ name: kubernetes version: 1.36.0 mtime: 1776865911 commit: ecf6decece6a6de25a57aad9ba90b6ce580f6f78 ++++++ opensuse-version-checks.patch ++++++ >From 16e70f84cf9c5a72607efe86f0e030ac05fdd7f9 Mon Sep 17 00:00:00 2001 From: Richard Brown <[email protected]> Date: Wed, 14 Apr 2021 17:04:02 +0200 Subject: [PATCH] Use kubic.opensuse.org for kubeadm version checks --- cmd/kubeadm/app/util/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: kubernetes-1.26.0/cmd/kubeadm/app/util/version.go =================================================================== --- kubernetes-1.26.0.orig/cmd/kubeadm/app/util/version.go +++ kubernetes-1.26.0/cmd/kubeadm/app/util/version.go @@ -39,7 +39,7 @@ const ( ) var ( - kubeReleaseBucketURL = "https://dl.k8s.io" + kubeReleaseBucketURL = "https://kubic.opensuse.org" kubeCIBucketURL = "https://storage.googleapis.com/k8s-release-dev" kubeReleaseRegex = regexp.MustCompile(`^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)([-\w.+]*)?$`) kubeReleaseLabelRegex = regexp.MustCompile(`^((latest|stable)+(-[1-9](\.[1-9](\d)?)?)?)\z`) ++++++ revert-coredns-image-renaming.patch ++++++ >From d30667d8b6e96a4e50c0eb6b4cf6d4a615041f74 Mon Sep 17 00:00:00 2001 From: Richard Brown <[email protected]> Date: Thu, 16 Dec 2021 10:07:03 +0100 Subject: [PATCH] Patch openSUSE revert coredns image renaming --- cmd/kubeadm/app/images/images.go | 5 ----- 1 file changed, 5 deletions(-) Index: kubernetes-1.31.0/cmd/kubeadm/app/images/images.go =================================================================== --- kubernetes-1.31.0.orig/cmd/kubeadm/app/images/images.go +++ kubernetes-1.31.0/cmd/kubeadm/app/images/images.go @@ -22,7 +22,6 @@ import ( "k8s.io/klog/v2" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" - kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" ) @@ -48,10 +47,6 @@ func GetDNSImage(cfg *kubeadmapi.Cluster if cfg.DNS.ImageRepository != "" { dnsImageRepository = cfg.DNS.ImageRepository } - // Handle the renaming of the official image from "registry.k8s.io/coredns" to "registry.k8s.io/coredns/coredns - if dnsImageRepository == kubeadmapiv1.DefaultImageRepository { - dnsImageRepository = fmt.Sprintf("%s/coredns", dnsImageRepository) - } // DNS uses an imageTag that corresponds to the DNS version matching the Kubernetes version dnsImageTag := constants.CoreDNSVersion ++++++ sysconfig.kubelet-kubernetes ++++++ KUBELET_VER=BASE_VERSION
