func generateNodeUserData()

in pkg/userdata/bottlerocket/node_userdata.go [323:371]


func generateNodeUserData(kind string, tpl string, data interface{}) ([]byte, error) {
	tm := template.New(kind).Funcs(template.FuncMap{"stringsJoin": strings.Join})
	if _, err := tm.Parse(hostContainersTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse hostContainers %s template", kind)
	}
	if _, err := tm.Parse(bootstrapContainersTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse bootstrapContainers %s template", kind)
	}
	if _, err := tm.Parse(kubernetesInitTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse kubernetes %s template", kind)
	}
	if _, err := tm.Parse(networkInitTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse networks %s template", kind)
	}
	if _, err := tm.Parse(registryMirrorTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse registry mirror %s template", kind)
	}
	if _, err := tm.Parse(registryMirrorCACertTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse registry mirror ca cert %s template", kind)
	}
	if _, err := tm.Parse(registryMirrorCredentialsTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse registry mirror credentials %s template", kind)
	}
	if _, err := tm.Parse(ntpTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse NTP %s template", kind)
	}
	if _, err := tm.Parse(sysctlSettingsTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse sysctl settings %s template", kind)
	}
	if _, err := tm.Parse(bootSettingsTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse boot settings %s template", kind)
	}
	if _, err := tm.Parse(certsTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse certs %s template", kind)
	}
	if _, err := tm.Parse(certBundlesSliceTemplate); err != nil {
		return nil, errors.Wrapf(err, "failed to parse cert bundles %s template", kind)
	}
	t, err := tm.Parse(tpl)
	if err != nil {
		return nil, errors.Wrapf(err, "failed to parse %s template", kind)
	}

	var out bytes.Buffer
	if err := t.Execute(&out, data); err != nil {
		return nil, errors.Wrapf(err, "failed to generate %s template", kind)
	}
	return out.Bytes(), nil
}