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
}