kubelet not installale on SUSE
What happened:
The kubelet rpm at https://pkgs.k8s.io/core:/stable:/v1.30/rpm/ does not install on SUSE based linux systems due to a dependency difference between RH and SUSE . I've included a suggested solution in the details of this issue.
Installing kubelet on openSUSE produces a dependency error
~ # zypper in kubelet
Retrieving repository 'Main Repository (NON-OSS)' metadata ..........................................................................................[done]
Building repository 'Main Repository (NON-OSS)' cache ...............................................................................................[done]
Retrieving repository 'Main Repository (OSS)' metadata ..............................................................................................[done]
Building repository 'Main Repository (OSS)' cache ...................................................................................................[done]
Retrieving repository 'openSUSE-20230803-0' metadata ................................................................................................[done]
Building repository 'openSUSE-20230803-0' cache .....................................................................................................[done]
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: 1: nothing provides 'conntrack' needed by the to be installed kubelet-1.30.3-150500.1.1.x86_64
Solution 1: do not install kubelet-1.30.3-150500.1.1.x86_64
Solution 2: break kubelet-1.30.3-150500.1.1.x86_64 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c/d/?] (c):
This is because SUSE splits up conntrack into conntrack-tools, and conntrackd packages, neither advertise they provide the conntrack capability to the rpm database, but conntrackd requried conntrack-tools
OpenSUSE tumbleweed:
~> rpm -q --whatprovides conntrack
no package provides conntrack
~> rpm -qa |grep conntrack
# rpm -qa |grep conntrack
libnetfilter_conntrack3-1.0.9-1.9.x86_64
conntrackd-1.4.8-2.1.x86_64
conntrack-tools-1.4.8-2.1.x86_64
~> rpm -q --whatrequires conntrackd
no package requires conntrackd
~> rpm -q --whatrequires conntrack-tools
cri-o-1.24.3-2.4.x86_64
conntrackd-1.4.8-2.1.x86_64
RHEL 9.4
~> rpm -q --whatprovides conntrack
conntrack-tools-1.4.7-2.el9.x86_64
What you expected to happen:
kubelet to install without dependency error
How to reproduce it (as minimally and precisely as possible):
- Install an opensuse base system
- add the kubernetes repo e.g.
cat <<EOF | sudo tee /etc/zypp/repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key
EOF
- install kubelet
zypper in --from kubernetes kubelet
Anything else we need to know?:
Changing the Requires line here
from Requires: conntrack to Requires: /sbin/conntrack should resolve this, while keeping it working in RHEL.
OpenSUSE:
rpm -q --whatprovides /sbin/conntrack
conntrack-tools-1.4.8-2.1.x86_64
RHEL 9.4:
~> rpm -q --whatprovides /sbin/conntrack
conntrack-tools-1.4.7-2.el9.x86_64
Environment:
-
Cloud provider or hardware configuration: 6HT cores * Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 32 GB ram local system
-
OS (e.g:
cat /etc/os-release):
# cat /etc/os-release
NAME="openSUSE Tumbleweed"
# VERSION="20240716"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20240716"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240716:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20240716"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
- Kernel (e.g.
uname -a):
~> uname -a
Linux worker1.domain 6.9.9-1-default #1 SMP PREEMPT_DYNAMIC Thu Jul 11 11:31:54 UTC 2024 (8c0f797) x86_64 x86_64 x86_64 GNU/Linux
- Others:
# cat /etc/zypp/repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key