Skip to content

Commit 83e67f2

Browse files
authored
Merge pull request #1618 from stackhpc/sync-2024.1
Sync stackhpc/2024.1 into master
2 parents fb736ce + 6ddb388 commit 83e67f2

File tree

98 files changed

+4317
-2224
lines changed

Some content is hidden

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

98 files changed

+4317
-2224
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,8 @@ jobs:
423423
-v $(pwd)/sct-results:/stack/sct-results \
424424
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
425425
$KAYOBE_IMAGE \
426-
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-cloud-tests.yml' -e sct_version=${{ inputs.stackhpc_cloud_tests_version }}
426+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-cloud-tests.yml' \
427+
-e sct_version=${{ inputs.stackhpc_cloud_tests_version }}
427428
env:
428429
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
429430

.github/workflows/stackhpc-container-image-build.yml

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,17 @@ jobs:
9292
- name: Generate build matrix
9393
id: set-matrix
9494
run: |
95-
comma=""
96-
echo -n "matrix={\"distro\": [" >> $GITHUB_OUTPUT
95+
output="{'distro': ["
9796
if [[ ${{ inputs.rocky-linux-9 }} == 'true' ]]; then
98-
echo -n "$comma\"rocky\"" >> $GITHUB_OUTPUT
99-
comma=", "
97+
output+="{'name': 'rocky', 'release': 9},"
10098
fi
10199
if [[ ${{ inputs.ubuntu-noble }} == 'true' ]]; then
102-
echo -n "$comma\"ubuntu\"" >> $GITHUB_OUTPUT
103-
comma=", "
100+
output+="{'name': 'ubuntu', 'release': 'noble'},"
104101
fi
105-
echo "]}" >> $GITHUB_OUTPUT
102+
# remove trailing comma
103+
output="${output%,}"
104+
output+="]}"
105+
echo "matrix=$output" >> $GITHUB_OUTPUT
106106
107107
- name: Display container datetime tag
108108
run: |
@@ -173,7 +173,7 @@ jobs:
173173
174174
- name: Get Kolla tag
175175
id: write-kolla-tag
176-
run: echo "kolla-tag=${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ matrix.distro == 'rocky' && '9' || 'noble' }}-${{ needs.generate-tag.outputs.datetime_tag }}" >> $GITHUB_OUTPUT
176+
run: echo "kolla-tag=${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro.name }}-${{ matrix.distro.release }}-${{ needs.generate-tag.outputs.datetime_tag }}" >> $GITHUB_OUTPUT
177177

178178
- name: Configure localhost as a seed
179179
run: |
@@ -203,7 +203,8 @@ jobs:
203203
continue-on-error: true
204204
run: |
205205
args="${{ inputs.regexes }}"
206-
args="$args -e kolla_base_distro=${{ matrix.distro }}"
206+
args="$args -e kolla_base_distro=${{ matrix.distro.name }}"
207+
args="$args -e kolla_base_distro_version=${{ matrix.distro.release }}"
207208
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
208209
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
209210
source venvs/kayobe/bin/activate &&
@@ -221,7 +222,8 @@ jobs:
221222
id: build_seed_images
222223
continue-on-error: true
223224
run: |
224-
args="-e kolla_base_distro=${{ matrix.distro }}"
225+
args="-e kolla_base_distro=${{ matrix.distro.name }}"
226+
args="$args -e kolla_base_distro_version=${{ matrix.distro.release }}"
225227
args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
226228
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
227229
source venvs/kayobe/bin/activate &&
@@ -236,13 +238,13 @@ jobs:
236238
if: inputs.seed
237239

238240
- name: Get built container images
239-
run: docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}" > ${{ matrix.distro }}-container-images
241+
run: docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}" > ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images
240242

241243
- name: Fail if no images have been built
242-
run: if [ $(wc -l < ${{ matrix.distro }}-container-images) -le 1 ]; then exit 1; fi
244+
run: if [ $(wc -l < ${{ matrix.distro.name }}-${{ matrix.distro.release }}-container-images) -le 1 ]; then exit 1; fi
243245

244246
- name: Scan built container images
245-
run: src/kayobe-config/tools/scan-images.sh ${{ matrix.distro }} ${{ steps.write-kolla-tag.outputs.kolla-tag }}
247+
run: src/kayobe-config/tools/scan-images.sh ${{ matrix.distro.name }}-${{ matrix.distro.release }} ${{ steps.write-kolla-tag.outputs.kolla-tag }}
246248

