diff --git a/internal/app/init/pkg/system/services/kubeadm.go b/internal/app/init/pkg/system/services/kubeadm.go index 56e788865..b7d595256 100644 --- a/internal/app/init/pkg/system/services/kubeadm.go +++ b/internal/app/init/pkg/system/services/kubeadm.go @@ -17,6 +17,7 @@ import ( "github.com/containerd/containerd/oci" criconstants "github.com/containerd/cri/pkg/constants" specs "github.com/opencontainers/runtime-spec/specs-go" + "github.com/pkg/errors" "github.com/talos-systems/talos/internal/app/init/pkg/system/conditions" "github.com/talos-systems/talos/internal/app/init/pkg/system/runner" "github.com/talos-systems/talos/internal/app/init/pkg/system/runner/containerd" @@ -38,6 +39,24 @@ func (k *Kubeadm) ID(data *userdata.UserData) string { // PreFunc implements the Service interface. // nolint: gocyclo func (k *Kubeadm) PreFunc(ctx context.Context, data *userdata.UserData) (err error) { + requiredMounts := []string{ + "/dev/disk/by-path", + "/etc/kubernetes", + "/etc/kubernetes/manifests", + "/run", + "/sys/fs/cgroup", + "/usr/libexec/kubernetes", + "/var/lib/containerd", + "/var/lib/kubelet", + "/var/log/pods", + } + + for _, dir := range requiredMounts { + if err = os.MkdirAll(dir, os.ModeDir); err != nil { + return errors.Wrapf(err, "create %s", dir) + } + } + reqs := []*containerd.ImportRequest{ { Path: "/usr/images/hyperkube.tar", @@ -148,9 +167,7 @@ func (k *Kubeadm) DependsOn(data *userdata.UserData) []string { // Condition implements the Service interface. func (k *Kubeadm) Condition(data *userdata.UserData) conditions.Condition { - files := []string{constants.ContainerdAddress} - - return conditions.WaitForFilesToExist(files...) + return nil } // Runner implements the Service interface. diff --git a/internal/app/init/pkg/system/services/kubelet.go b/internal/app/init/pkg/system/services/kubelet.go index 372c4f71e..bcc13ccac 100644 --- a/internal/app/init/pkg/system/services/kubelet.go +++ b/internal/app/init/pkg/system/services/kubelet.go @@ -9,7 +9,6 @@ import ( "fmt" "io/ioutil" "net/http" - "os" "strings" "time" @@ -40,24 +39,6 @@ func (k *Kubelet) ID(data *userdata.UserData) string { // PreFunc implements the Service interface. func (k *Kubelet) PreFunc(ctx context.Context, data *userdata.UserData) error { - requiredMounts := []string{ - "/dev/disk/by-path", - "/etc/kubernetes", - "/etc/kubernetes/manifests", - "/run", - "/sys/fs/cgroup", - "/usr/libexec/kubernetes", - "/var/lib/containerd", - "/var/lib/kubelet", - "/var/log/pods", - } - - for _, dir := range requiredMounts { - if err := os.MkdirAll(dir, os.ModeDir); err != nil { - return fmt.Errorf("create %s: %s", dir, err.Error()) - } - } - return nil }