pkg/kubelet/userns: Provide stub implementation for windows

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
This commit is contained in:
Rodrigo Campos 2025-03-13 19:50:24 +01:00
parent b5d6f06fe6
commit 3755f8e2f2
6 changed files with 91 additions and 8 deletions

View File

@ -0,0 +1,29 @@
/*
Copyright 2025 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package userns
import "k8s.io/apimachinery/pkg/types"
// Here go types that are common for all supported OS (windows, linux).
type userNsPodsManager interface {
HandlerSupportsUserNamespaces(runtimeHandler string) (bool, error)
GetPodDir(podUID types.UID) string
ListPodsFromDisk() ([]types.UID, error)
GetKubeletMappings() (uint32, uint32, error)
GetMaxPods() int
}

View File

@ -1,3 +1,6 @@
//go:build !windows
// +build !windows
/*
Copyright 2022 The Kubernetes Authors.
@ -43,14 +46,6 @@ const userNsLength = (1 << 16)
// since Go maps never free memory.
const mapReInitializeThreshold = 1000
type userNsPodsManager interface {
HandlerSupportsUserNamespaces(runtimeHandler string) (bool, error)
GetPodDir(podUID types.UID) string
ListPodsFromDisk() ([]types.UID, error)
GetKubeletMappings() (uint32, uint32, error)
GetMaxPods() int
}
type UsernsManager struct {
used *allocator.AllocationBitmap
usedBy map[types.UID]uint32 // Map pod.UID to range used

View File

@ -1,3 +1,6 @@
//go:build !windows
// +build !windows
/*
Copyright 2022 The Kubernetes Authors.

View File

@ -1,3 +1,6 @@
//go:build !windows
// +build !windows
/*
Copyright 2024 The Kubernetes Authors.

View File

@ -1,3 +1,6 @@
//go:build !windows
// +build !windows
/*
Copyright 2022 The Kubernetes Authors.

View File

@ -0,0 +1,50 @@
/*
Copyright 2025 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package userns
import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1"
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
)
type UsernsManager struct{}
func MakeUserNsManager(kl userNsPodsManager) (*UsernsManager, error) {
return nil, nil
}
// Release releases the user namespace allocated to the specified pod.
func (m *UsernsManager) Release(podUID types.UID) {
return
}
func (m *UsernsManager) GetOrCreateUserNamespaceMappings(pod *v1.Pod, runtimeHandler string) (*runtimeapi.UserNamespace, error) {
return nil, nil
}
// CleanupOrphanedPodUsernsAllocations reconciliates the state of user namespace
// allocations with the pods actually running. It frees any user namespace
// allocation for orphaned pods.
func (m *UsernsManager) CleanupOrphanedPodUsernsAllocations(pods []*v1.Pod, runningPods []*kubecontainer.Pod) error {
return nil
}
func EnabledUserNamespacesSupport() bool {
return false
}