247249
- name: Move image scan logs to output artifact
248250
run: mv image-scan-output image-build-logs/image-scan-output
@@ -297,7 +299,7 @@ jobs:
297299
- name: Upload output artifact
298300
uses: actions/upload-artifact@v4
299301
with:
300-
name: ${{ matrix.distro }}-logs
302+
name: ${{ matrix.distro.name }}-${{ matrix.distro.release }}-logs
301303
path: image-build-logs
302304
retention-days: 7
303305
if: ${{ !cancelled() }}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ jobs:
1818
pull-requests: read
1919
name: Check changed files
2020
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
21+
needs:
22+
- lint
23+
- tox
2124
outputs:
2225
aio: ${{ steps.changes.outputs.aio }}
2326
build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Update Kolla versions
2+
3+
on:
4+
# Allow manual executions
5+
workflow_dispatch:
6+
# Run weekly on Tuesday
7+
schedule:
8+
- cron: '0 0 * * 2'
9+
10+
jobs:
11+
update-from-branch:
12+
name: Update dependencies
13+
strategy:
14+
matrix:
15+
include:
16+
- version: stackhpc/2023.1
17+
codename: Antelope
18+
- version: stackhpc/2024.1
19+
codename: Caracal
20+
- version: stackhpc/master
21+
codename: master
22+
uses: ./.github/workflows/update-dependencies.yml
23+
with:
24+
openstack_version: ${{ matrix.version }}
25+
openstack_codename: ${{ matrix.codename }}
26+
permissions:
27+
contents: write
28+
pull-requests: write
29+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

.github/workflows/update-dependencies.yml

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
name: Update dependencies
22

33
on:
4-
# Allow manual executions
5-
workflow_dispatch:
6-
# Run nightly
7-
schedule:
8-
- cron: '0 0 * * *'
4+
workflow_call:
5+
inputs:
6+
openstack_version:
7+
description: OpenStack version
8+
type: string
9+
required: true
10+
openstack_codename:
11+
description: OpenStack codename
12+
type: string
13+
required: true
914

1015
jobs:
1116
propose_github_release_updates:
@@ -38,20 +43,14 @@ jobs:
3843
- name: Checkout
3944
uses: actions/checkout@v4
4045
with:
46+
ref: ${{ inputs.openstack_version }}
4147
path: ${{ github.workspace }}/src/kayobe-config
4248

43-
- name: Determine OpenStack release
44-
id: openstack_release
45-
run: |
46-
BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' .gitreview)
47-
echo "openstack_release=${BRANCH}" | sed -E "s,(stable|unmaintained)/,," >> $GITHUB_OUTPUT
48-
working-directory: ${{ github.workspace }}/src/kayobe-config
49-
5049
- name: Checkout the dependency repo
5150
uses: actions/checkout@v4
5251
with:
5352
repository: ${{ matrix.repository }}
54-
ref: stackhpc/${{ steps.openstack_release.outputs.openstack_release }}
53+
ref: ${{ inputs.openstack_version }}
5554
fetch-tags: true
5655
path: ${{ github.workspace }}/src/${{ matrix.key }}
5756

@@ -78,10 +77,17 @@ jobs:
7877
path: ${{ github.workspace }}/src/kayobe-config
7978
commit-message: >-
8079
Bump ${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }}
81-
branch: update-dependency/${{ matrix.key }}
80+
author: stackhpc-ci <[email protected]>
81+
branch: update-dependency/${{ matrix.key }}/${{ inputs.openstack_version }}
8282
delete-branch: true
8383
title: >-
8484
Bump ${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }}
8585
body: >
86-
This PR was created automatically to update
86+
This PR was created automatically to update ${{ inputs.openstack_version }}
8787
${{ matrix.key }} to ${{ steps.latest_tag.outputs.latest_tag }}.
88+
89+
GitHub Release Changelog:
90+
https://github.com/stackhpc/${{ matrix.key }}/releases/tag/${{ steps.latest_tag.outputs.latest_tag }}
91+
labels: |
92+
automated
93+
${{ inputs.openstack_codename }}

doc/source/configuration/cephadm.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,8 @@ Pools
206206
~~~~~
207207

208208
The following example pools should be sufficient to work with the
209-
default `external Ceph
210-
configuration <https://docs.openstack.org/kolla-ansible/latest/reference/storage/external-ceph-guide.html>`__
209+
default :kolla-ansible-doc:`external Ceph
210+
configuration <reference/storage/external-ceph-guide.html>`
211211
for Cinder, Cinder backup, Glance, and Nova in Kolla Ansible.
212212

213213
.. code:: yaml
@@ -234,8 +234,8 @@ Keys
234234
~~~~
235235

236236
The following example keys should be sufficient to work with the default
237-
`external Ceph
238-
configuration <https://docs.openstack.org/kolla-ansible/latest/reference/storage/external-ceph-guide.html>`__
237+
:kolla-ansible-doc:`external Ceph
238+
configuration <reference/storage/external-ceph-guide.html>`
239239
for Cinder, Cinder backup, Glance, and Nova in Kolla Ansible.
240240

