Skip to content

Commit ffaf5d7

Browse files
authored
Merge branch 'stackhpc/2024.1' into add-gitlab-kayobe-automation
2 parents beaedd3 + bbc4952 commit ffaf5d7

14 files changed

+98
-65
lines changed

.github/path-filters.yml

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ aio: &aio
1111
- '.github/workflows/stackhpc-pull-request.yml'
1212
- 'etc/kayobe/*.yml'
1313
- 'etc/kayobe/ansible/configure-aio-resources.yml'
14+
- 'etc/kayobe/ansible/stackhpc-openstack-tests.yml'
1415
- 'etc/kayobe/ansible/growroot.yml'
1516
- 'etc/kayobe/ansible/requirements.yml'
1617
- 'etc/kayobe/ansible/scripts/aio-init.sh'

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

+11-11
Original file line numberDiff line numberDiff line change
@@ -453,17 +453,17 @@ jobs:
453453
env:
454454
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
455455

456-
- name: StackHPC OpenStack tests
457-
id: stackhpc-openstack-tests
456+
- name: StackHPC Cloud tests
457+
id: stackhpc-cloud-tests
458458
continue-on-error: true
459459
run: |
460-
mkdir -p sot-results
460+
mkdir -p sct-results
461461
docker run -t --rm \
462462
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
463-
-v $(pwd)/sot-results:/stack/sot-results \
463+
-v $(pwd)/sct-results:/stack/sct-results \
464464
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
465465
$KAYOBE_IMAGE \
466-
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-openstack-tests.yml' -e sot_version=${{ inputs.stackhpc_cloud_tests_version }}
466+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-cloud-tests.yml' -e sot_version=${{ inputs.stackhpc_cloud_tests_version }}
467467
env:
468468
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
469469

@@ -488,19 +488,19 @@ jobs:
488488
path: |
489489
diagnostics/
490490
tempest-artifacts/
491-
sot-results/
492-
if: ${{ !cancelled() && (steps.tempest.outcome == 'success' || steps.stackhpc-openstack-tests.outcome == 'success' || steps.diagnostics.outcome == 'success') }}
491+
sct-results/
492+
if: ${{ !cancelled() && (steps.tempest.outcome == 'success' || steps.stackhpc-cloud-tests.outcome == 'success' || steps.diagnostics.outcome == 'success') }}
493493

494494
- name: Fail if any Tempest tests failed
495495
run: |
496496
test $(wc -l < tempest-artifacts/failed-tests) -lt 1
497497
498-
- name: Fail if any StackHPC OpenStack tests failed
498+
- name: Fail if any StackHPC Cloud tests failed
499499
run: |
500-
echo "Some StackHPC OpenStack tests failed."
501-
echo "See HTML results artifact (sot-results) for details."
500+
echo "Some StackHPC Cloud tests failed."
501+
echo "See HTML results artifact (sct-results) for details."
502502
exit 1
503-
if: steps.stackhpc-openstack-tests.outcome == 'failure'
503+
if: steps.stackhpc-cloud-tests.outcome == 'failure'
504504

505505
- name: Destroy
506506
run: terraform destroy -auto-approve

doc/source/contributor/testing-ci-automation.rst

+6-6
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ The workflow performs the following high-level steps:
122122
subnets, routers, etc.).
123123
#. If this is an upgrade job, upgrade the cloud under test to the target
124124
release.
125-
#. Run Tempest and `StackHPC OpenStack Tests
126-
<https://github.com/stackhpc/stackhpc-openstack-tests>`_ to test the cloud.
125+
#. Run Tempest and `StackHPC Cloud Tests
126+
<https://github.com/stackhpc/stackhpc-cloud-tests>`_ to test the cloud.
127127
#. Collect diagnostic information.
128128
#. Upload results as an artifact.
129129
#. Destroy the VM using Terraform.
@@ -345,12 +345,12 @@ The workflow performs the following high-level steps:
345345
previous OpenStack release is deployed.
346346
#. Register test resources in the cloud under test (images, flavors, networks,
347347
subnets, routers, etc.).
348-
#. Run Tempest and `StackHPC OpenStack Tests
349-
<https://github.com/stackhpc/stackhpc-openstack-tests>`__ to test the cloud.
348+
#. Run Tempest and `StackHPC Cloud Tests
349+
<https://github.com/stackhpc/stackhpc-cloud-tests>`__ to test the cloud.
350350
#. If this is an upgrade job, upgrade the cloud under test to the target
351351
release.
352-
#. Run Tempest and `StackHPC OpenStack Tests
353-
<https://github.com/stackhpc/stackhpc-openstack-tests>`__ to test the cloud.
352+
#. Run Tempest and `StackHPC Cloud Tests
353+
<https://github.com/stackhpc/stackhpc-cloud-tests>`__ to test the cloud.
354354
#. Collect diagnostic information.
355355
#. Upload results as an artifact.
356356
#. Destroy the VMs using Terraform.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
- name: "Import pulp-repo-sync"
3+
import_playbook: pulp-repo-sync.yml
4+
5+
- name: "Import pulp-repo-publish"
6+
import_playbook: pulp-repo-publish.yml
7+
8+
- name: "Import pulp-repo-promote-production"
9+
import_playbook: pulp-repo-promote-production.yml
10+
when: repo_promote_production | default(true)
11+
12+
- name: "Import pulp-container-sync"
13+
import_playbook: pulp-container-sync.yml
14+
15+
- name: "Import pulp-container-publish"
16+
import_playbook: pulp-container-publish.yml

etc/kayobe/ansible/stackhpc-openstack-tests.yml renamed to etc/kayobe/ansible/stackhpc-cloud-tests.yml

+34-33
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
---
2-
- name: Run StackHPC OpenStack tests
2+
- name: Run StackHPC Cloud tests
33
hosts: tempest_runner
44
tags:
5-
- stackhpc-openstack-tests
5+
- stackhpc-cloud-tests
66
vars:
7-
sot_venv: "{{ virtualenv_path }}/sot-venv"
8-
sot_repo: https://github.com/stackhpc/stackhpc-cloud-tests
9-
sot_version: main
10-
sot_timeout: 30
11-
results_path_local: "{{ lookup('env', 'HOME') }}/sot-results"
7+
sct_venv: "{{ virtualenv_path }}/sct-venv"
8+
sct_repo: https://github.com/stackhpc/stackhpc-cloud-tests
9+
sct_version: main
10+
sct_timeout: 30
11+
results_path_local: "{{ lookup('env', 'HOME') }}/sct-results"
1212
tasks:
13-
- name: Stackhpc OpenStack tests
13+
- name: Stackhpc Cloud tests
1414
block:
1515
- name: Create a temporary directory for tests repo
1616
ansible.builtin.tempfile:
1717
state: directory
18-
suffix: sot-repo
18+
suffix: sct-repo
1919
register: repo_tmpdir
2020

2121
- name: Create a temporary directory for results
2222
ansible.builtin.tempfile:
2323
state: directory
24-
suffix: sot-results
24+
suffix: sct-results
2525
register: results_tmpdir
2626

27-
- name: Clone the StackHPC OpenStack tests repository
27+
- name: Clone the StackHPC Cloud tests repository
2828
ansible.builtin.git:
29-
repo: "{{ sot_repo }}"
30-
version: "{{ sot_version }}"
29+
repo: "{{ sct_repo }}"
30+
version: "{{ sct_version }}"
3131
dest: "{{ repo_tmpdir.path }}"
3232
depth: 1
3333
single_branch: true
@@ -36,7 +36,7 @@
3636
ansible.builtin.pip:
3737
name: "{{ item.name }}"
3838
state: latest
39-
virtualenv: "{{ sot_venv }}"
39+
virtualenv: "{{ sct_venv }}"
4040
virtualenv_command: python3 -m venv
4141
with_items:
4242
- { name: pip }
@@ -48,47 +48,48 @@
4848
- "{{ repo_tmpdir.path }}"
4949
- pytest-html
5050
- pytest-timeout
51-
virtualenv: "{{ sot_venv }}"
51+
virtualenv: "{{ sct_venv }}"
5252

5353
- name: Ensure Python requirements file packages are installed
5454
ansible.builtin.pip:
5555
requirements: "{{ repo_tmpdir.path }}/requirements.txt"
56-
virtualenv: "{{ sot_venv }}"
56+
virtualenv: "{{ sct_venv }}"
5757

5858
- name: Include Kolla Ansible passwords
5959
ansible.builtin.include_vars:
6060
file: "{{ kayobe_env_config_path }}/kolla/passwords.yml"
6161
name: kolla_passwords
6262

63-
- name: Run StackHPC OpenStack tests
63+
- name: Run StackHPC Cloud tests
6464
ansible.builtin.command:
6565
cmd: >
66-
{{ sot_venv }}/bin/py.test
67-
--html={{ results_tmpdir.path }}/stackhpc-openstack-tests.html
66+
{{ sct_venv }}/bin/py.test
67+
--html={{ results_tmpdir.path }}/stackhpc-cloud-tests.html
6868
--self-contained-html
6969
--pyargs stackhpc_cloud_tests
70-
--timeout {{ sot_timeout }}
70+
--timeout {{ sct_timeout }}
71+
-rfEx
7172
-vv
7273
environment:
73-
OPENSEARCH_HOSTS: "{{ sot_opensearch_hosts }}"
74-
OPENSEARCH_PORT: "{{ sot_opensearch_port }}"
75-
OPENSEARCH_TLS: "{{ sot_opensearch_tls }}"
76-
PROMETHEUS_URL: "{{ sot_prometheus_url }}"
77-
PROMETHEUS_USERNAME: "{{ sot_prometheus_username }}"
78-
PROMETHEUS_PASSWORD: "{{ sot_prometheus_password }}"
74+
OPENSEARCH_HOSTS: "{{ sct_opensearch_hosts }}"
75+
OPENSEARCH_PORT: "{{ sct_opensearch_port }}"
76+
OPENSEARCH_TLS: "{{ sct_opensearch_tls }}"
77+
PROMETHEUS_URL: "{{ sct_prometheus_url }}"
78+
PROMETHEUS_USERNAME: "{{ sct_prometheus_username }}"
79+
PROMETHEUS_PASSWORD: "{{ sct_prometheus_password }}"
7980
vars:
8081
kolla_external_scheme: "{{ 'https' if kolla_enable_tls_external | bool else 'http' }}"
8182
kolla_internal_scheme: "{{ 'https' if kolla_enable_tls_internal | bool else 'http' }}"
82-
sot_opensearch_hosts: "{{ kolla_internal_fqdn }}"
83-
sot_opensearch_port: 9200
84-
sot_opensearch_tls: false
85-
sot_prometheus_url: "{{ kolla_internal_scheme }}://{{ kolla_internal_fqdn }}:9091"
86-
sot_prometheus_username: admin
87-
sot_prometheus_password: "{{ kolla_passwords.prometheus_password }}"
83+
sct_opensearch_hosts: "{{ kolla_internal_fqdn }}"
84+
sct_opensearch_port: 9200
85+
sct_opensearch_tls: false
86+
sct_prometheus_url: "{{ kolla_internal_scheme }}://{{ kolla_internal_fqdn }}:9091"
87+
sct_prometheus_username: admin
88+
sct_prometheus_password: "{{ kolla_passwords.prometheus_password }}"
8889
always:
8990
- name: Fetch results
9091
ansible.builtin.fetch:
91-
src: "{{ results_tmpdir.path }}/stackhpc-openstack-tests.html"
92+
src: "{{ results_tmpdir.path }}/stackhpc-cloud-tests.html"
9293
dest: "{{ results_path_local }}/"
9394
flat: true
9495

etc/kayobe/environments/ci-builder/stackhpc-ci.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ kolla_enable_letsencrypt: true
2222
kolla_enable_magnum: true
2323
kolla_enable_manila: true
2424
kolla_enable_mariabackup: true
25-
kolla_enable_neutron_sriov: true
25+
kolla_enable_neutron_bgp_dragent: true
2626
kolla_enable_neutron_mlnx: true
27+
kolla_enable_neutron_sriov: true
2728
kolla_enable_octavia: true
2829
kolla_enable_opensearch: true
2930
kolla_enable_prometheus: true

etc/kayobe/ipa.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ image_download_unredirected_headers:
126126
#ipa_collectors_default:
127127

128128
# List of additional inspection collectors to run.
129-
ipa_collectors_extra: "{{ ['dmi-decode', 'extra-hardware', 'numa-topology'] if ipa_build_images else [] }}"
129+
ipa_collectors_extra: "{{ ['dmi-decode', 'extra-hardware', 'numa-topology'] if ipa_build_images or stackhpc_ipa_image_overcloud_enabled else [] }}"
130130

131131
# List of inspection collectors to run.
132132
#ipa_collectors:

etc/kayobe/kolla-image-tags.yml

+3
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ kolla_image_tags:
66
openstack:
77
rocky-9: 2024.1-rocky-9-20241218T141751
88
ubuntu-jammy: 2024.1-ubuntu-jammy-20241218T141809
9+
magnum:
10+
rocky-9: 2024.1-rocky-9-20250102T094625
11+
ubuntu-jammy: 2024.1-ubuntu-jammy-20250102T094625

etc/kayobe/kolla.yml

+3-6
Original file line numberDiff line numberDiff line change
@@ -342,12 +342,6 @@ kolla_build_blocks:
342342
&& grafana-cli plugins install grafana-opensearch-datasource
343343
ironic_inspector_header: |
344344
ADD additions-archive /
345-
magnum_base_footer: |
346-
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | head -n -1 | bash
347-
{% raw %}
348-
{% set magnum_capi_packages = ['magnum-capi-helm==1.1.0'] %}
349-
RUN {{ macros.install_pip(magnum_capi_packages | customizable("pip_packages")) }}
350-
{% endraw %}
351345
352346
# Dict mapping image customization variable names to their values.
353347
# Each variable takes the form:
@@ -360,6 +354,9 @@ kolla_build_customizations_common:
360354
- /additions/*
361355
ironic_inspector_pip_packages_append:
362356
- /additions/*
357+
magnum_base_pip_packages_override:
358+
- /magnum[osprofiler]
359+
- magnum-capi-helm==1.2.0
363360
neutron_server_packages_append:
364361
- python3-libvirt
365362
- python3-ethtool

etc/kayobe/kolla/globals.yml

-7
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,6 @@ kolla_image_tags:
2222
# Variables defining which tag to use for each container's image.
2323
{{ lookup('pipe', 'python3 ' ~ kayobe_config_path ~ '/../../tools/kolla-images.py list-tag-vars') }}
2424

25-
# FIXME: Pin to Antelope Magnum until it is working again upstream
26-
kayobe_image_tags:
27-
magnum:
28-
rocky: 2023.1-rocky-9-20240821T102442
29-
ubuntu: 2023.1-ubuntu-jammy-20240821T102442
30-
31-
magnum_tag: "{% raw %}{{ kayobe_image_tags['magnum'][kolla_base_distro] }}{% endraw %}"
3225
#############################################################################
3326
# Monitoring and alerting related settings
3427

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
features:
3+
- |
4+
Enable building of the ``Neutron BGP Dragent`` container image.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
fixes:
3+
- |
4+
Restores the use of extra IPA collectors (including ``extra-hardware``)
5+
when using StackHPC IPA images.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
features:
3+
- |
4+
Added a new playbook `pulp_sync_publish_promote` that can be used to sync,
5+
publish and promote all repositories in a single step, as well as sync and
6+
publish container repos. If you do not want to promote repos then run with
7+
``-e repo_promote_production=false``.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
fixes:
2+
- |
3+
Updates Magnum to a proper Caracal release version following critical bug
4+
upstream merged & backported. Also, updates CAPI Helm driver version to the
5+
latest (1.2.0).

0 commit comments

Comments
 (0)