Add funcs in pkg/filesystem/util that can actually set file permissiosn
on Windows and update container log dir perms to 660 on Windows
This commit is contained in:
@@ -40,8 +40,9 @@ import (
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
"k8s.io/client-go/informers"
|
||||
|
||||
"k8s.io/mount-utils"
|
||||
|
||||
utilfs "k8s.io/kubernetes/pkg/util/filesystem"
|
||||
netutils "k8s.io/utils/net"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
@@ -1400,7 +1401,7 @@ func (kl *Kubelet) setupDataDirs() error {
|
||||
if err := os.MkdirAll(kl.getRootDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating root directory: %v", err)
|
||||
}
|
||||
if err := os.MkdirAll(kl.getPodLogsDir(), 0750); err != nil {
|
||||
if err := utilfs.MkdirAll(kl.getPodLogsDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating pod logs root directory %q: %w", kl.getPodLogsDir(), err)
|
||||
}
|
||||
if err := kl.hostutil.MakeRShared(kl.getRootDir()); err != nil {
|
||||
@@ -1409,17 +1410,17 @@ func (kl *Kubelet) setupDataDirs() error {
|
||||
if err := os.MkdirAll(kl.getPodsDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating pods directory: %v", err)
|
||||
}
|
||||
if err := os.MkdirAll(kl.getPluginsDir(), 0750); err != nil {
|
||||
if err := utilfs.MkdirAll(kl.getPluginsDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating plugins directory: %v", err)
|
||||
}
|
||||
if err := os.MkdirAll(kl.getPluginsRegistrationDir(), 0750); err != nil {
|
||||
if err := utilfs.MkdirAll(kl.getPluginsRegistrationDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating plugins registry directory: %v", err)
|
||||
}
|
||||
if err := os.MkdirAll(kl.getPodResourcesDir(), 0750); err != nil {
|
||||
return fmt.Errorf("error creating podresources directory: %v", err)
|
||||
}
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.ContainerCheckpoint) {
|
||||
if err := os.MkdirAll(kl.getCheckpointsDir(), 0700); err != nil {
|
||||
if err := utilfs.MkdirAll(kl.getCheckpointsDir(), 0700); err != nil {
|
||||
return fmt.Errorf("error creating checkpoint directory: %v", err)
|
||||
}
|
||||
}
|
||||
@@ -1512,6 +1513,14 @@ func (kl *Kubelet) initializeModules() error {
|
||||
}
|
||||
}
|
||||
|
||||
if sysruntime.GOOS == "windows" {
|
||||
// On Windows we should not allow other users to read the logs directory
|
||||
// to avoid allowing non-root containers from reading the logs of other containers.
|
||||
if err := utilfs.Chmod(ContainerLogsDir, 0750); err != nil {
|
||||
return fmt.Errorf("failed to set permissions on directory %q: %w", ContainerLogsDir, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Start the image manager.
|
||||
kl.imageManager.Start()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user