Skip to content

40_microshift_running_check.sh does not allow additional components in kube-system namespace #5346

@vraiti

Description

@vraiti

Hello,

I'm trying to enable Microshift on NVIDIA Jetson. To give Microshift pods access to the iGPU, the "nvidia-device-plugin-daemonset" (found at https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.1/deployments/static/nvidia-device-plugin.yml) must be installed in the kube-admin namespace.

However, if run on an RPM-OSTree system (which I am trying to do), this will cause greenboot-healthcheck.service to fail due to the following lines in 40_microshift_running_check.sh:

declare -a csi_components=('csi-snapshot-controller')
csi_pods_ct=0
for csi_c in "${csi_components[@]}"; do
    if csiComponentShouldBeDeployed "${csi_c}"; then
        (( csi_pods_ct += 1 ))
    fi
done
if [ ${csi_pods_ct} -gt 0 ]; then
    PODS_NS_LIST+=(kube-system)
    PODS_CT_LIST+=("${csi_pods_ct}")
fi

This, if I understand correctly, statically declares csi-snapshot-controller as the only allowed component in kube-system

# Wait for MicroShift core pods to enter ready state
for i in "${!PODS_NS_LIST[@]}"; do
    CHECK_PODS_NS=${PODS_NS_LIST[${i}]}
    CHECK_PODS_CT=${PODS_CT_LIST[${i}]}

    echo "Waiting ${WAIT_TIMEOUT_SECS}s for ${CHECK_PODS_CT} pod(s) from the '${CHECK_PODS_NS}' namespace to be in 'Ready' state"
    if ! wait_for "${WAIT_TIMEOUT_SECS}" namespace_pods_ready; then
        echo "Error: Timed out waiting for ${CHECK_PODS_CT} pod(s) in the '${CHECK_PODS_NS}' namespace to be in 'Ready' state"
        create_fail_marker_and_exit
    fi
done

And then this will cause greenboot-healthcheck.service to fail if there are any other components in the kube-system namespace.

Could a configuration be added for the expected components in kube-system? I'd happily make a pull request myself to add this feature, but I couldn't find the source code for 40_microshift_running_check.sh anywhere in this repository

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions