@@ -116,14 +116,29 @@ func getOSMBootstrapUserDataForCloudInit(ctx context.Context, req plugin.UserDat
116116 ServerURL : req .Kubeconfig .Clusters [clusterName ].Server ,
117117 MachineName : req .MachineSpec .Name ,
118118 }
119- bsScript , err := template .New ("bootstrap-cloud-init" ).Parse (bootstrapBinContentTemplate )
120- if err != nil {
121- return "" , fmt .Errorf ("failed to parse bootstrapBinContentTemplate template: %v" , err )
119+
120+ var (
121+ bsScript * template.Template
122+ err error
123+ )
124+
125+ switch pconfig .OperatingSystem {
126+ case providerconfigtypes .OperatingSystemUbuntu :
127+ bsScript , err = template .New ("bootstrap-cloud-init" ).Parse (bootstrapAptBinContentTemplate )
128+ if err != nil {
129+ return "" , fmt .Errorf ("failed to parse bootstrapAptBinContentTemplate template: %v" , err )
130+ }
131+ case providerconfigtypes .OperatingSystemCentOS :
132+ bsScript , err = template .New ("bootstrap-cloud-init" ).Parse (bootstrapYumBinContentTemplate )
133+ if err != nil {
134+ return "" , fmt .Errorf ("failed to parse bootstrapYumBinContentTemplate template: %v" , err )
135+ }
122136 }
137+
123138 script := & bytes.Buffer {}
124139 err = bsScript .Execute (script , data )
125140 if err != nil {
126- return "" , fmt .Errorf ("failed to execute bootstrapBinContentTemplate template: %v" , err )
141+ return "" , fmt .Errorf ("failed to execute bootstrap script template: %v" , err )
127142 }
128143 bsCloudInit , err := template .New ("bootstrap-cloud-init" ).Parse (cloudInitTemplate )
129144 if err != nil {
@@ -170,7 +185,7 @@ func useIgnition(p *providerconfigtypes.Config) bool {
170185}
171186
172187const (
173- bootstrapBinContentTemplate = `#!/bin/bash
188+ bootstrapAptBinContentTemplate = `#!/bin/bash
174189set -xeuo pipefail
175190apt update && apt install -y curl jq
176191curl -s -k -v --header 'Authorization: Bearer {{ .Token }}' {{ .ServerURL }}/api/v1/namespaces/cloud-init-settings/secrets/{{ .SecretName }} | jq '.data["cloud-config"]' -r| base64 -d > /etc/cloud/cloud.cfg.d/{{ .SecretName }}.cfg
@@ -182,6 +197,19 @@ systemctl restart kubelet.service
182197systemctl restart kubelet-healthcheck.service
183198 `
184199
200+ bootstrapYumBinContentTemplate = `#!/bin/bash
201+ set -xeuo pipefail
202+ yum install epel-release -y
203+ yum install -y curl jq
204+ curl -s -k -v --header 'Authorization: Bearer {{ .Token }}' {{ .ServerURL }}/api/v1/namespaces/cloud-init-settings/secrets/{{ .SecretName }} | jq '.data["cloud-config"]' -r| base64 -d > /etc/cloud/cloud.cfg.d/{{ .SecretName }}.cfg
205+ cloud-init clean
206+ cloud-init --file /etc/cloud/cloud.cfg.d/{{ .SecretName }}.cfg init
207+ systemctl daemon-reload
208+ systemctl restart setup.service
209+ systemctl restart kubelet.service
210+ systemctl restart kubelet-healthcheck.service
211+ `
212+
185213 bootstrapServiceContentTemplate = `[Install]
186214WantedBy=multi-user.target
187215
0 commit comments