diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go index 8613b1d4e376d99ec3f1e28e1ccd9cded1907204..dee2a1dfd950b3971cf7f0d536361feb33d83c30 100644 --- a/pkg/minikube/cruntime/containerd.go +++ b/pkg/minikube/cruntime/containerd.go @@ -98,6 +98,10 @@ oom_score = 0 [plugins.cri.registry.mirrors] [plugins.cri.registry.mirrors."docker.io"] endpoint = ["https://registry-1.docker.io"] + {{ range .InsecureRegistry -}} + [plugins.cri.registry.mirrors."{{. -}}"] + endpoint = ["http://{{. -}}"] + {{ end -}} [plugins.diff-service] default = ["walking"] [plugins.linux] @@ -122,6 +126,7 @@ type Containerd struct { ImageRepository string KubernetesVersion semver.Version Init sysinit.Manager + InsecureRegistry []string } // Name is a human readable name for containerd @@ -172,7 +177,7 @@ func (r *Containerd) Available() error { } // generateContainerdConfig sets up /etc/containerd/config.toml -func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semver.Version, forceSystemd bool) error { +func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semver.Version, forceSystemd bool, insecureRegistry []string) error { cPath := containerdConfigFile t, err := template.New("containerd.config.toml").Parse(containerdConfigTemplate) if err != nil { @@ -182,9 +187,11 @@ func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semve opts := struct { PodInfraContainerImage string SystemdCgroup bool + InsecureRegistry []string }{ PodInfraContainerImage: pauseImage, SystemdCgroup: forceSystemd, + InsecureRegistry: insecureRegistry, } var b bytes.Buffer if err := t.Execute(&b, opts); err != nil { @@ -207,7 +214,7 @@ func (r *Containerd) Enable(disOthers, forceSystemd bool) error { if err := populateCRIConfig(r.Runner, r.SocketPath()); err != nil { return err } - if err := generateContainerdConfig(r.Runner, r.ImageRepository, r.KubernetesVersion, forceSystemd); err != nil { + if err := generateContainerdConfig(r.Runner, r.ImageRepository, r.KubernetesVersion, forceSystemd, r.InsecureRegistry); err != nil { return err } if err := enableIPForwarding(r.Runner); err != nil { diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index 5d0b4b6c5f0fc30dac302697c7eb3bde14dd12ab..ba9075051da1c04d130286498eb991d167cd0707 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -130,6 +130,8 @@ type Config struct { ImageRepository string // KubernetesVersion Kubernetes version KubernetesVersion semver.Version + // InsecureRegistry list of insecure registries + InsecureRegistry []string } // ListOptions are the options to use for listing containers @@ -168,6 +170,7 @@ func New(c Config) (Manager, error) { ImageRepository: c.ImageRepository, KubernetesVersion: c.KubernetesVersion, Init: sm, + InsecureRegistry: c.InsecureRegistry, }, nil default: return nil, fmt.Errorf("unknown runtime type: %q", c.Type) diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index b17df750f674814994b383dbd7ea3199e1868aeb..2a077442bc9781045929c550ff43f131363c273c 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -244,6 +244,7 @@ func configureRuntimes(runner cruntime.CommandRunner, cc config.ClusterConfig, k Runner: runner, ImageRepository: cc.KubernetesConfig.ImageRepository, KubernetesVersion: kv, + InsecureRegistry: cc.InsecureRegistry, } cr, err := cruntime.New(co) if err != nil {