internal/deployers/eksapi/userdata.go (37 lines of code) (raw):

package eksapi import ( "bytes" "fmt" "text/template" "github.com/aws/aws-k8s-tester/internal/deployers/eksapi/templates" ) func generateUserData(format string, cluster *Cluster, opts *deployerOptions) (string, bool, error) { userDataIsMimePart := true var t *template.Template switch format { case "bootstrap.sh": t = templates.UserDataBootstrapSh case "nodeadm": // TODO: replace the YAML template with proper usage of the nodeadm API go types t = templates.UserDataNodeadm case "bottlerocket": t = templates.UserDataBottlerocket userDataIsMimePart = false default: return "", false, fmt.Errorf("uknown user data format: '%s'", format) } kubeletFeatureGates := map[string]bool{} // DRA is in beta for 1.33, and so needs to be explicitly enabled. if opts.KubernetesVersion == "1.33" { kubeletFeatureGates["DynamicResourceAllocation"] = true } var buf bytes.Buffer if err := t.Execute(&buf, templates.UserDataTemplateData{ APIServerEndpoint: cluster.endpoint, CertificateAuthority: cluster.certificateAuthorityData, CIDR: cluster.cidr, Name: cluster.name, KubeletFeatureGates: kubeletFeatureGates, }); err != nil { return "", false, err } return buf.String(), userDataIsMimePart, nil }