-
Notifications
You must be signed in to change notification settings - Fork 38
Development notes
Steve Brasier edited this page Dec 19, 2025
·
31 revisions
Updated 19th Dec 2025
There's a very implicit requirement in various places that inventory_hostname is a resolvable name. E.g. here
The logic is:
- FQHN is templated from TF cluster_nodename_template which is overrideable for node groups (e.g. site/tofu/control.tf#L7)
- instance names are always the first dotted portion of the FQHN (e.g. environments/site/tofu/control.tf#L48)
- host name is always set as FQHN via cloud-init (e.g. environments/site/tofu/control.tf#L97)
- the for_each key for the instance in the TF resource is either just "control" or an element of the nodegroups
nodesparameter (e.g. environments/site/tofu/node_group/nodes.tf#L158 -
inventory_hostnameis always the instance name (e.g. environments/site/tofu/inventory.tpl#L10) - By default, /etc/hosts is written with the FQHN or inventory_hostname (fallback is only for older appliances which didn't have FQHN - we could remove this if everyone is on later TF configs)
so:
- inventory_hostname => first dotted portion of FQHN => resolvable via /etc/hosts
Moved to here
Which roles can we ONLY run the install tasks from, to build a cluster-independent(*)/no-config image?
In-appliance roles:
- basic_users: n/a
- block_devices: n/a
- filebeat: n/a but downloads Docker container at service start)
- grafana-dashboards: Downloads grafana dashboards
- grafana-datasources: n/a
- hpctests: n/a but reqd. packages are installed as part of
openhpc_default_packages. - opendistro: n/a but downloads Docker container at service start.
- openondemand:
-
main.ymlunnamed task does rpm installs using osc.ood:install-rpm.yml -
main.ymlunnamed task does rpm installs using pam_auth.yml. -
main.yml[unnamed task] does git downloads using osc.ood:install-apps.yml -
jupyter_compute.yml: Does package installs -
vnc_compute.yml: Does package installs
-
- passwords: n/a
- podman:
prereqs.ymlDoes package installs
Out of appliance roles:
- stackhpc.nfs: [main.yml(https://github.com/stackhpc/ansible-role-cluster-nfs/blob/master/tasks/main.yml) installs packages.
- stackhpc.openhpc: Required and
openhpc_packages(see above) installed in install.yml but requiresopenhpc_slurm_servicefact set frommain.yml. - cloudalchemy.node_exporter:
-
install.yml does binary download from github but also propagation. Could pre-download it and use
node_exporter_binary_local_dirbut install.yml still needs running as it does user creation too. - selinux.yml also does package installations
-
install.yml does binary download from github but also propagation. Could pre-download it and use
- cloudalchemy.blackbox-exporter: Currently unused.
- cloudalchemy.prometheus: install.yml. Same comments as for
cloudalchemy.node_exporterabove. - cloudalchemy.alertmanager: Currently unused.
- cloudalchemy.grafana: install.yml does package updates.
- geerlingguy.mysql: setup-RedHat.yml does package updates BUT needs variables.yml running to load appropriate variables.
- jriguera.configdrive: Unused, should be deleted.
- osc.ood: See
openondemandabove.
- It's not really cluster-independent as which features are turned on where may vary.