Skip to content
Merged
Show file tree
Hide file tree
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
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ until oc get baremetalhosts -n openshift-machine-api; do
sleep 20
done

N="{{ .PlatformData.BareMetal.MasterHostCount }}"
echo "Waiting for $N masters to become provisioned"
while [ "$(oc get bmh -n openshift-machine-api -l installer.openshift.io/role=control-plane -o json | jq '.items[].status.provisioning.state' | grep provisioned -c)" -lt "$N" ]; do
echo "Waiting for $N masters to become provisioned"
echo "Waiting for $CONTROL_PLANE_REPLICA_COUNT masters to become provisioned"
while [ "$(oc get bmh -n openshift-machine-api -l installer.openshift.io/role=control-plane -o json | jq '.items[].status.provisioning.state' | grep provisioned -c)" -lt "$CONTROL_PLANE_REPLICA_COUNT" ]; do
echo "Waiting for $CONTROL_PLANE_REPLICA_COUNT masters to become provisioned"
oc get bmh -A || true
sleep 20
done
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Before=progress.service

[Service]
Type=oneshot
Environment="CONTROL_PLANE_REPLICA_COUNT={{.PlatformData.BareMetal.ControlPlaneReplicas}}"
ExecStart=/usr/local/bin/master-bmh-update.sh
RemainAfterExit=true
Restart=on-failure
Expand Down
11 changes: 3 additions & 8 deletions pkg/asset/ignition/bootstrap/baremetal/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ type TemplateData struct {
Hosts []*baremetal.Host

// How many of the Hosts are control plane machines?
MasterHostCount int
ControlPlaneReplicas int64

// ProvisioningNetwork displays the type of provisioning network being used
ProvisioningNetwork string
Expand Down Expand Up @@ -98,16 +98,11 @@ func externalURLs(apiVIPs []string) (externalURLv4 string, externalURLv6 string)
}

// GetTemplateData returns platform-specific data for bootstrap templates.
func GetTemplateData(config *baremetal.Platform, networks []types.MachineNetworkEntry, ironicUsername, ironicPassword string) *TemplateData {
func GetTemplateData(config *baremetal.Platform, networks []types.MachineNetworkEntry, controlPlaneReplicaCount int64, ironicUsername, ironicPassword string) *TemplateData {
var templateData TemplateData

templateData.Hosts = config.Hosts

for _, host := range config.Hosts {
if host.IsMaster() {
templateData.MasterHostCount++
}
}
templateData.ControlPlaneReplicas = controlPlaneReplicaCount

templateData.ProvisioningIP = config.BootstrapProvisioningIP
templateData.ProvisioningNetwork = string(config.ProvisioningNetwork)
Expand Down
6 changes: 3 additions & 3 deletions pkg/asset/ignition/bootstrap/baremetal/template_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func TestTemplatingIPv4(t *testing.T) {
},
}

result := GetTemplateData(&bareMetalConfig, nil, "bootstrap-ironic-user", "passw0rd")
result := GetTemplateData(&bareMetalConfig, nil, 3, "bootstrap-ironic-user", "passw0rd")

assert.Equal(t, result.ProvisioningDHCPRange, "172.22.0.10,172.22.0.100,24")
assert.Equal(t, result.ProvisioningCIDR, 24)
Expand All @@ -54,7 +54,7 @@ func TestTemplatingManagedIPv6(t *testing.T) {
ProvisioningNetwork: baremetal.ManagedProvisioningNetwork,
}

result := GetTemplateData(&bareMetalConfig, nil, "bootstrap-ironic-user", "passw0rd")
result := GetTemplateData(&bareMetalConfig, nil, 3, "bootstrap-ironic-user", "passw0rd")

assert.Equal(t, result.ProvisioningDHCPRange, "fd2e:6f44:5dd8:b856::1,fd2e:6f44:5dd8::ff,80")
assert.Equal(t, result.ProvisioningCIDR, 80)
Expand All @@ -71,7 +71,7 @@ func TestTemplatingUnmanagedIPv6(t *testing.T) {
ProvisioningNetwork: baremetal.UnmanagedProvisioningNetwork,
}

result := GetTemplateData(&bareMetalConfig, nil, "bootstrap-ironic-user", "passw0rd")
result := GetTemplateData(&bareMetalConfig, nil, 3, "bootstrap-ironic-user", "passw0rd")

assert.Equal(t, result.ProvisioningDHCPRange, "")
assert.Equal(t, result.ProvisioningCIDR, 64)
Expand Down
8 changes: 7 additions & 1 deletion pkg/asset/ignition/bootstrap/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,13 @@ func (a *Common) getTemplateData(dependencies asset.Parents, bootstrapInPlace bo

switch installConfig.Config.Platform.Name() {
case baremetaltypes.Name:
platformData.BareMetal = baremetal.GetTemplateData(installConfig.Config.Platform.BareMetal, installConfig.Config.MachineNetwork, ironicCreds.Username, ironicCreds.Password)
platformData.BareMetal = baremetal.GetTemplateData(
installConfig.Config.Platform.BareMetal,
installConfig.Config.MachineNetwork,
*installConfig.Config.ControlPlane.Replicas,
ironicCreds.Username,
ironicCreds.Password,
)
case vspheretypes.Name:
platformData.VSphere = vsphere.GetTemplateData(installConfig.Config.Platform.VSphere)
}
Expand Down