feat(init): add calico support (#223)

This commit is contained in:
Andrew Rynhard 2018-11-21 07:11:58 -08:00 committed by GitHub
parent 86ef4fc6af
commit f16a130789
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 1 deletions

View File

@ -40,6 +40,7 @@ func (c *CRT) ID(data *userdata.UserData) string {
}
// PreFunc implements the Service interface.
// nolint: gocyclo
func (c *CRT) PreFunc(data *userdata.UserData) error {
switch data.Services.Init.ContainerRuntime {
case constants.ContainerRuntimeDocker:
@ -65,6 +66,25 @@ func (c *CRT) PreFunc(data *userdata.UserData) error {
if err := ioutil.WriteFile("/var/etc/crio/seccomp.json", []byte(seccompProfile), 0644); err != nil {
return fmt.Errorf("failed to write seccomp.json: %v", err)
}
if err := os.MkdirAll("/var/etc/cni/net.d", os.ModeDir); err != nil {
return fmt.Errorf("create /var/etc/cni/net.d: %s", err.Error())
}
if err := os.MkdirAll("/var/opt/cni/bin", os.ModeDir); err != nil {
return fmt.Errorf("create /var/opt/cni/bin: %s", err.Error())
}
if err := os.MkdirAll("/var/etc/kubernetes/manifests", os.ModeDir); err != nil {
return fmt.Errorf("create /var/etc/kubernetes/manifests: %s", err.Error())
}
if err := os.MkdirAll("/var/lib/kubelet", os.ModeDir); err != nil {
return fmt.Errorf("create /var/lib/kubelet: %s", err.Error())
}
if err := os.MkdirAll("/var/lib/calico", os.ModeDir); err != nil {
return fmt.Errorf("create /var/lib/calico: %s", err.Error())
}
if err := os.MkdirAll("/var/libexec/kubernetes", os.ModeDir); err != nil {
return fmt.Errorf("create /var/libexec/kubernetes: %s", err.Error())
}
}
return nil
@ -91,8 +111,10 @@ func (c *CRT) Start(data *userdata.UserData) error {
{Type: "bind", Destination: "/dev", Source: "/dev", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/etc/kubernetes", Source: "/var/etc/kubernetes", Options: []string{"bind", "rw"}},
{Type: "bind", Destination: "/etc/cni", Source: "/var/etc/cni", Options: []string{"bind", "rw"}},
{Type: "bind", Destination: "/opt/cni", Source: "/var/opt/cni", Options: []string{"bind", "rw"}},
{Type: "bind", Destination: "/run", Source: "/run", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/var/lib/kubelet", Source: "/var/lib/kubelet", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/var/lib/calico", Source: "/var/lib/calico", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/usr/libexec/kubernetes", Source: "/var/libexec/kubernetes", Options: []string{"rbind", "rshared", "rw"}},
}
env = []string{}

View File

@ -29,19 +29,27 @@ func (k *Kubelet) PreFunc(data *userdata.UserData) error {
if err := os.Mkdir("/run/flannel", os.ModeDir); err != nil {
return fmt.Errorf("create /run/flannel: %s", err.Error())
}
if err := os.Mkdir("/run/calico", os.ModeDir); err != nil {
return fmt.Errorf("create /run/calico: %s", err.Error())
}
if err := os.MkdirAll("/var/etc/cni/net.d", os.ModeDir); err != nil {
return fmt.Errorf("create /var/etc/cni/net.d: %s", err.Error())
}
if err := os.MkdirAll("/var/opt/cni/bin", os.ModeDir); err != nil {
return fmt.Errorf("create /var/opt/cni/bin: %s", err.Error())
}
if err := os.MkdirAll("/var/etc/kubernetes/manifests", os.ModeDir); err != nil {
return fmt.Errorf("create /var/etc/kubernetes/manifests: %s", err.Error())
}
if err := os.MkdirAll("/var/lib/kubelet", os.ModeDir); err != nil {
return fmt.Errorf("create /var/lib/kubelet: %s", err.Error())
}
if err := os.MkdirAll("/var/lib/calico", os.ModeDir); err != nil {
return fmt.Errorf("create /var/lib/calico: %s", err.Error())
}
if err := os.MkdirAll("/var/libexec/kubernetes", os.ModeDir); err != nil {
return fmt.Errorf("create /var/libexec/kubernetes: %s", err.Error())
}
return nil
}
@ -103,8 +111,10 @@ func (k *Kubelet) Start(data *userdata.UserData) error {
{Type: "bind", Destination: "/dev", Source: "/dev", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/var/run", Source: "/run", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/var/lib/kubelet", Source: "/var/lib/kubelet", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/var/lib/calico", Source: "/var/lib/calico", Options: []string{"rbind", "rshared", "rw"}},
{Type: "bind", Destination: "/etc/kubernetes", Source: "/var/etc/kubernetes", Options: []string{"bind", "rw"}},
{Type: "bind", Destination: "/etc/cni", Source: "/var/etc/cni", Options: []string{"rbind", "rshared", "ro"}},
{Type: "bind", Destination: "/opt/cni", Source: "/var/opt/cni", Options: []string{"rbind", "rshared", "ro"}},
{Type: "bind", Destination: "/etc/os-release", Source: "/etc/os-release", Options: []string{"bind", "ro"}},
{Type: "bind", Destination: "/usr/libexec/kubernetes", Source: "/var/libexec/kubernetes", Options: []string{"rbind", "rshared", "rw"}},
}