func setRegistryMirror()

in pkg/userdata/cloudinit/cloudinit.go [133:164]


func setRegistryMirror(registryMirror *etcdbootstrapv1.RegistryMirrorConfiguration, input *userdata.BaseUserData) error {
	if registryMirror == nil {
		return nil
	}
	tmpl := template.New("registryMirror")
	t, err := tmpl.Parse(registryMirrorConf)
	if err != nil {
		return fmt.Errorf("failed to parse registryMirror template: %v", err)
	}

	var out bytes.Buffer
	if err = t.Execute(&out, registryMirror); err != nil {
		return fmt.Errorf("error generating registryMirror config file: %v", err)
	}

	input.AdditionalFiles = append(input.AdditionalFiles,
		capbk.File{
			Content: registryMirror.CACert,
			Owner:   "root:root",
			Path:    fmt.Sprintf("/etc/containerd/certs.d/%s/ca.crt", registryMirror.Endpoint),
		},
		capbk.File{
			Content: out.String(),
			Owner:   "root:root",
			Path:    "/etc/containerd/config_append.toml",
		},
	)

	input.PreEtcdadmCommands = append(input.PreEtcdadmCommands, `cat /etc/containerd/config_append.toml >> /etc/containerd/config.toml`)
	input.PreEtcdadmCommands = append(input.PreEtcdadmCommands, containerdRestart...)
	return nil
}