hub_namespaces
In this file we prepare the new namespace to load custom collections into.
The infra.aap_configuration collection expects the vaules in the variable: hub_namespaces.
As we intend to configure everything just once, we spit the set of vars into the environments and join the lists in the main.yml, before calling the collection.
If there are no namespaces defined, do not add this file.
If you do, ensure the file is present in all branches, with the correct content, described below.
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.