Merge pull request #131813 from rata/automated-cherry-pick-of-#123678-upstream-release-1.30

Automated cherry pick of #123678: kubelet: Add logs for userns custom mappings parsing
This commit is contained in:
Kubernetes Prow Robot 2025-06-05 07:44:39 -07:00 committed by GitHub
commit 433bffb831
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 3 deletions

View File

@ -924,7 +924,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
klet.shutdownManager = shutdownManager
klet.usernsManager, err = userns.MakeUserNsManager(klet)
if err != nil {
return nil, err
return nil, fmt.Errorf("create user namespace manager: %w", err)
}
klet.admitHandlers.AddPodAdmitHandler(shutdownAdmitHandler)

View File

@ -142,6 +142,7 @@ func (kl *Kubelet) getKubeletMappings() (uint32, uint32, error) {
var unknownUserErr user.UnknownUserError
if goerrors.As(err, &unknownUserErr) {
// if the user is not found, we assume that the user is not configured
klog.V(5).InfoS("user namespaces: user not found, using default mappings", "user", kubeletUser)
return defaultFirstID, defaultLen, nil
}
return 0, 0, err
@ -151,14 +152,14 @@ func (kl *Kubelet) getKubeletMappings() (uint32, uint32, error) {
cmd, err := exec.LookPath(execName)
if err != nil {
if os.IsNotExist(err) {
klog.V(2).InfoS("Could not find executable, default mappings will be used for the user namespaces", "executable", execName, "err", err)
klog.V(2).InfoS("user namespaces: executable not found, using default mappings", "executable", execName, "err", err)
return defaultFirstID, defaultLen, nil
}
return 0, 0, err
}
outUids, err := exec.Command(cmd, kubeletUser).Output()
if err != nil {
return 0, 0, fmt.Errorf("error retrieving additional ids for user %q", kubeletUser)
return 0, 0, fmt.Errorf("error retrieving additional uids for user %q: %w", kubeletUser, err)
}
outGids, err := exec.Command(cmd, "-g", kubeletUser).Output()
if err != nil {
@ -167,6 +168,7 @@ func (kl *Kubelet) getKubeletMappings() (uint32, uint32, error) {
if string(outUids) != string(outGids) {
return 0, 0, fmt.Errorf("mismatched subuids and subgids for user %q", kubeletUser)
}
klog.V(5).InfoS("user namespaces: user found, using mappings from getsubids", "user", kubeletUser)
return parseGetSubIdsOutput(string(outUids))
}