Skip to content
Open
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
14 changes: 11 additions & 3 deletions internal/dataplane/inventory.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,8 @@ func GenerateNodeSetInventory(ctx context.Context, helper *helper.Helper,
return "", fmt.Errorf("failed to get MachineConfig registry configuration: %w", err)
}
} else {
helper.GetLogger().Info("Mirror registries detected via IDMS/ICSP. Using OCP registry configuration.")
nodeSetGroup.Vars["edpm_podman_registries_conf"] = registryConfig
nodeSetGroup.Vars["edpm_podman_disconnected_ocp"] = hasMirrorRegistries
helper.GetLogger().Info("Mirror registries detected via IDMS/ICSP. Using OCP registry configuration defaults.")
setDefaultPodmanRegistryConfigVars(nodeSetGroup.Vars, hasMirrorRegistries, registryConfig)
}

mirrorScopes, sourceByMirror, err := util.GetMirrorRegistryScopes(ctx, helper)
Expand Down Expand Up @@ -306,6 +305,15 @@ func populateInventoryFromIPAM(
host.Vars["dns_search_domains"] = dnsSearchDomains
}

func setDefaultPodmanRegistryConfigVars(vars map[string]interface{}, hasMirrorRegistries bool, registryConfig string) {
if _, ok := vars["edpm_podman_registries_conf"]; !ok {
vars["edpm_podman_registries_conf"] = registryConfig
}
if _, ok := vars["edpm_podman_disconnected_ocp"]; !ok {
vars["edpm_podman_disconnected_ocp"] = hasMirrorRegistries
}
}

// set group ansible vars from NodeTemplate
func resolveGroupAnsibleVars(template *dataplanev1.NodeTemplate, group *ansible.Group,
containerImages openstackv1.ContainerImages,
Expand Down
42 changes: 42 additions & 0 deletions internal/dataplane/inventory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,48 @@ func TestProcessConfigMapData_NumbersAsInts(t *testing.T) {
}
}

func TestSetDefaultPodmanRegistryConfigVars(t *testing.T) {
tests := []struct {
name string
vars map[string]interface{}
expectedConfig string
expectedOCP bool
}{
{
name: "sets registry configuration defaults",
vars: map[string]interface{}{},
expectedConfig: "ocp registry config",
expectedOCP: true,
},
{
name: "preserves user registry configuration vars",
vars: map[string]interface{}{
"edpm_podman_registries_conf": "director local mirror config",
"edpm_podman_disconnected_ocp": false,
},
expectedConfig: "director local mirror config",
expectedOCP: false,
},
{
name: "preserves independently overridden registry configuration vars",
vars: map[string]interface{}{
"edpm_podman_disconnected_ocp": false,
},
expectedConfig: "ocp registry config",
expectedOCP: false,
},
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
setDefaultPodmanRegistryConfigVars(tt.vars, true, "ocp registry config")

assert.Equal(t, tt.expectedConfig, tt.vars["edpm_podman_registries_conf"])
assert.Equal(t, tt.expectedOCP, tt.vars["edpm_podman_disconnected_ocp"])
})
}
}

func TestProcessSecretData_NumbersAsInts(t *testing.T) {
tests := []struct {
name string
Expand Down