@@ -68,7 +68,11 @@ func (r *OpenStackDataPlaneNodeSet) Default() {
6868
6969// Default - set defaults for this OpenStackDataPlaneNodeSet Spec
7070func (spec * OpenStackDataPlaneNodeSetSpec ) Default () {
71- domain := spec .BaremetalSetTemplate .DomainName
71+ var domain string
72+ if spec .BaremetalSetTemplate != nil {
73+ domain = spec .BaremetalSetTemplate .DomainName
74+ }
75+
7276 for nodeName , node := range spec .Nodes {
7377 if node .HostName == "" {
7478 node .HostName = nodeName
@@ -82,7 +86,7 @@ func (spec *OpenStackDataPlaneNodeSetSpec) Default() {
8286 spec .Nodes [nodeName ] = * node .DeepCopy ()
8387 }
8488
85- if ! spec .PreProvisioned {
89+ if ! spec .PreProvisioned && spec . BaremetalSetTemplate != nil {
8690 spec .NodeTemplate .Ansible .AnsibleUser = spec .BaremetalSetTemplate .CloudUserName
8791 if spec .BaremetalSetTemplate .DeploymentSSHSecret == "" {
8892 spec .BaremetalSetTemplate .DeploymentSSHSecret = spec .NodeTemplate .AnsibleSSHPrivateKeySecret
@@ -212,12 +216,14 @@ func (r *OpenStackDataPlaneNodeSetSpec) ValidateUpdate(oldSpec *OpenStackDataPla
212216 // to the openstack-baremetal-operator webhook to avoid duplicating logic.
213217 if ! reflect .DeepEqual (r .BaremetalSetTemplate , oldSpec .BaremetalSetTemplate ) {
214218 // Call openstack-baremetal-operator webhook Validate() to parse changes
215- err := r .BaremetalSetTemplate .ValidateTemplate (
216- len (oldSpec .Nodes ), oldSpec .BaremetalSetTemplate )
217- if err != nil {
218- errors = append (errors , field .Forbidden (
219- field .NewPath ("spec.baremetalSetTemplate" ),
220- fmt .Sprintf ("%s" , err )))
219+ if r .BaremetalSetTemplate != nil && oldSpec .BaremetalSetTemplate != nil {
220+ err := r .BaremetalSetTemplate .ValidateTemplate (
221+ len (oldSpec .Nodes ), * oldSpec .BaremetalSetTemplate )
222+ if err != nil {
223+ errors = append (errors , field .Forbidden (
224+ field .NewPath ("spec.baremetalSetTemplate" ),
225+ fmt .Sprintf ("%s" , err )))
226+ }
221227 }
222228 }
223229
0 commit comments