mirror of https://github.com/k3s-io/k3s
Merge pull request #65997 from tallclair/writer
Automatic merge from submit-queue (batch tested with PRs 66030, 65997). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Remove unused io util writer & volume host GetWriter() Cleanup unused code. Fixes https://github.com/kubernetes/kubernetes/issues/16971 **Release note**: ```release-note NONE ``` /kind cleanup /sig storagepull/8/head
commit
421789328f
|
@ -62,7 +62,6 @@ go_library(
|
||||||
"//pkg/util/filesystem:go_default_library",
|
"//pkg/util/filesystem:go_default_library",
|
||||||
"//pkg/util/flag:go_default_library",
|
"//pkg/util/flag:go_default_library",
|
||||||
"//pkg/util/flock:go_default_library",
|
"//pkg/util/flock:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/node:go_default_library",
|
"//pkg/util/node:go_default_library",
|
||||||
"//pkg/util/nsenter:go_default_library",
|
"//pkg/util/nsenter:go_default_library",
|
||||||
|
|
|
@ -87,7 +87,6 @@ import (
|
||||||
utilfs "k8s.io/kubernetes/pkg/util/filesystem"
|
utilfs "k8s.io/kubernetes/pkg/util/filesystem"
|
||||||
utilflag "k8s.io/kubernetes/pkg/util/flag"
|
utilflag "k8s.io/kubernetes/pkg/util/flag"
|
||||||
"k8s.io/kubernetes/pkg/util/flock"
|
"k8s.io/kubernetes/pkg/util/flock"
|
||||||
kubeio "k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
nodeutil "k8s.io/kubernetes/pkg/util/node"
|
nodeutil "k8s.io/kubernetes/pkg/util/node"
|
||||||
"k8s.io/kubernetes/pkg/util/nsenter"
|
"k8s.io/kubernetes/pkg/util/nsenter"
|
||||||
|
@ -359,7 +358,6 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mounter := mount.New(s.ExperimentalMounterPath)
|
mounter := mount.New(s.ExperimentalMounterPath)
|
||||||
var writer kubeio.Writer = &kubeio.StdWriter{}
|
|
||||||
var pluginRunner = exec.New()
|
var pluginRunner = exec.New()
|
||||||
if s.Containerized {
|
if s.Containerized {
|
||||||
glog.V(2).Info("Running kubelet in containerized mode")
|
glog.V(2).Info("Running kubelet in containerized mode")
|
||||||
|
@ -368,7 +366,6 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
mounter = mount.NewNsenterMounter(s.RootDirectory, ne)
|
mounter = mount.NewNsenterMounter(s.RootDirectory, ne)
|
||||||
writer = kubeio.NewNsenterWriter(ne)
|
|
||||||
// an exec interface which can use nsenter for flex plugin calls
|
// an exec interface which can use nsenter for flex plugin calls
|
||||||
pluginRunner = nsenter.NewNsenterExecutor(nsenter.DefaultHostRootFsPath, exec.New())
|
pluginRunner = nsenter.NewNsenterExecutor(nsenter.DefaultHostRootFsPath, exec.New())
|
||||||
}
|
}
|
||||||
|
@ -395,7 +392,6 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err
|
||||||
Mounter: mounter,
|
Mounter: mounter,
|
||||||
OOMAdjuster: oom.NewOOMAdjuster(),
|
OOMAdjuster: oom.NewOOMAdjuster(),
|
||||||
OSInterface: kubecontainer.RealOS{},
|
OSInterface: kubecontainer.RealOS{},
|
||||||
Writer: writer,
|
|
||||||
VolumePlugins: ProbeVolumePlugins(),
|
VolumePlugins: ProbeVolumePlugins(),
|
||||||
DynamicPluginProber: GetDynamicPluginProber(s.VolumePluginDir, pluginRunner),
|
DynamicPluginProber: GetDynamicPluginProber(s.VolumePluginDir, pluginRunner),
|
||||||
TLSOptions: tlsOptions}, nil
|
TLSOptions: tlsOptions}, nil
|
||||||
|
|
|
@ -19,7 +19,6 @@ go_library(
|
||||||
"//pkg/controller/volume/attachdetach/reconciler:go_default_library",
|
"//pkg/controller/volume/attachdetach/reconciler:go_default_library",
|
||||||
"//pkg/controller/volume/attachdetach/statusupdater:go_default_library",
|
"//pkg/controller/volume/attachdetach/statusupdater:go_default_library",
|
||||||
"//pkg/controller/volume/attachdetach/util:go_default_library",
|
"//pkg/controller/volume/attachdetach/util:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
|
|
|
@ -44,7 +44,6 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/reconciler"
|
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/reconciler"
|
||||||
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater"
|
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/statusupdater"
|
||||||
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/util"
|
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/util"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
volumeutil "k8s.io/kubernetes/pkg/volume/util"
|
volumeutil "k8s.io/kubernetes/pkg/volume/util"
|
||||||
|
@ -561,10 +560,6 @@ func (adc *attachDetachController) GetMounter(pluginName string) mount.Interface
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (adc *attachDetachController) GetWriter() io.Writer {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (adc *attachDetachController) GetHostName() string {
|
func (adc *attachDetachController) GetHostName() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ go_library(
|
||||||
"//pkg/controller:go_default_library",
|
"//pkg/controller:go_default_library",
|
||||||
"//pkg/controller/volume/expand/cache:go_default_library",
|
"//pkg/controller/volume/expand/cache:go_default_library",
|
||||||
"//pkg/util/goroutinemap/exponentialbackoff:go_default_library",
|
"//pkg/util/goroutinemap/exponentialbackoff:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
|
|
|
@ -40,7 +40,6 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/controller"
|
"k8s.io/kubernetes/pkg/controller"
|
||||||
"k8s.io/kubernetes/pkg/controller/volume/expand/cache"
|
"k8s.io/kubernetes/pkg/controller/volume/expand/cache"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
"k8s.io/kubernetes/pkg/volume/util/operationexecutor"
|
"k8s.io/kubernetes/pkg/volume/util/operationexecutor"
|
||||||
|
@ -268,10 +267,6 @@ func (expc *expandController) GetExec(pluginName string) mount.Exec {
|
||||||
return mount.NewOsExec()
|
return mount.NewOsExec()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (expc *expandController) GetWriter() io.Writer {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (expc *expandController) GetHostName() string {
|
func (expc *expandController) GetHostName() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ go_library(
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/util/goroutinemap:go_default_library",
|
"//pkg/util/goroutinemap:go_default_library",
|
||||||
"//pkg/util/goroutinemap/exponentialbackoff:go_default_library",
|
"//pkg/util/goroutinemap/exponentialbackoff:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
"//pkg/volume/util:go_default_library",
|
"//pkg/volume/util:go_default_library",
|
||||||
|
|
|
@ -26,7 +26,6 @@ import (
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
vol "k8s.io/kubernetes/pkg/volume"
|
vol "k8s.io/kubernetes/pkg/volume"
|
||||||
)
|
)
|
||||||
|
@ -79,10 +78,6 @@ func (ctrl *PersistentVolumeController) GetMounter(pluginName string) mount.Inte
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ctrl *PersistentVolumeController) GetWriter() io.Writer {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ctrl *PersistentVolumeController) GetHostName() string {
|
func (ctrl *PersistentVolumeController) GetHostName() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,7 +97,6 @@ go_library(
|
||||||
"//pkg/securitycontext:go_default_library",
|
"//pkg/securitycontext:go_default_library",
|
||||||
"//pkg/util/dbus:go_default_library",
|
"//pkg/util/dbus:go_default_library",
|
||||||
"//pkg/util/file:go_default_library",
|
"//pkg/util/file:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/iptables:go_default_library",
|
"//pkg/util/iptables:go_default_library",
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/node:go_default_library",
|
"//pkg/util/node:go_default_library",
|
||||||
|
|
|
@ -102,7 +102,6 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/security/apparmor"
|
"k8s.io/kubernetes/pkg/security/apparmor"
|
||||||
sysctlwhitelist "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl"
|
sysctlwhitelist "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl"
|
||||||
utildbus "k8s.io/kubernetes/pkg/util/dbus"
|
utildbus "k8s.io/kubernetes/pkg/util/dbus"
|
||||||
kubeio "k8s.io/kubernetes/pkg/util/io"
|
|
||||||
utilipt "k8s.io/kubernetes/pkg/util/iptables"
|
utilipt "k8s.io/kubernetes/pkg/util/iptables"
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
nodeutil "k8s.io/kubernetes/pkg/util/node"
|
nodeutil "k8s.io/kubernetes/pkg/util/node"
|
||||||
|
@ -247,7 +246,6 @@ type Dependencies struct {
|
||||||
OSInterface kubecontainer.OSInterface
|
OSInterface kubecontainer.OSInterface
|
||||||
PodConfig *config.PodConfig
|
PodConfig *config.PodConfig
|
||||||
Recorder record.EventRecorder
|
Recorder record.EventRecorder
|
||||||
Writer kubeio.Writer
|
|
||||||
VolumePlugins []volume.VolumePlugin
|
VolumePlugins []volume.VolumePlugin
|
||||||
DynamicPluginProber volume.DynamicPluginProber
|
DynamicPluginProber volume.DynamicPluginProber
|
||||||
TLSOptions *server.TLSOptions
|
TLSOptions *server.TLSOptions
|
||||||
|
@ -522,7 +520,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
|
||||||
cgroupsPerQOS: kubeCfg.CgroupsPerQOS,
|
cgroupsPerQOS: kubeCfg.CgroupsPerQOS,
|
||||||
cgroupRoot: kubeCfg.CgroupRoot,
|
cgroupRoot: kubeCfg.CgroupRoot,
|
||||||
mounter: kubeDeps.Mounter,
|
mounter: kubeDeps.Mounter,
|
||||||
writer: kubeDeps.Writer,
|
|
||||||
maxPods: int(kubeCfg.MaxPods),
|
maxPods: int(kubeCfg.MaxPods),
|
||||||
podsPerCore: int(kubeCfg.PodsPerCore),
|
podsPerCore: int(kubeCfg.PodsPerCore),
|
||||||
syncLoopMonitor: atomic.Value{},
|
syncLoopMonitor: atomic.Value{},
|
||||||
|
@ -1062,9 +1059,6 @@ type Kubelet struct {
|
||||||
// Mounter to use for volumes.
|
// Mounter to use for volumes.
|
||||||
mounter mount.Interface
|
mounter mount.Interface
|
||||||
|
|
||||||
// Writer interface to use for volumes.
|
|
||||||
writer kubeio.Writer
|
|
||||||
|
|
||||||
// Manager of non-Runtime containers.
|
// Manager of non-Runtime containers.
|
||||||
containerManager cm.ContainerManager
|
containerManager cm.ContainerManager
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,6 @@ import (
|
||||||
"k8s.io/kubernetes/pkg/kubelet/mountpod"
|
"k8s.io/kubernetes/pkg/kubelet/mountpod"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/secret"
|
"k8s.io/kubernetes/pkg/kubelet/secret"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/token"
|
"k8s.io/kubernetes/pkg/kubelet/token"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
"k8s.io/kubernetes/pkg/volume/util"
|
"k8s.io/kubernetes/pkg/volume/util"
|
||||||
|
@ -168,10 +167,6 @@ func (kvh *kubeletVolumeHost) GetMounter(pluginName string) mount.Interface {
|
||||||
return mount.NewExecMounter(exec, kvh.kubelet.mounter)
|
return mount.NewExecMounter(exec, kvh.kubelet.mounter)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kvh *kubeletVolumeHost) GetWriter() io.Writer {
|
|
||||||
return kvh.kubelet.writer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (kvh *kubeletVolumeHost) GetHostName() string {
|
func (kvh *kubeletVolumeHost) GetHostName() string {
|
||||||
return kvh.kubelet.hostname
|
return kvh.kubelet.hostname
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,6 @@ go_library(
|
||||||
"//pkg/proxy:go_default_library",
|
"//pkg/proxy:go_default_library",
|
||||||
"//pkg/proxy/config:go_default_library",
|
"//pkg/proxy/config:go_default_library",
|
||||||
"//pkg/proxy/iptables:go_default_library",
|
"//pkg/proxy/iptables:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/iptables:go_default_library",
|
"//pkg/util/iptables:go_default_library",
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/node:go_default_library",
|
"//pkg/util/node:go_default_library",
|
||||||
|
|
|
@ -30,7 +30,6 @@ import (
|
||||||
containertest "k8s.io/kubernetes/pkg/kubelet/container/testing"
|
containertest "k8s.io/kubernetes/pkg/kubelet/container/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubelet/dockershim"
|
"k8s.io/kubernetes/pkg/kubelet/dockershim"
|
||||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||||
kubeio "k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/util/oom"
|
"k8s.io/kubernetes/pkg/util/oom"
|
||||||
"k8s.io/kubernetes/pkg/volume/empty_dir"
|
"k8s.io/kubernetes/pkg/volume/empty_dir"
|
||||||
|
@ -76,7 +75,6 @@ func NewHollowKubelet(
|
||||||
VolumePlugins: volumePlugins,
|
VolumePlugins: volumePlugins,
|
||||||
TLSOptions: nil,
|
TLSOptions: nil,
|
||||||
OOMAdjuster: oom.NewFakeOOMAdjuster(),
|
OOMAdjuster: oom.NewFakeOOMAdjuster(),
|
||||||
Writer: &kubeio.StdWriter{},
|
|
||||||
Mounter: mount.New("" /* default mount path */),
|
Mounter: mount.New("" /* default mount path */),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,15 +7,8 @@ load(
|
||||||
|
|
||||||
go_library(
|
go_library(
|
||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = [
|
srcs = ["consistentread.go"],
|
||||||
"consistentread.go",
|
|
||||||
"writer.go",
|
|
||||||
],
|
|
||||||
importpath = "k8s.io/kubernetes/pkg/util/io",
|
importpath = "k8s.io/kubernetes/pkg/util/io",
|
||||||
deps = [
|
|
||||||
"//pkg/util/nsenter:go_default_library",
|
|
||||||
"//vendor/github.com/golang/glog:go_default_library",
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
filegroup(
|
filegroup(
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015 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 io
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/util/nsenter"
|
|
||||||
|
|
||||||
"github.com/golang/glog"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Writer is an interface which allows to write data to a file.
|
|
||||||
type Writer interface {
|
|
||||||
// WriteFile mimics ioutil.WriteFile.
|
|
||||||
WriteFile(filename string, data []byte, perm os.FileMode) error
|
|
||||||
}
|
|
||||||
|
|
||||||
// StdWriter implements Writer interface and uses standard libraries
|
|
||||||
// for writing data to files.
|
|
||||||
type StdWriter struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
// WriteFile directly calls ioutil.WriteFile.
|
|
||||||
func (writer *StdWriter) WriteFile(filename string, data []byte, perm os.FileMode) error {
|
|
||||||
return ioutil.WriteFile(filename, data, perm)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NsenterWriter is implementation of Writer interface that allows writing data
|
|
||||||
// to file using nsenter command.
|
|
||||||
// If a program (e.g. kubelet) runs in a container it may want to write data to
|
|
||||||
// a mounted device. Since in Docker, mount propagation mode is set to private,
|
|
||||||
// it will not see the mounted device in its own namespace. To work around this
|
|
||||||
// limitation one has to first enter hosts namespace (by using 'nsenter') and
|
|
||||||
// only then write data.
|
|
||||||
type NsenterWriter struct {
|
|
||||||
ne *nsenter.Nsenter
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewNsenterWriter creates a new Writer that allows writing data to file using
|
|
||||||
// nsenter command.
|
|
||||||
func NewNsenterWriter(ne *nsenter.Nsenter) *NsenterWriter {
|
|
||||||
return &NsenterWriter{
|
|
||||||
ne: ne,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// WriteFile calls 'nsenter cat - > <the file>' and 'nsenter chmod' to create a
|
|
||||||
// file on the host.
|
|
||||||
func (writer *NsenterWriter) WriteFile(filename string, data []byte, perm os.FileMode) error {
|
|
||||||
echoArgs := []string{"-c", fmt.Sprintf("cat > %s", filename)}
|
|
||||||
glog.V(5).Infof("nsenter: write data to file %s by nsenter", filename)
|
|
||||||
command := writer.ne.Exec("sh", echoArgs)
|
|
||||||
command.SetStdin(bytes.NewBuffer(data))
|
|
||||||
outputBytes, err := command.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
glog.Errorf("Output from writing to %q: %v", filename, string(outputBytes))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
chmodArgs := []string{fmt.Sprintf("%o", perm), filename}
|
|
||||||
glog.V(5).Infof("nsenter: change permissions of file %s to %s", filename, chmodArgs[0])
|
|
||||||
outputBytes, err = writer.ne.Exec("chmod", chmodArgs).CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
glog.Errorf("Output from chmod command: %v", string(outputBytes))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -18,7 +18,6 @@ go_library(
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/cloudprovider:go_default_library",
|
"//pkg/cloudprovider:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/volume/util/fs:go_default_library",
|
"//pkg/volume/util/fs:go_default_library",
|
||||||
"//pkg/volume/util/recyclerclient:go_default_library",
|
"//pkg/volume/util/recyclerclient:go_default_library",
|
||||||
|
|
|
@ -14,7 +14,6 @@ go_library(
|
||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/volume/configmap",
|
importpath = "k8s.io/kubernetes/pkg/volume/configmap",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/strings:go_default_library",
|
"//pkg/util/strings:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
|
|
|
@ -24,7 +24,6 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
ioutil "k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/util/strings"
|
"k8s.io/kubernetes/pkg/util/strings"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
|
@ -93,7 +92,6 @@ func (plugin *configMapPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
|
||||||
pod.UID,
|
pod.UID,
|
||||||
plugin,
|
plugin,
|
||||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||||
plugin.host.GetWriter(),
|
|
||||||
volume.MetricsNil{},
|
volume.MetricsNil{},
|
||||||
},
|
},
|
||||||
source: *spec.Volume.ConfigMap,
|
source: *spec.Volume.ConfigMap,
|
||||||
|
@ -110,7 +108,6 @@ func (plugin *configMapPlugin) NewUnmounter(volName string, podUID types.UID) (v
|
||||||
podUID,
|
podUID,
|
||||||
plugin,
|
plugin,
|
||||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||||
plugin.host.GetWriter(),
|
|
||||||
volume.MetricsNil{},
|
volume.MetricsNil{},
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -131,7 +128,6 @@ type configMapVolume struct {
|
||||||
podUID types.UID
|
podUID types.UID
|
||||||
plugin *configMapPlugin
|
plugin *configMapPlugin
|
||||||
mounter mount.Interface
|
mounter mount.Interface
|
||||||
writer ioutil.Writer
|
|
||||||
volume.MetricsNil
|
volume.MetricsNil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,6 @@ import (
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/volume/util/recyclerclient"
|
"k8s.io/kubernetes/pkg/volume/util/recyclerclient"
|
||||||
)
|
)
|
||||||
|
@ -319,9 +318,6 @@ type VolumeHost interface {
|
||||||
// Get mounter interface.
|
// Get mounter interface.
|
||||||
GetMounter(pluginName string) mount.Interface
|
GetMounter(pluginName string) mount.Interface
|
||||||
|
|
||||||
// Get writer interface for writing data to disk.
|
|
||||||
GetWriter() io.Writer
|
|
||||||
|
|
||||||
// Returns the hostname of the host kubelet is running on
|
// Returns the hostname of the host kubelet is running on
|
||||||
GetHostName() string
|
GetHostName() string
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ go_library(
|
||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/volume/secret",
|
importpath = "k8s.io/kubernetes/pkg/volume/secret",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/strings:go_default_library",
|
"//pkg/util/strings:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
|
|
|
@ -24,7 +24,6 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
ioutil "k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
"k8s.io/kubernetes/pkg/util/strings"
|
"k8s.io/kubernetes/pkg/util/strings"
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
|
@ -100,7 +99,6 @@ func (plugin *secretPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volu
|
||||||
pod.UID,
|
pod.UID,
|
||||||
plugin,
|
plugin,
|
||||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||||
plugin.host.GetWriter(),
|
|
||||||
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
|
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
|
||||||
},
|
},
|
||||||
source: *spec.Volume.Secret,
|
source: *spec.Volume.Secret,
|
||||||
|
@ -117,7 +115,6 @@ func (plugin *secretPlugin) NewUnmounter(volName string, podUID types.UID) (volu
|
||||||
podUID,
|
podUID,
|
||||||
plugin,
|
plugin,
|
||||||
plugin.host.GetMounter(plugin.GetPluginName()),
|
plugin.host.GetMounter(plugin.GetPluginName()),
|
||||||
plugin.host.GetWriter(),
|
|
||||||
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
|
volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -140,7 +137,6 @@ type secretVolume struct {
|
||||||
podUID types.UID
|
podUID types.UID
|
||||||
plugin *secretPlugin
|
plugin *secretPlugin
|
||||||
mounter mount.Interface
|
mounter mount.Interface
|
||||||
writer ioutil.Writer
|
|
||||||
volume.MetricsProvider
|
volume.MetricsProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ go_library(
|
||||||
importpath = "k8s.io/kubernetes/pkg/volume/testing",
|
importpath = "k8s.io/kubernetes/pkg/volume/testing",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/cloudprovider:go_default_library",
|
"//pkg/cloudprovider:go_default_library",
|
||||||
"//pkg/util/io:go_default_library",
|
|
||||||
"//pkg/util/mount:go_default_library",
|
"//pkg/util/mount:go_default_library",
|
||||||
"//pkg/util/strings:go_default_library",
|
"//pkg/util/strings:go_default_library",
|
||||||
"//pkg/volume:go_default_library",
|
"//pkg/volume:go_default_library",
|
||||||
|
|
|
@ -37,7 +37,6 @@ import (
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
utiltesting "k8s.io/client-go/util/testing"
|
utiltesting "k8s.io/client-go/util/testing"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/util/io"
|
|
||||||
"k8s.io/kubernetes/pkg/util/mount"
|
"k8s.io/kubernetes/pkg/util/mount"
|
||||||
utilstrings "k8s.io/kubernetes/pkg/util/strings"
|
utilstrings "k8s.io/kubernetes/pkg/util/strings"
|
||||||
. "k8s.io/kubernetes/pkg/volume"
|
. "k8s.io/kubernetes/pkg/volume"
|
||||||
|
@ -54,7 +53,6 @@ type fakeVolumeHost struct {
|
||||||
cloud cloudprovider.Interface
|
cloud cloudprovider.Interface
|
||||||
mounter mount.Interface
|
mounter mount.Interface
|
||||||
exec mount.Exec
|
exec mount.Exec
|
||||||
writer io.Writer
|
|
||||||
nodeLabels map[string]string
|
nodeLabels map[string]string
|
||||||
nodeName string
|
nodeName string
|
||||||
}
|
}
|
||||||
|
@ -82,7 +80,6 @@ func NewFakeVolumeHostWithNodeName(rootDir string, kubeClient clientset.Interfac
|
||||||
func newFakeVolumeHost(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, cloud cloudprovider.Interface) *fakeVolumeHost {
|
func newFakeVolumeHost(rootDir string, kubeClient clientset.Interface, plugins []VolumePlugin, cloud cloudprovider.Interface) *fakeVolumeHost {
|
||||||
host := &fakeVolumeHost{rootDir: rootDir, kubeClient: kubeClient, cloud: cloud}
|
host := &fakeVolumeHost{rootDir: rootDir, kubeClient: kubeClient, cloud: cloud}
|
||||||
host.mounter = &mount.FakeMounter{}
|
host.mounter = &mount.FakeMounter{}
|
||||||
host.writer = &io.StdWriter{}
|
|
||||||
host.exec = mount.NewFakeExec(nil)
|
host.exec = mount.NewFakeExec(nil)
|
||||||
host.pluginMgr.InitPlugins(plugins, nil /* prober */, host)
|
host.pluginMgr.InitPlugins(plugins, nil /* prober */, host)
|
||||||
return host
|
return host
|
||||||
|
@ -124,10 +121,6 @@ func (f *fakeVolumeHost) GetMounter(pluginName string) mount.Interface {
|
||||||
return f.mounter
|
return f.mounter
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fakeVolumeHost) GetWriter() io.Writer {
|
|
||||||
return f.writer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *fakeVolumeHost) NewWrapperMounter(volName string, spec Spec, pod *v1.Pod, opts VolumeOptions) (Mounter, error) {
|
func (f *fakeVolumeHost) NewWrapperMounter(volName string, spec Spec, pod *v1.Pod, opts VolumeOptions) (Mounter, error) {
|
||||||
// The name of wrapper volume is set to "wrapped_{wrapped_volume_name}"
|
// The name of wrapper volume is set to "wrapped_{wrapped_volume_name}"
|
||||||
wrapperVolumeName := "wrapped_" + volName
|
wrapperVolumeName := "wrapped_" + volName
|
||||||
|
|
Loading…
Reference in New Issue