hub_namespaces

In this file we prepare the new namespace to load custom collections into.

group_vars/all/hub_namespaces.yml

We create a new namespace to hold the custom collections for our enterprise, you have a choice here to create more if you want.

---
hub_namespaces_all:
  - name: wf_linux
    company: WF linux
    email: wilco.folkers@homelab
    avatar_url: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg
    description: Namespace for my collections
    resources: "# WF linux\nA Namespace for testing collections"
...

But you can already see that the variable name used here has the "_all" extension, so the variable will not be overridden as this is not quite a inventory.
Why we do this, will become clear in a moment.

group_vars/dev/hub_namespaces.yml

As we do not configure extra namespaces for the dev environment, this file is an empty set.

---
hub_namespaces_dev: []
  # No extra config exists
...

Here the variable has the "_dev" extension, so the variable will not be overridden.

group_vars/prod/hub_namespaces.yml

As we do not configure extra namespaces for the prod environment, this file is an empty set.

---
hub_namespaces_prod: []
  # No extra config exists
...

Here the variable has the "_prod" extension, so the variable will not be overridden.

When we run a pipeline for a certain environment, the inventory structure will provide us with 2 variables: - hub_namespaces_all
- hub_namespaces_

We will merge these 2 variables into 1: hub_namespaces and feed this to the infra.aap_configuration.hub_namespaces role.
In main.yml the merge of the variables is done by this piece of code:

    - name: Set the gateway vars
      ansible.builtin.set_fact:
        hub_namespaces: >
          {{ hub_namespaces_all |
          community.general.lists_mergeby(vars['hub_namespaces_' + branch_name],
          'name', recursive=true, list_merge='append') }}

This results in the hub_namespaces variable the collection needs.

Back