Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 40 additions & 4 deletions test/framework/kubernetesversions/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ import (
"sigs.k8s.io/yaml"
)

const yamlSeparator = "\n---\n"

type GenerateCIArtifactsInjectedTemplateForDebianInput struct {
// ArtifactsDirectory is where conformance suite output will go. Defaults to _artifacts
ArtifactsDirectory string
Expand All @@ -46,6 +48,8 @@ type GenerateCIArtifactsInjectedTemplateForDebianInput struct {
// KubeadmControlPlaneName is the name of the KubeadmControlPlane resource
// that needs to have the Debian install script injected. Defaults to "${CLUSTER_NAME}-control-plane".
KubeadmControlPlaneName string
// KubeadmConfigName is the name of a KubeadmConfig that needs kustomizing. To be used in conjunction with MachinePools. Optional.
KubeadmConfigName string
}

// GenerateCIArtifactsInjectedTemplateForDebian takes a source clusterctl template
Expand Down Expand Up @@ -84,7 +88,7 @@ func GenerateCIArtifactsInjectedTemplateForDebian(input GenerateCIArtifactsInjec
return "", err
}

kustomizeVersions, err := generateKustomizeVersionsYaml(input.KubeadmControlPlaneName, input.KubeadmConfigTemplateName)
kustomizeVersions, err := generateKustomizeVersionsYaml(input.KubeadmControlPlaneName, input.KubeadmConfigTemplateName, input.KubeadmConfigName)
if err != nil {
return "", err
}
Expand All @@ -109,12 +113,12 @@ func GenerateCIArtifactsInjectedTemplateForDebian(input GenerateCIArtifactsInjec
return kustomizedTemplate, nil
}

func generateKustomizeVersionsYaml(kcpName, kubeadmName string) ([]byte, error) {
func generateKustomizeVersionsYaml(kcpName, kubeadmTemplateName, kubeadmConfigName string) ([]byte, error) {
kcp, err := generateKubeadmControlPlane(kcpName)
if err != nil {
return nil, err
}
kubeadm, err := generateKubeadmConfigTemplate(kubeadmName)
kubeadm, err := generateKubeadmConfigTemplate(kubeadmTemplateName)
if err != nil {
return nil, err
}
Expand All @@ -126,7 +130,22 @@ func generateKustomizeVersionsYaml(kcpName, kubeadmName string) ([]byte, error)
if err != nil {
return nil, err
}
fileStr := string(kcpYaml) + "\n---\n" + string(kubeadmYaml)
fileStr := string(kcpYaml) + yamlSeparator + string(kubeadmYaml)
if kubeadmConfigName == "" {
return []byte(fileStr), nil
}

kubeadmConfig, err := generateKubeadmConfig(kubeadmConfigName)
if err != nil {
return nil, err
}

kubeadmConfigYaml, err := yaml.Marshal(kubeadmConfig)
if err != nil {
return nil, err
}
fileStr = fileStr + yamlSeparator + string(kubeadmConfigYaml)

return []byte(fileStr), nil
}

Expand All @@ -151,6 +170,23 @@ func generateKubeadmConfigTemplate(name string) (*cabpkv1.KubeadmConfigTemplate,
}, nil
}

func generateKubeadmConfig(name string) (*cabpkv1.KubeadmConfig, error) {
kubeadmSpec, err := generateKubeadmConfigSpec()
if err != nil {
return nil, err
}
return &cabpkv1.KubeadmConfig{
TypeMeta: metav1.TypeMeta{
Kind: "KubeadmConfig",
APIVersion: kcpv1.GroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: *kubeadmSpec,
}, nil
}

func generateKubeadmControlPlane(name string) (*kcpv1.KubeadmControlPlane, error) {
kubeadmSpec, err := generateKubeadmConfigSpec()
if err != nil {
Expand Down