Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Sysbox 0.6.7 installation fails on RKE2 v1.32 ad later Kubernetes cluster due to incompatibility in get_runtime_kubelet_rke2() function of sysbox-pkgr/k8s/scripts /kubelet-config-helper.sh

Abierto
#974 2 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
55/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
docker, kubernetes, shell

Línea de trabajo

Comienza en sysbox-pkgr/k8s/scripts/kubelet-config-helper.sh, en get_runtime_kubelet_rke2(), e inspecciona cómo do_config_kubelet_rke2() utiliza su valor de runtime. Comprueba la configuración de kubelet de RKE2 v1.32 en /var/lib/rancher/rke2/agent/etc/kubelet.conf.d/00-rke2-defaults.conf junto con la búsqueda heredada en la línea de comandos y, después, verifica la instalación con configuraciones de containerd y CRI-O.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

The function get_runtime_kubelet_rke2() in sysbox-pkgr/k8s/scripts /kubelet-config-helper.sh returns an empty string for RKE2 v1.32.9+rke2r1 instead the current runtime of kubelet:

https://github.com/nestybox/sysbox-pkgr/blob/f5b6eb90c212e97b64566efd7a1e974c9b0153d9/k8s/scripts/kubelet-config-helper.sh#L1256

runtime=$(ps -e -o command | egrep kubelet | egrep -o "container-runtime-endpoint=\S*" | cut -d '=' -f2)

The following function is bailing out due to $runtime being set to "unix:///var/run/dockershim.sock" durig sysbox install:

function do_config_kubelet_rke2() {
	echo "Detected RKE2's host-based kubelet deployment on host."

	# Obtain current runtime.
	get_runtime_kubelet_rke2
	if [[ ${runtime} =~ "crio" ]]; then
		echo "Kubelet is already using CRI-O; no action will be taken."
		return
	fi

	# No runtime other than containerd, and obviously crio, is expected in an
	# rke2 deployment.
	if [[ ! ${runtime} =~ "containerd" ]]; then
		echo "Unsupported runtime for RKE2 scenario: $runtime"
		return
	fi

In RKE2 v1.32 the config for the kubelet runtime is located in file /var/lib/rancher/rke2/agent/etc/kubelet.conf.d/00-rke2-defaults.conf in line

containerRuntimeEndpoint: unix:///run/k3s/containerd/containerd.sock

or

containerRuntimeEndpoint: unix:///var/run/crio/crio.sock

The proposed fix for the get_runtime_kubelet_rke2() function is:

function get_runtime_kubelet_rke2() {
    set +e
    
    # Try RKE2 v1.32+ config file first
    local rke2_config="/var/lib/rancher/rke2/agent/etc/kubelet.conf.d/00-rke2-defaults.conf"
    if [[ -f "$rke2_config" ]]; then
        runtime=$(grep "^containerRuntimeEndpoint:" "$rke2_config" | awk '{print $2}')
    fi
    
    # Fallback to legacy kubelet command line parameter for older versions
    if [[ -z "$runtime" ]]; then
        runtime=$(ps -e -o command | grep kubelet | grep -o "container-runtime-endpoint=\S*" | cut -d '=' -f2)
    fi
    
    # If runtime is still unknown, assume it's Docker
    if [[ -z "$runtime" ]]; then
        runtime="unix:///var/run/dockershim.sock"
    fi
    
    set -e
}
Lenguaje dominante
Shell
Estrellas
3.9k
Forks
230
Merge medio
11 h 18 min
PR fusionados (30 d)
2

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nestybox/sysbox

Todos los issues de nestybox/sysbox

Issues similares

Más issues de Shell/Bash

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.