241241
.. code:: yaml
@@ -351,7 +351,7 @@ RADOS Gateways
351351

352352
RADOS Gateway integration is described in the :kolla-ansible-doc:`Kolla Ansible
353353
documentation
354-
<https://docs.openstack.org/kolla-ansible/latest/reference/storage/external-ceph-guide.html#radosgw>`.
354+
<reference/storage/external-ceph-guide.html#radosgw>`.
355355

356356
RADOS Gateways (RGWs) are defined with the following:
357357

@@ -390,7 +390,7 @@ The set of commands below configure all of these.
390390
- "config set client.rgw rgw_keystone_admin_user 'ceph_rgw'"
391391
- "config set client.rgw rgw_keystone_api_version '3'"
392392
- "config set client.rgw rgw_keystone_token_cache_size '10000'"
393-
- "config set client.rgw rgw_keystone_url https://{{ kolla_internal_fqdn }}:5000"
393+
- "config set client.rgw rgw_keystone_url {{ 'https' if kolla_enable_tls_internal | bool else 'http' }}://{{ kolla_internal_fqdn }}:5000"
394394
- "config set client.rgw rgw_keystone_verify_ssl false"
395395
- "config set client.rgw rgw_max_attr_name_len '1000'"
396396
- "config set client.rgw rgw_max_attr_size '1000'"

doc/source/configuration/ci-cd.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Runner Deployment
118118
The repository permissions for a fine-grained personal access token should be; :code:`Actions: R/W, Administration: R/W, Metadata: R`
119119
Once the key has been obtained, add it to :code:`secrets.yml` under :code:`secrets_github_access_token`
120120

121-
7. If the host is an actual Infra VM then please refer to upstream `Infrastructure VMs <https://docs.openstack.org/kayobe/latest/configuration/reference/infra-vms.html>`__ documentation for additional configuration and steps.
121+
7. If the host is an actual Infra VM then please refer to upstream :kayobe-doc:`Infrastructure VMs <configuration/reference/infra-vms.html>` documentation for additional configuration and steps.
122122

123123
8. Run :code:`kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/deploy-github-runner.yml`
124124

doc/source/configuration/cloudkitty.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ Configuring in kayobe-config
88
By default, CloudKitty uses Gnocchi and Ceilometer as the collector and fetcher
99
backends. Unless the system has a specific reason not to, we recommend instead
1010
using Prometheus as the backend for both. The following instructions explain
11-
how to do this. Also, see the `Kolla Ansible docs on CloudKitty
12-
<https://docs.openstack.org/kolla-ansible/latest/reference/rating/cloudkitty-guide.html>`__
11+
how to do this. Also, see the :kolla-ansible-doc:`Kolla Ansible docs on CloudKitty
12+
<reference/rating/cloudkitty-guide.html>`
1313
for more details.
1414

1515
Enable CloudKitty and disable InfluxDB, as we are using OpenSearch as the

doc/source/configuration/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ the various features provided.
1313
lvm
1414
cephadm
1515
monitoring
16+
openbao
1617
vault
1718
wazuh
1819
walled-garden

doc/source/configuration/monitoring.rst

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ on the overcloud hosts:
8181
SMART reporting should now be enabled along with a Prometheus alert for
8282
unhealthy disks and a Grafana dashboard called ``Hardware Overview``.
8383

84-
Alertmanager and Slack
85-
======================
84+
Alertmanager, Slack and Microsoft Teams
85+
=======================================
8686

8787
StackHPC Kayobe configuration comes bundled with an array of alerts but does not
8888
enable any receivers for notifications by default. Various receivers can be
@@ -119,6 +119,17 @@ available `here <https://awesome-prometheus-alerts.grep.to/>`__. They simply
119119
need to be added to one of the ``*.rules`` files in the prometheus configuration
120120
directory.
121121

122+
If however you are using Microsoft Teams instead of Slack, you can use Prometheus
123+
Alertmanager's built-in support for the new message format based on Power Automate flows.
124+
You will need an incoming webhook URL for your Teams channel.
125+
This can be done by following `these instructions <https://support.microsoft.com/en-gb/office/create-incoming-webhooks-with-workflows-for-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498>`__.
126+
To set up a receiver, create a ``prometheus-alertmanager.yml`` file under
127+
``etc/kayobe/kolla/config/prometheus/``.
128+
An example config is stored in this directory known as ``prometheus-alertmanager.msteamvs2.yml.example``.
129+
The example configuration uses two Slack channels.
130+
One channel receives all alerts while the other only receives alerts tagged as critical.
131+
Feel free to modify the example configuration to suit your needs.
132+
122133
Ceph Monitoring
123134
===============
124135

0 commit comments

Comments
 (0)