mirror of https://github.com/kubernetes/kops.git
Merge pull request #10547 from justinsb/cos_var_lib_kubelet
COS/GCE: exec on kubelet/flexvolume dirs
This commit is contained in:
commit
4ee8936d63
|
|
@ -52,6 +52,33 @@ func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
// We try to put things into /opt/kops
|
||||
// On some OSes though, /opt/ is not writeable, and we can't even create the mountpoint
|
||||
if b.Distribution == distributions.DistributionContainerOS {
|
||||
// Ensure /var/lib/kubelet has suitable permissions (it's used for emptyDirs, in particular)
|
||||
c.EnsureTask(&nodetasks.File{
|
||||
Path: "/var/lib/kubelet",
|
||||
Type: nodetasks.FileType_Directory,
|
||||
Mode: s("0755"),
|
||||
})
|
||||
|
||||
c.AddTask(&nodetasks.BindMount{
|
||||
Source: "/var/lib/kubelet",
|
||||
Mountpoint: "/var/lib/kubelet",
|
||||
Options: []string{"exec", "suid", "dev"},
|
||||
})
|
||||
|
||||
// Need exec permissions on /home/kubernetes/flexvolume, used for flexvolume drivers
|
||||
c.EnsureTask(&nodetasks.File{
|
||||
Path: "/home/kubernetes/flexvolume",
|
||||
Type: nodetasks.FileType_Directory,
|
||||
Mode: s("0755"),
|
||||
})
|
||||
|
||||
c.AddTask(&nodetasks.BindMount{
|
||||
Source: "/home/kubernetes/flexvolume",
|
||||
Mountpoint: "/home/kubernetes/flexvolume",
|
||||
Options: []string{"exec", "nosuid", "nodev"},
|
||||
})
|
||||
|
||||
// Create /opt
|
||||
src := "/mnt/stateful_partition/opt/"
|
||||
|
||||
c.AddTask(&nodetasks.File{
|
||||
|
|
@ -60,7 +87,7 @@ func (b *DirectoryBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
Mode: s("0755"),
|
||||
})
|
||||
|
||||
// Rebuild things we are masking
|
||||
// Rebuild things we are masking by mounting /opt on top
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: filepath.Join(src, "google"),
|
||||
Type: nodetasks.FileType_Directory,
|
||||
|
|
|
|||
|
|
@ -109,8 +109,8 @@ func (b *KubeletBuilder) Build(c *fi.ModelBuilderContext) error {
|
|||
}
|
||||
{
|
||||
// We always create the directory, avoids circular dependency on a bind-mount
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: filepath.Dir(b.KubeletKubeConfig()),
|
||||
c.EnsureTask(&nodetasks.File{
|
||||
Path: filepath.Dir(b.KubeletKubeConfig()), // e.g. "/var/lib/kubelet"
|
||||
Type: nodetasks.FileType_Directory,
|
||||
Mode: s("0755"),
|
||||
})
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ func (e *BindMount) execute(t Executor) error {
|
|||
case "rshared":
|
||||
makeOptions = append(makeOptions, "--make-rshared")
|
||||
|
||||
case "exec", "noexec", "nosuid", "nodev":
|
||||
case "exec", "noexec", "suid", "nosuid", "dev", "nodev":
|
||||
remountOptions = append(remountOptions, option)
|
||||
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in New Issue