Skip to content

Commit e7dad13

Browse files
authored
Merge branch 'stackhpc/2024.1' into bump-ubuntu-jammy
2 parents 6bdcf5e + 875682f commit e7dad13

31 files changed

+233
-65
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
set -euE
4+
set -o pipefail
5+
6+
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7+
KAYOBE_AUTOMATION_DIR="$(realpath "${PARENT}/../../.automation")"
8+
9+
function main {
10+
if [ "${PULP_DO_CONTAINER_SYNC:-}" = true ]; then
11+
${KAYOBE_AUTOMATION_DIR}/scripts/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/pulp-container-sync.yml' -e stackhpc_pulp_images_kolla_filter="${PULP_KOLLA_FILTER:-}"
12+
fi
13+
if [ "${PULP_DO_CONTAINER_PUBLISH:-}" = true ]; then
14+
${KAYOBE_AUTOMATION_DIR}/scripts/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/pulp-container-publish.yml' -e stackhpc_pulp_images_kolla_filter="${PULP_KOLLA_FILTER:-}"
15+
fi
16+
if [ "${PULP_DO_REPO_SYNC:-}" = true ]; then
17+
${KAYOBE_AUTOMATION_DIR}/scripts/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/pulp-repo-sync.yml'
18+
fi
19+
if [ "${PULP_DO_REPO_PUBLISH:-}" = true ]; then
20+
${KAYOBE_AUTOMATION_DIR}/scripts/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/pulp-repo-publish.yml'
21+
fi
22+
if [ "${PULP_DO_REPO_PROMOTE:-}" = true ]; then
23+
${KAYOBE_AUTOMATION_DIR}/scripts/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/pulp-repo-promote-production.yml'
24+
fi
25+
}
26+
27+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
28+
main
29+
fi

.github/workflows/overcloud-host-image-build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ jobs:
3232
runs-on: arc-skc-host-image-builder-runner
3333
permissions: {}
3434
steps:
35+
- name: Validate inputs
36+
run: |
37+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
38+
echo "At least one distribution must be selected"
39+
exit 1
40+
fi
41+
3542
- name: Install Package
3643
uses: ConorMacBride/install-package@main
3744
with:

.github/workflows/overcloud-host-image-promote.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ jobs:
2323
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
2424
runs-on: ubuntu-22.04
2525
steps:
26+
- name: Validate inputs
27+
run: |
28+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
29+
echo "At least one distribution must be selected"
30+
exit 1
31+
fi
32+
2633
- uses: actions/checkout@v4
2734
with:
2835
path: src/kayobe-config

