diff --git a/internal/dataplane/util/ansible_execution.go b/internal/dataplane/util/ansible_execution.go index 0a50ed875..b9776cdb8 100644 --- a/internal/dataplane/util/ansible_execution.go +++ b/internal/dataplane/util/ansible_execution.go @@ -279,7 +279,8 @@ func (a *EEJob) FormatAEEExtraVars( } if len(deployment.Spec.ServicesOverride) > 0 { - a.ExtraVars["edpm_services_override"] = json.RawMessage([]byte(fmt.Sprintf("\"%s\"", deployment.Spec.ServicesOverride))) + marshalServicesOverride, _ := json.Marshal(deployment.Spec.ServicesOverride) + a.ExtraVars["edpm_services_override"] = json.RawMessage(marshalServicesOverride) } } diff --git a/internal/dataplane/util/ansibleee.go b/internal/dataplane/util/ansibleee.go index 1cf79eb8e..ca4ffb8e5 100644 --- a/internal/dataplane/util/ansibleee.go +++ b/internal/dataplane/util/ansibleee.go @@ -3,7 +3,6 @@ package util //nolint:revive // util is an acceptable package name in this conte import ( "encoding/json" "fmt" - "sort" "github.com/openstack-k8s-operators/lib-common/modules/storage" yaml "gopkg.in/yaml.v3" @@ -175,22 +174,22 @@ func (a *EEJob) JobForOpenStackAnsibleEE(h *helper.Helper) (*batchv1.Job, error) // if we have any extra vars for ansible to use set them in the RUNNER_EXTRA_VARS if len(a.ExtraVars) > 0 { - keys := make([]string, 0, len(a.ExtraVars)) - for k := range a.ExtraVars { - keys = append(keys, k) - } - sort.Strings(keys) - parsedExtraVars := "" - // unmarshal nested data structures - for _, variable := range keys { + extraVarsMap := make(map[string]interface{}) + for variable, rawValue := range a.ExtraVars { var tmp interface{} - err := yaml.Unmarshal(a.ExtraVars[variable], &tmp) + err := yaml.Unmarshal(rawValue, &tmp) if err != nil { return nil, err } - parsedExtraVars += fmt.Sprintf("%s: %s\n", variable, tmp) + extraVarsMap[variable] = tmp + } + + yamlBytes, err := yaml.Marshal(extraVarsMap) + if err != nil { + return nil, err } - setRunnerEnvVar(h, "RUNNER_EXTRA_VARS", parsedExtraVars, "extraVars", job, hashes) + + setRunnerEnvVar(h, "RUNNER_EXTRA_VARS", string(yamlBytes), "extraVars", job, hashes) } hashPodSpec(h, podSpec, hashes) diff --git a/test/kuttl/tests/dataplane-deploy-no-nodes-test/04-assert.yaml b/test/kuttl/tests/dataplane-deploy-no-nodes-test/04-assert.yaml index d11666214..322860f53 100644 --- a/test/kuttl/tests/dataplane-deploy-no-nodes-test/04-assert.yaml +++ b/test/kuttl/tests/dataplane-deploy-no-nodes-test/04-assert.yaml @@ -124,7 +124,8 @@ spec: edpm_override_hosts: edpm-compute-no-nodes edpm_service_type: ovn - edpm_services_override: [ovn] + edpm_services_override: + - ovn imagePullPolicy: Always diff --git a/test/kuttl/tests/dataplane-deploy-no-nodes-test/07-assert.yaml b/test/kuttl/tests/dataplane-deploy-no-nodes-test/07-assert.yaml index 32c1b4ca8..bb27c35c4 100644 --- a/test/kuttl/tests/dataplane-deploy-no-nodes-test/07-assert.yaml +++ b/test/kuttl/tests/dataplane-deploy-no-nodes-test/07-assert.yaml @@ -58,7 +58,8 @@ spec: edpm_override_hosts: edpm-compute-no-nodes edpm_service_type: configure-os - edpm_services_override: [configure-os] + edpm_services_override: + - configure-os imagePullPolicy: Always diff --git a/test/kuttl/tests/dataplane-deploy-tls-test/03-assert.yaml b/test/kuttl/tests/dataplane-deploy-tls-test/03-assert.yaml index e4d6f62b2..0aefd12c8 100644 --- a/test/kuttl/tests/dataplane-deploy-tls-test/03-assert.yaml +++ b/test/kuttl/tests/dataplane-deploy-tls-test/03-assert.yaml @@ -204,7 +204,10 @@ spec: edpm_override_hosts: openstack-edpm-tls edpm_service_type: tls-dns-ips - edpm_services_override: [install-certs-ovrd tls-dns-ips custom-tls-dns] + edpm_services_override: + - install-certs-ovrd + - tls-dns-ips + - custom-tls-dns imagePullPolicy: Always @@ -315,7 +318,10 @@ spec: edpm_override_hosts: openstack-edpm-tls edpm_service_type: custom-tls-dns - edpm_services_override: [install-certs-ovrd tls-dns-ips custom-tls-dns] + edpm_services_override: + - install-certs-ovrd + - tls-dns-ips + - custom-tls-dns imagePullPolicy: Always