Skip to content

Commit 51b6068

Browse files
authored
Merge pull request #3730 from randomvariable/kubetest-machine-pool-support
🌱 kubernetesversions: Add option to inject CI artifacts into a KubeadmConfig for a MachinePool
2 parents b4cb2fc + e94d450 commit 51b6068

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

test/framework/kubernetesversions/template.go

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import (
3030
"sigs.k8s.io/yaml"
3131
)
3232

33+
const yamlSeparator = "\n---\n"
34+
3335
type GenerateCIArtifactsInjectedTemplateForDebianInput struct {
3436
// ArtifactsDirectory is where conformance suite output will go. Defaults to _artifacts
3537
ArtifactsDirectory string
@@ -46,6 +48,8 @@ type GenerateCIArtifactsInjectedTemplateForDebianInput struct {
4648
// KubeadmControlPlaneName is the name of the KubeadmControlPlane resource
4749
// that needs to have the Debian install script injected. Defaults to "${CLUSTER_NAME}-control-plane".
4850
KubeadmControlPlaneName string
51+
// KubeadmConfigName is the name of a KubeadmConfig that needs kustomizing. To be used in conjunction with MachinePools. Optional.
52+
KubeadmConfigName string
4953
}
5054

5155
// GenerateCIArtifactsInjectedTemplateForDebian takes a source clusterctl template
@@ -84,7 +88,7 @@ func GenerateCIArtifactsInjectedTemplateForDebian(input GenerateCIArtifactsInjec
8488
return "", err
8589
}
8690

87-
kustomizeVersions, err := generateKustomizeVersionsYaml(input.KubeadmControlPlaneName, input.KubeadmConfigTemplateName)
91+
kustomizeVersions, err := generateKustomizeVersionsYaml(input.KubeadmControlPlaneName, input.KubeadmConfigTemplateName, input.KubeadmConfigName)
8892
if err != nil {
8993
return "", err
9094
}
@@ -109,12 +113,12 @@ func GenerateCIArtifactsInjectedTemplateForDebian(input GenerateCIArtifactsInjec
109113
return kustomizedTemplate, nil
110114
}
111115

112-
func generateKustomizeVersionsYaml(kcpName, kubeadmName string) ([]byte, error) {
116+
func generateKustomizeVersionsYaml(kcpName, kubeadmTemplateName, kubeadmConfigName string) ([]byte, error) {
113117
kcp, err := generateKubeadmControlPlane(kcpName)
114118
if err != nil {
115119
return nil, err
116120
}
117-
kubeadm, err := generateKubeadmConfigTemplate(kubeadmName)
121+
kubeadm, err := generateKubeadmConfigTemplate(kubeadmTemplateName)
118122
if err != nil {
119123
return nil, err
120124
}
@@ -126,7 +130,22 @@ func generateKustomizeVersionsYaml(kcpName, kubeadmName string) ([]byte, error)
126130
if err != nil {
127131
return nil, err
128132
}
129-
fileStr := string(kcpYaml) + "\n---\n" + string(kubeadmYaml)
133+
fileStr := string(kcpYaml) + yamlSeparator + string(kubeadmYaml)
134+
if kubeadmConfigName == "" {
135+
return []byte(fileStr), nil
136+
}
137+
138+
kubeadmConfig, err := generateKubeadmConfig(kubeadmConfigName)
139+
if err != nil {
140+
return nil, err
141+
}
142+
143+
kubeadmConfigYaml, err := yaml.Marshal(kubeadmConfig)
144+
if err != nil {
145+
return nil, err
146+
}
147+
fileStr = fileStr + yamlSeparator + string(kubeadmConfigYaml)
148+
130149
return []byte(fileStr), nil
131150
}
132151

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

173+
func generateKubeadmConfig(name string) (*cabpkv1.KubeadmConfig, error) {
174+
kubeadmSpec, err := generateKubeadmConfigSpec()
175+
if err != nil {
176+
return nil, err
177+
}
178+
return &cabpkv1.KubeadmConfig{
179+
TypeMeta: metav1.TypeMeta{
180+
Kind: "KubeadmConfig",
181+
APIVersion: kcpv1.GroupVersion.String(),
182+
},
183+
ObjectMeta: metav1.ObjectMeta{
184+
Name: name,
185+
},
186+
Spec: *kubeadmSpec,
187+
}, nil
188+
}
189+
154190
func generateKubeadmControlPlane(name string) (*kcpv1.KubeadmControlPlane, error) {
155191
kubeadmSpec, err := generateKubeadmConfigSpec()
156192
if err != nil {

0 commit comments

Comments
 (0)