.github/workflows/overcloud-host-image-upload.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ jobs:
3434
runs-on: arc-skc-host-image-builder-runner
3535
permissions: {}
3636
steps:
37+
- name: Validate inputs
38+
run: |
39+
if [[ ${{ inputs.rocky9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
40+
echo "At least one distribution must be selected"
41+
exit 1
42+
fi
43+
3744
- name: Install package dependencies
3845
run: |
3946
sudo apt update

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

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ jobs:
167167
VM_NETWORK: ${{ inputs.vm_network }}
168168
VM_SUBNET: ${{ inputs.vm_subnet }}
169169
VM_INTERFACE: ${{ inputs.vm_interface }}
170-
VM_VOLUME_SIZE: ${{ inputs.upgrade && '55' || '40' }}
170+
VM_VOLUME_SIZE: ${{ inputs.upgrade && '65' || '50' }}
171171
VM_TAGS: '["skc-ci-aio", "PR=${{ github.event.number }}"]'
172172

173173
- name: Terraform Plan
@@ -214,22 +214,12 @@ jobs:
214214
- name: Write Terraform network config
215215
run: |
216216
cat << EOF > etc/kayobe/environments/$KAYOBE_ENVIRONMENT/tf-networks.yml
217-
218-
admin_oc_net_name: admin
219-
admin_cidr: "{{ access_cidr.value }}"
220-
admin_allocation_pool_start: 0.0.0.0
221-
admin_allocation_pool_end: 0.0.0.0
222-
admin_gateway: "{{ access_gw.value }}"
223-
admin_bootproto: dhcp
224-
admin_ips:
217+
admin_oc_net_name: ethernet
218+
ethernet_cidr: "{{ access_cidr.value }}"
219+
ethernet_allocation_pool_start: 0.0.0.0
220+
ethernet_allocation_pool_end: 0.0.0.0
221+
ethernet_ips:
225222
controller0: "{{ access_ip_v4.value }}"
226-
admin_zone: admin
227-
EOF
228-
229-
- name: Write Terraform network interface config
230-
run: |
231-
cat << EOF > etc/kayobe/environments/$KAYOBE_ENVIRONMENT/inventory/group_vars/controllers/tf-network-interfaces
232-
admin_interface: "{{ access_interface.value }}"
233223
EOF
234224
235225
- name: Write all-in-one scenario config

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ on:
99
required: false
1010
default: ""
1111
overcloud:
12-
description: Build overcloud images?
12+
description: Build container images for overcloud services?
1313
type: boolean
1414
required: false
1515
default: true
1616
seed:
17-
description: Build seed images?
17+
description: Build container images for seed services?
1818
type: boolean
1919
required: false
2020
default: false
@@ -52,6 +52,17 @@ jobs:
5252
matrix: ${{ steps.set-matrix.outputs.matrix }}
5353
openstack_release: ${{ steps.openstack_release.outputs.openstack_release }}
5454
steps:
55+
- name: Validate inputs
56+
run: |
57+
if [[ ${{ inputs.rocky-linux-9 }} == 'false' && ${{ inputs.ubuntu-jammy }} == 'false' ]]; then
58+
echo "At least one distribution must be selected"
59+
exit 1
60+
fi
61+
if [[ ${{ inputs.overcloud }} == 'false' && ${{ inputs.seed }} == 'false' ]]; then
62+
echo "At least one of overcloud or seed must be selected"
63+
exit 1
64+
fi
65+
5566
- name: Checkout
5667
uses: actions/checkout@v4
5768

doc/source/contributor/environments/ci-multinode.rst

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,15 @@ is not enabled by default. To enable it, set the following in
3535
kolla_enable_manila: true
3636
kolla_enable_manila_backend_cephfs_native: true
3737
38-
And re-run ``kayobe overcloud service deploy`` if you are working on an existing
39-
deployment.
38+
If you are working on an existing deployment, you need to do the following first.
39+
40+
1. Create CephFS pools: ``kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/cephadm-pools.yml``
41+
2. Create cephx key for Manila: ``kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/cephadm-keys.yml``
42+
3. Run Manila related Ceph commands: ``kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/cephadm-commands-post.yml``
43+
4. Gather Ceph configuration and keyring for Manila: ``kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/cephadm-gather-keys.yml``
44+
5. Configure Storage network on Seed node: ``kayobe seed host configure -t network,ip-allocation,snat``
45+
46+
Then, run ``kayobe overcloud service deploy`` to deploy Manila.
4047

4148
To test it, you will need two virtual machines. Cirros does not support the Ceph
4249
kernel client, so you will need to use a different image. Any regular Linux
@@ -108,35 +115,35 @@ Then create a share type and share:
108115

109116
.. code-block:: bash
110117
111-
manila type-create cephfs-type false --is_public true
112-
manila type-key cephfs-type set vendor_name=Ceph storage_protocol=CEPHFS
113-
manila create --name test-share --share-type cephfs-type CephFS 2
118+
openstack share type create cephfs-type false --public true
119+
openstack share type set cephfs-type --extra-specs vendor_name=Ceph, storage_protocol=CEPHFS
120+
openstack share create --name test-share --share-type cephfs-type --public true CephFS 2
114121
115122
Wait until the share is available:
116123

117124
.. code-block:: bash
118125
119-
manila list
126+
openstack share list
120127
121128
Then allow access to the shares to two users:
122129

123130
.. code-block:: bash
124131
125-
manila access-allow test-share cephx alice
126-
manila access-allow test-share cephx bob
132+
openstack share access create test-share cephx alice
133+
openstack share access create test-share cephx bob
127134
128135
Show the access list to make sure the state of both entries is ``active`` and
129136
take note of the access keys:
130137

131138
.. code-block:: bash
132139
133-
manila access-list test-share
140+
openstack share access list test-share
134141
135142
And take note of the path to the share:
136143

137144
.. code-block:: bash
138145
139-
manila share-export-location-list test-share
146+
openstack share export location list test-share
140147
141148
SSH into the first instance, create a directory for the share, and mount it:
142149

doc/source/operations/upgrading-openstack.rst

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,18 @@ configuration.
124124
Known issues
125125
============
126126

127-
* OVN breaks on Rocky 9 deployments where hostnames are FQDNs.
128-
Before upgrading, you must make sure no compute or controller nodes have any
129-
``.`` characters in their hostnames. Run the command below to check:
130-
131-
.. code-block:: bash
132-
133-
kayobe overcloud host command run --command "grep -v \'\.\' /etc/hostname" --show-output
134-
135-
There is currently no known fix for this issue aside from reprovisioning. A
136-
patch will be developed soon.
127+
* Due to an incorrect default value NGS will attempt to use v3alpha for the api
128+
path when communicating with etcd3. This isn't possible as in Caracal etcd is
129+
running a newer version that has dropped support for v3alpha. You can work
130+
around this in custom config, see the SMS PR for an example:
131+
https://github.com/stackhpc/smslab-kayobe-config/pull/354
132+
133+
* Due to a `security-related change in the GRUB package on Rocky Linux 9
134+
<https://access.redhat.com/security/cve/CVE-2023-4001>`__, the operating
135+
system can become unbootable (boot will stop at a ``grub>`` prompt). Remove
136+
the ``--root-dev-only`` option from ``/boot/efi/EFI/rocky/grub.cfg`` after
137+
applying package updates. This will happen automatically as a post hook when
138+
running the ``kayobe overcloud host package update`` command.
137139

138140
Security baseline
139141
=================
@@ -187,10 +189,15 @@ to 3.12, then to 3.13 on Antelope before the Caracal upgrade. This upgrade
187189
should not cause an API outage (though it should still be considered "at
188190
risk").
189191

192+
Some errors have been observed in testing when the upgrades are perfomed
193+
back-to-back. A 200s delay eliminates this issue. On particularly large or slow
194+
deployments, consider increasing this timeout.
195+
190196
.. code-block:: bash
191197
192198
kayobe overcloud service configuration generate --node-config-dir /tmp/ignore -kt none
193199
kayobe kolla ansible run "rabbitmq-upgrade 3.12"
200+
sleep 200
194201
kayobe kolla ansible run "rabbitmq-upgrade 3.13"
195202
196203
RabbitMQ quorum queues
@@ -863,6 +870,15 @@ To update all eligible packages, use ``*``, escaping if necessary:
863870
864871
kayobe overcloud host package update --packages "*" --limit <host>
865872
873+
.. note::
874+
875+
Due to a `security-related change in the GRUB package on Rocky Linux 9
876+
<https://access.redhat.com/security/cve/CVE-2023-4001>`__, the operating
877+
system can become unbootable (boot will stop at a ``grub>`` prompt). Remove
878+
the ``--root-dev-only`` option from ``/boot/efi/EFI/rocky/grub.cfg`` after
879+
applying package updates. This will happen automatically as a post hook when
880+
running the ``kayobe overcloud host package update`` command.
881+
866882
If the kernel has been upgraded, reboot the host or batch of hosts to pick up
867883
the change:
868884

etc/kayobe/ansible/advise-run.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
name:
1717
- git+https://github.com/stackhpc/ADVise
1818
state: latest
19+
virtualenv_command: "python3 -m venv"
1920

2021
- name: Create data directory
2122
file:

0 commit comments

Comments
 (0)