Skip to content

Commit f0c5c02

Browse files
authored
Merge branch 'stackhpc/2024.1' into rated-dwpd-alerts
2 parents 98cc322 + 09fa0e0 commit f0c5c02

29 files changed

+175
-45
lines changed

.github/workflows/upstream-sync.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,25 @@ jobs:
1414
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
1515
with:
1616
release_series: 2023.1
17+
upstream: openstack/kayobe-config
1718
synchronise-2024-1:
1819
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
1920
name: Synchronise 2024.1
2021
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
2122
with:
2223
release_series: 2024.1
24+
upstream: openstack/kayobe-config
2325
synchronise-2025-1:
2426
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
2527
name: Synchronise 2025.1
2628
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
2729
with:
2830
release_series: 2025.1
31+
upstream: openstack/kayobe-config
2932
synchronise-master:
3033
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
3134
name: Synchronise master
3235
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
3336
with:
3437
release_series: master
38+
upstream: openstack/kayobe-config

doc/source/configuration/ipa.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ StackHPC provides prebuilt Ironic Python Agent (IPA) images in Release Train
1111
through Ark.
1212

1313
These images are built in CI using a GitHub workflow and are configured in this
14-
repository. See :kayobe-doc: `Kayobe documentation
14+
repository. See :kayobe-doc:`Kayobe documentation
1515
<configuration/reference/ironic-python-agent.html>` for more details on IPA.
1616

1717
Release Train IPA images are used by Bifrost and Overcloud Ironic by default in

doc/source/configuration/monitoring.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,18 @@ for the exporter.
169169
If you are deploying in a cloud with internal TLS, you may be required
170170
to provide a CA certificate for the OpenStack Capacity exporter if your
171171
certificate is not signed by a trusted CA. For example, to use a CA certificate
172-
named ``vault.crt`` that is also added to the Kolla containers:
172+
named ``vault.crt`` or ``openbao.crt`` that is also added to the Kolla containers:
173173

174174
.. code-block:: yaml
175175
176176
stackhpc_os_capacity_openstack_cacert: "{{ kayobe_env_config_path }}/kolla/certificates/ca/vault.crt"
177177
178+
or
179+
180+
.. code-block:: yaml
181+
182+
stackhpc_os_capacity_openstack_cacert: "{{ kayobe_env_config_path }}/kolla/certificates/ca/openbao.crt"
183+
178184
Alternatively, to disable certificate verification for the OpenStack Capacity
179185
exporter:
180186

doc/source/configuration/release-train.rst

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,29 @@ The Pulp container is deployed on the seed by default, but may be disabled by
5252
setting ``seed_pulp_container_enabled`` to ``false`` in
5353
``etc/kayobe/seed.yml``.
5454

55-
The URL and credentials of the local Pulp server are configured in
56-
``etc/kayobe/pulp.yml`` via ``pulp_url``, ``pulp_username`` and
57-
``pulp_password``. In most cases, the default values should be sufficient.
58-
An admin password must be generated and set as the value of a
59-
``secrets_pulp_password`` variable, typically in an Ansible Vault encrypted
60-
``etc/kayobe/secrets.yml`` file. This password will be automatically set on
61-
Pulp startup.
62-
63-
If a proxy is required to access the Internet from the seed, ``pulp_proxy_url``
64-
may be used.
55+
The URL for the local Pulp server is configured by ``pulp_url`` within
56+
``etc/kayobe/pulp.yml``.
57+
58+
The Pulp service can be configured with two sets of credentials; one for
59+
administrator operations and another read-only for overcloud hosts
60+
to use.
61+
The administrator credentials can be configured ``pulp_username``,
62+
``pulp_password``
63+
The basic user account credentials can be configured with ``pulp_stack_username``
64+
and ``pulp_stack_password``.
65+
Both sets of credentials can be found within ``etc/kayobe/pulp.yml``.
66+
67+
Both the ``pulp_password`` and ``pulp_stack_password`` are intended to be
68+
configured via their ``secrets_*`` counterparts, i.e.
69+
``secrets_pulp_password`` and ``secrets_pulp_stack_password``. These variables
70+
are expected to be set in an Ansible Vault encrypted
71+
``etc/kayobe/secrets.yml`` file.
72+
73+
Passwords can be generated using ``OpenSSL``
74+
75+
.. code-block:: console
76+
77+
openssl rand -base64 32
6578
6679
Host images are not synchronised to the local Pulp server, since they should
6780
only be pulled to the seed node once. More information on host images can be

etc/kayobe/ansible/cephadm-gather-keys.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
# Kolla Ansible's merge_configs module does not like the leading tabs in ceph.conf.
6969
content: |
7070
{{ cephadm_ceph_conf.stdout | regex_replace('\t') }}
71+
{{ kolla_ceph_conf_append if kolla_ceph_conf_append is defined }}
7172
dest: "{{ kayobe_env_config_path }}/kolla/config/{{ kolla_service_to_conf_dir[item.0.name] }}/ceph.conf"
7273
loop: "{{ query('subelements', kolla_ceph_services | selectattr('required'), 'keys') }}"
7374
loop_control:

etc/kayobe/ansible/deploy-radosgw-usage-exporter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
ADMIN_ENTRY: admin
115115
ACCESS_KEY: "{{ ec2.Access }}"
116116
SECRET_KEY: "{{ ec2.Secret }}"
117-
VIRTUAL_PORT: "{{ stackhpc_radosgw_usage_exporter_port | string }}"
117+
VIRTUAL_PORT: "{{ stackhpc_radosgw_usage_exporter_backend_port | string }}"
118118
REQUESTS_CA_BUNDLE: "/etc/ssl/certs/ca-certificates.crt"
119119
entrypoint: "{{ ['python', '-u', './radosgw_usage_exporter.py', '--insecure'] if not stackhpc_radosgw_usage_exporter_verify else omit }}"
120120
vars:

etc/kayobe/ansible/openbao-deploy-overcloud.yml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@
2121
gather_facts: true
2222
hosts: controllers
2323
vars:
24-
openbao_bind_address: "{{ internal_net_name | net_ip }}"
24+
openbao_bind_addr: "{{ internal_net_name | net_ip }}"
25+
# This is the IP address of the first controller and therefore the leader within
26+
# OpenBao. This could be replaced with the VIP address of the internal network if
27+
# HAProxy has been configured to load balance the OpenBao API.
28+
openbao_raft_leaders:
29+
- "{{ internal_net_name | net_ip(inventory_hostname=groups['controllers'][0]) }}"
2530
tasks:
2631
- name: Set a fact about the virtualenv on the remote system
2732
ansible.builtin.set_fact:
@@ -46,7 +51,7 @@
4651

4752
- name: Template out TLS key and cert
4853
ansible.builtin.copy:
49-
# Within the OpenBao container these uids & gids map to the vault user
54+
# Within the OpenBao container these uids & gids map to the openbao user
5055
src: "{{ kayobe_env_config_path }}/openbao/{{ item }}"
5156
dest: /opt/kayobe/openbao/{{ item }}
5257
owner: 100
@@ -55,6 +60,7 @@
5560
loop:
5661
- "{% if kolla_internal_fqdn != kolla_internal_vip_address %}{{ kolla_internal_fqdn }}{% else %}overcloud{% endif %}.crt"
5762
- "{% if kolla_internal_fqdn != kolla_internal_vip_address %}{{ kolla_internal_fqdn }}{% else %}overcloud{% endif %}.key"
63+
- "OS-TLS-INT.crt"
5864
become: true
5965

6066
- name: Apply OpenBao role
@@ -71,6 +77,7 @@
7177
openbao_docker_tag: "{{ overcloud_openbao_docker_tag }}"
7278
openbao_tls_cert: "{% if kolla_internal_fqdn != kolla_internal_vip_address %}{{ kolla_internal_fqdn }}{% else %}overcloud{% endif %}.crt"
7379
openbao_tls_key: "{% if kolla_internal_fqdn != kolla_internal_vip_address %}{{ kolla_internal_fqdn }}{% else %}overcloud{% endif %}.key"
80+
openbao_tls_ca: "OS-TLS-INT.crt"
7481
copy_self_signed_ca: true
7582
openbao_api_addr: https://{{ internal_net_name | net_ip }}:8200
7683
openbao_write_keys_file: true
@@ -91,6 +98,28 @@
9198
vault_unseal_keys: "{{ openbao_keys.keys_base64 }}"
9299
environment:
93100
https_proxy: ""
101+
run_once: true
102+
103+
# As the first instance is now unsealed the other instances will now need some
104+
# time to connect before we can proceed.
105+
- name: Wait for OpenBao Raft peers to connect
106+
ansible.builtin.wait_for:
107+
timeout: 30
108+
delegate_to: localhost
109+
110+
# Raft peers take few seconds before they report an unsealed state therefore
111+
# we must wait.
112+
- name: Unseal OpenBao
113+
ansible.builtin.import_role:
114+
name: stackhpc.hashicorp.vault_unseal
115+
vars:
116+
vault_api_addr: https://{{ internal_net_name | net_ip }}:8200
117+
vault_unseal_token: "{{ openbao_keys.root_token }}"
118+
vault_unseal_ca_cert: "{{ '/etc/pki/tls/certs/ca-bundle.crt' if ansible_facts.os_family == 'RedHat' else '/usr/local/share/ca-certificates/OS-TLS-ROOT.crt' }}"
119+
vault_unseal_keys: "{{ openbao_keys.keys_base64 }}"
120+
vault_unseal_timeout: 10
121+
environment:
122+
https_proxy: ""
94123

95124
- name: Configure PKI
96125
any_errors_fatal: true

etc/kayobe/ansible/openbao-deploy-seed.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
gather_facts: true
55
hosts: seed
66
vars:
7-
openbao_bind_address: "{{ ansible_facts['lo'].ipv4.address }}"
8-
openbao_api_addr: "http://{{ openbao_bind_address }}:8200"
7+
openbao_bind_addr: "{{ ansible_facts['lo'].ipv4.address }}"
8+
openbao_api_addr: "http://{{ openbao_bind_addr }}:8200"
99
tasks:
1010
- name: Set a fact about the virtualenv on the remote system
1111
ansible.builtin.set_fact:

etc/kayobe/ansible/pulp-host-image-download.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,15 @@
77
# password in the get_url task of this playbook
88
stackhpc_overcloud_host_image_url_no_auth: "{{ stackhpc_release_pulp_content_url }}/kayobe-images/\
99
{{ openstack_release }}/{{ os_distribution }}/{{ os_release }}/\
10-
{{ 'ofed/' if stackhpc_overcloud_host_image_is_ofed else '' }}\
1110
{{ stackhpc_overcloud_host_image_version }}/\
12-
overcloud-{{ os_distribution }}-{{ os_release }}\
13-
{{ '-ofed' if stackhpc_overcloud_host_image_is_ofed else '' }}.qcow2"
11+
overcloud-{{ os_distribution }}-{{ os_release }}.qcow2"
1412
tasks:
1513
- name: Print image information
1614
ansible.builtin.debug:
1715
msg: |
1816
OS Distribution: {{ os_distribution }}
1917
OS Release: {{ os_release }}
2018
Image tag: {{ stackhpc_overcloud_host_image_version }}
21-
OFED: {{ stackhpc_overcloud_host_image_is_ofed }}
2219
2320
# TODO: Add checksum support
2421
- name: Download image artifact

etc/kayobe/ansible/requirements.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ collections:
99
- name: stackhpc.pulp
1010
version: 0.5.5
1111
- name: stackhpc.hashicorp
12-
version: 2.6.1
12+
version: 2.7.1
1313
- name: stackhpc.kayobe_workflows
1414
version: 1.1.0
1515
roles:

0 commit comments

Comments
 (0)