Skip to content

Commit 0c87f47

Browse files
authored
Merge branch 'stackhpc/master' into master-requirements
2 parents bd79958 + 983971d commit 0c87f47

File tree

83 files changed

+414
-97
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+414
-97
lines changed

.ansible-lint-ignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ etc/kayobe/ansible/vault-generate-internal-tls.yml fqcn[action-core]
55
etc/kayobe/ansible/vault-generate-test-external-tls.yml fqcn[action-core]
66
etc/kayobe/ansible/rabbitmq-reset.yml command-instead-of-module
77
etc/kayobe/ansible/ubuntu-upgrade.yml syntax-check[missing-file]
8+
etc/kayobe/ansible/check-kayobe-version.yml command-instead-of-module
9+
etc/kayobe/ansible/check-kolla-ansible-version.yml command-instead-of-module

.github/workflows/runner-selector.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737

3838
- name: Set output for container image build runner
3939
run: echo "Setting runner for ${{ inputs.runner_env }} -> ${{ vars.RUNS_ON_TARGET_CONTAINER_IMAGE_BUILDER }}"
40-
40+
4141
- id: container-image-build-runner
4242
run: echo "runner_name_container_image_build=${{ vars.RUNS_ON_TARGET_CONTAINER_IMAGE_BUILDER }}" >> $GITHUB_OUTPUT
4343

.github/workflows/stackhpc-all-in-one.yml

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ name: All in one
77
on:
88
workflow_call:
99
inputs:
10-
runner:
11-
required: false
10+
runner_env:
11+
description: Which cloud to run on?
1212
type: string
13-
description: 'Runner name'
14-
default: 'arc-skc-aio-runner'
13+
default: SMS Lab
1514
kayobe_image:
1615
description: Kayobe container image
1716
type: string
@@ -40,18 +39,6 @@ on:
4039
description: Default network interface name
4140
type: string
4241
default: ens3
43-
vm_flavor:
44-
description: Flavor for the all-in-one VM
45-
type: string
46-
default: en1.medium
47-
vm_network:
48-
description: Network for the all-in-one VM
49-
type: string
50-
default: stackhpc-ci
51-
vm_subnet:
52-
description: Subnet for the all-in-one VM
53-
type: string
54-
default: stackhpc-ci
5542
OS_CLOUD:
5643
description: Name of cloud in clouds.yaml
5744
type: string
@@ -87,11 +74,18 @@ on:
8774
required: true
8875

8976
jobs:
77+
runner-selection:
78+
uses: ./.github/workflows/runner-selector.yml
79+
with:
80+
runner_env: ${{ inputs.upgrade == true && 'Leafcloud' || inputs.runner_env }}
9081
# NOTE: Runner needs unzip and nodejs packages.
9182
all-in-one:
9283
name: All in one
9384
if: ${{ inputs.if && !cancelled() }}
94-
runs-on: ${{ inputs.runner }}
85+
environment: ${{ inputs.upgrade == true && 'Leafcloud' || inputs.runner_env }}
86+
runs-on: ${{ needs.runner-selection.outputs.runner_name_aio }}
87+
needs:
88+
- runner-selection
9589
permissions: {}
9690
env:
9791
KAYOBE_ENVIRONMENT: ci-aio
@@ -170,9 +164,9 @@ jobs:
170164
aio_vm_interface = "${{ env.VM_INTERFACE }}"
171165
aio_vm_name = "${{ env.VM_NAME }}"
172166
aio_vm_image = "${{ env.VM_IMAGE }}"
173-
aio_vm_flavor = "${{ env.VM_FLAVOR }}"
174-
aio_vm_network = "${{ env.VM_NETWORK }}"
175-
aio_vm_subnet = "${{ env.VM_SUBNET }}"
167+
aio_vm_flavor = "${{ vars.HOST_IMAGE_BUILD_FLAVOR }}"
168+
aio_vm_network = "${{ vars.HOST_IMAGE_BUILD_NETWORK }}"
169+
aio_vm_subnet = "${{ vars.HOST_IMAGE_BUILD_SUBNET }}"
176170
aio_vm_volume_size = "${{ env.VM_VOLUME_SIZE }}"
177171
aio_vm_tags = ${{ env.VM_TAGS }}
178172
EOF
@@ -181,9 +175,6 @@ jobs:
181175
SSH_USERNAME: "${{ inputs.ssh_username }}"
182176
VM_NAME: "skc-ci-aio-${{ inputs.neutron_plugin }}-${{ github.run_id }}"
183177
VM_IMAGE: ${{ steps.image_name.outputs.image_name }}
184-
VM_FLAVOR: ${{ inputs.vm_flavor }}
185-
VM_NETWORK: ${{ inputs.vm_network }}
186-
VM_SUBNET: ${{ inputs.vm_subnet }}
187178
VM_INTERFACE: ${{ inputs.vm_interface }}
188179
VM_VOLUME_SIZE: ${{ inputs.upgrade && '65' || '50' }}
189180
VM_TAGS: '["skc-ci-aio", "PR=${{ github.event.number }}"]'
@@ -192,7 +183,7 @@ jobs:
192183
run: terraform plan
193184
working-directory: ${{ github.workspace }}/terraform/aio
194185
env:
195-
OS_CLOUD: ${{ inputs.OS_CLOUD }}
186+
OS_CLOUD: ${{ vars.OS_CLOUD }}
196187
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
197188
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
198189

@@ -213,7 +204,7 @@ jobs:
213204
exit 1
214205
working-directory: ${{ github.workspace }}/terraform/aio
215206
env:
216-
OS_CLOUD: ${{ inputs.OS_CLOUD }}
207+
OS_CLOUD: ${{ vars.OS_CLOUD }}
217208
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
218209
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
219210

@@ -471,7 +462,7 @@ jobs:
471462
run: terraform destroy -auto-approve
472463
working-directory: ${{ github.workspace }}/terraform/aio
473464
env:
474-
OS_CLOUD: ${{ inputs.OS_CLOUD }}
465+
OS_CLOUD: ${{ vars.OS_CLOUD }}
475466
OS_APPLICATION_CREDENTIAL_ID: ${{ secrets.OS_APPLICATION_CREDENTIAL_ID }}
476467
OS_APPLICATION_CREDENTIAL_SECRET: ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
477468
if: always()

.github/workflows/stackhpc-pull-request.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,3 +236,21 @@ jobs:
236236
upgrade: true
237237
secrets: inherit
238238
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
239+
240+
all-in-one-upgrade-rocky-9-ovs:
241+
name: aio upgrade (Rocky 9 OVS)
242+
needs:
243+
- check-changes
244+
- build-kayobe-image
245+
uses: ./.github/workflows/stackhpc-all-in-one.yml
246+
with:
247+
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
248+
os_distribution: rocky
249+
os_release: "9"
250+
ssh_username: cloud-user
251+
neutron_plugin: ovs
252+
OS_CLOUD: openstack
253+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
254+
upgrade: true
255+
secrets: inherit
256+
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

.github/workflows/update-dependencies.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ on:
1414

1515
jobs:
1616
propose_github_release_updates:
17+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
1718
runs-on: ubuntu-22.04
1819
strategy:
1920
matrix:

.github/workflows/upstream-sync.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Upstream Sync
3+
'on':
4+
schedule:
5+
- cron: "15 8 * * 1"
6+
workflow_dispatch:
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
jobs:
11+
synchronise-2023-1:
12+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
13+
name: Synchronise 2023.1
14+
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
15+
with:
16+
release_series: 2023.1
17+
upstream: openstack/kayobe-config
18+
synchronise-2024-1:
19+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
20+
name: Synchronise 2024.1
21+
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
22+
with:
23+
release_series: 2024.1
24+
upstream: openstack/kayobe-config
25+
synchronise-2025-1:
26+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
27+
name: Synchronise 2025.1
28+
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
29+
with:
30+
release_series: 2025.1
31+
upstream: openstack/kayobe-config
32+
synchronise-master:
33+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
34+
name: Synchronise master
35+
uses: stackhpc/.github/.github/workflows/upstream-sync.yml@main
36+
with:
37+
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/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

doc/source/operations/upgrading-openstack.rst

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,39 @@ the following in ``kayobe-config/etc/kayobe/stackhpc-monitoring.yml``:
106106
# targets being templated during deployment.
107107
stackhpc_enable_os_capacity: false
108108
109+
Prometheus blackbox exporter endpoints
110+
--------------------------------------
111+
112+
Many endpoints for the Blackbox exporter are now templated in the Kolla-Ansible
113+
group vars for the cloud. This means that the
114+
``prometheus_blackbox_exporter_endpoints`` variable can be removed from the
115+
environment's ``kolla/globals.yml`` file (if applicable) and the endpoints will
116+
fallback to the ones templated in the group vars. Backend endpoints such as
117+
`these <https://github.com/stackhpc/stackhpc-kayobe-config/blob/094c2e012a037309d103c08a71eb633fdeb214e7/etc/kayobe/kolla/inventory/group_vars/prometheus-blackbox-exporter#L27-L64>`__
118+
are not yet templated by Kolla-Ansible.
119+
120+
Additional endpoints may still be added.
121+
122+
For Kolla-Ansible templating, use ``stackhpc_prometheus_blackbox_exporter_endpoints_custom``.
123+
For example:
124+
125+
.. code-block:: yaml
126+
:caption: ``etc/kayobe/kolla/inventory/group_vars/prometheus-blackbox-exporter``
127+
128+
stackhpc_prometheus_blackbox_exporter_endpoints_custom:
129+
- 'custom_service:http_2xx:{{ public_protocol }}://{{ external_fqdn | put_address_in_context('url') }}:{{ custom_serivce_port }}'
130+
131+
Alternatively, for Kayobe templating, use the ``prometheus_blackbox_exporter_endpoints_kayobe`` variable.
132+
For example:
133+
134+
.. code-block:: yaml
135+
:caption: ``kolla/globals.yml``
136+
137+
prometheus_blackbox_exporter_endpoints_kayobe:
138+
- endpoints:
139+
- "pulp:http_2xx:{{ pulp_url }}/pulp/api/v3/status/"
140+
enabled: "{{ seed_pulp_container_enabled | bool }}"
141+
109142
Known issues
110143
============
111144

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:

0 commit comments

Comments
 (0)