Skip to content

Enable AIOs in Master #1512

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/stackhpc-build-kayobe-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
build-kayobe-image:
name: Build kayobe image
if: inputs.if || github.repository == 'stackhpc/stackhpc-kayobe-config' && github.event_name == 'push'
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
Expand Down Expand Up @@ -93,6 +93,7 @@ jobs:
http_proxy=${{ inputs.http_proxy }}
https_proxy=${{ inputs.https_proxy }}
BASE_IMAGE=${{ inputs.base_image || 'rockylinux:9' }}
USE_PYTHON_312=true
KAYOBE_USER_UID=1001
KAYOBE_USER_GID=1001
push: true
Expand Down
254 changes: 127 additions & 127 deletions .github/workflows/stackhpc-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,58 +8,58 @@ name: Pull request
'on':
pull_request:
jobs:
# # Detect which files have changed and use this to run jobs conditionally.
# # Note that we can't use the workflow-level paths attribute since this
# # would skip the workflow entirely, and would prevent us from making the
# # aio jobs required to pass (a skip counts as a pass).
# check-changes:
# runs-on: ubuntu-24.04
# permissions:
# pull-requests: read
# name: Check changed files
# if: github.repository == 'stackhpc/stackhpc-kayobe-config'
# outputs:
# aio: ${{ steps.changes.outputs.aio }}
# build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }}
# check-tags: ${{ steps.changes.outputs.check-tags }}
# steps:
# - name: GitHub Checkout
# uses: actions/checkout@v4

# - name: Check changed files
# uses: dorny/paths-filter@v3
# id: changes
# with:
# # Filters are defined in this file.
# filters: .github/path-filters.yml

# tox:
# runs-on: ubuntu-24.04
# permissions: {}
# strategy:
# matrix:
# include:
# - environment: pep8
# python-version: "3.10"
# - environment: releasenotes
# python-version: "3.10"
# - environment: docs
# python-version: "3.10"
# name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }}
# if: github.repository == 'stackhpc/stackhpc-kayobe-config'
# steps:
# - name: GitHub Checkout 🛎
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: Setup Python ${{ matrix.python-version }} 🐍
# uses: actions/setup-python@v5
# with:
# python-version: ${{ matrix.python-version }}
# - name: Install Tox 📦
# run: pip install tox
# - name: Run Tox ${{ matrix.environment }} 🧪
# run: tox -e ${{ matrix.environment }}
# Detect which files have changed and use this to run jobs conditionally.
# Note that we can't use the workflow-level paths attribute since this
# would skip the workflow entirely, and would prevent us from making the
# aio jobs required to pass (a skip counts as a pass).
check-changes:
runs-on: ubuntu-24.04
permissions:
pull-requests: read
name: Check changed files
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
outputs:
aio: ${{ steps.changes.outputs.aio }}
build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }}
check-tags: ${{ steps.changes.outputs.check-tags }}
steps:
- name: GitHub Checkout
uses: actions/checkout@v4

- name: Check changed files
uses: dorny/paths-filter@v3
id: changes
with:
# Filters are defined in this file.
filters: .github/path-filters.yml

tox:
runs-on: ubuntu-24.04
permissions: {}
strategy:
matrix:
include:
- environment: pep8
python-version: "3.12"
- environment: releasenotes
python-version: "3.12"
- environment: docs
python-version: "3.12"
name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }}
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
steps:
- name: GitHub Checkout 🛎
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python ${{ matrix.python-version }} 🐍
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Tox 📦
run: pip install tox
- name: Run Tox ${{ matrix.environment }} 🧪
run: tox -e ${{ matrix.environment }}

lint:
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -106,14 +106,14 @@ jobs:
# when the parent jobs completed successfully or were skipped. We pass an
# 'if' argument to the called workflow to allow running it conditionally.

# build-kayobe-image:
# name: Build Kayobe Image
# needs:
# - check-changes
# uses: ./.github/workflows/stackhpc-build-kayobe-image.yml
# with:
# if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }}
# if: github.repository == 'stackhpc/stackhpc-kayobe-config'
build-kayobe-image:
name: Build Kayobe Image
needs:
- check-changes
uses: ./.github/workflows/stackhpc-build-kayobe-image.yml
with:
if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }}
if: github.repository == 'stackhpc/stackhpc-kayobe-config'

# check-tags:
# name: Check container image tags
Expand All @@ -127,73 +127,73 @@ jobs:
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# all-in-one-ubuntu-noble-ovs:
# name: aio (Ubuntu Noble OVS)
# needs:
# - check-changes
# - build-kayobe-image
# uses: ./.github/workflows/stackhpc-all-in-one.yml
# with:
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
# os_distribution: ubuntu
# os_release: noble
# ssh_username: ubuntu
# neutron_plugin: ovs
# OS_CLOUD: openstack
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# all-in-one-ubuntu-noble-ovn:
# name: aio (Ubuntu Noble OVN)
# needs:
# - check-changes
# - build-kayobe-image
# uses: ./.github/workflows/stackhpc-all-in-one.yml
# with:
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
# os_distribution: ubuntu
# os_release: noble
# ssh_username: ubuntu
# neutron_plugin: ovn
# OS_CLOUD: openstack
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# all-in-one-rocky-9-ovs:
# name: aio (Rocky 9 OVS)
# needs:
# - check-changes
# - build-kayobe-image
# uses: ./.github/workflows/stackhpc-all-in-one.yml
# with:
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
# os_distribution: rocky
# os_release: "9"
# ssh_username: cloud-user
# neutron_plugin: ovs
# OS_CLOUD: openstack
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# all-in-one-rocky-9-ovn:
# name: aio (Rocky 9 OVN)
# needs:
# - check-changes
# - build-kayobe-image
# uses: ./.github/workflows/stackhpc-all-in-one.yml
# with:
# kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
# os_distribution: rocky
# os_release: "9"
# ssh_username: cloud-user
# neutron_plugin: ovn
# OS_CLOUD: openstack
# if: ${{ needs.check-changes.outputs.aio == 'true' }}
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
all-in-one-ubuntu-noble-ovs:
name: aio (Ubuntu Noble OVS)
needs:
- check-changes
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: ubuntu
os_release: noble
ssh_username: ubuntu
neutron_plugin: ovs
OS_CLOUD: openstack
if: ${{ needs.check-changes.outputs.aio == 'true' }}
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

all-in-one-ubuntu-noble-ovn:
name: aio (Ubuntu Noble OVN)
needs:
- check-changes
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: ubuntu
os_release: noble
ssh_username: ubuntu
neutron_plugin: ovn
OS_CLOUD: openstack
if: ${{ needs.check-changes.outputs.aio == 'true' }}
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

all-in-one-rocky-9-ovs:
name: aio (Rocky 9 OVS)
needs:
- check-changes
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
os_release: "9"
ssh_username: cloud-user
neutron_plugin: ovs
OS_CLOUD: openstack
if: ${{ needs.check-changes.outputs.aio == 'true' }}
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

all-in-one-rocky-9-ovn:
name: aio (Rocky 9 OVN)
needs:
- check-changes
- build-kayobe-image
uses: ./.github/workflows/stackhpc-all-in-one.yml
with:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
os_release: "9"
ssh_username: cloud-user
neutron_plugin: ovn
OS_CLOUD: openstack
if: ${{ needs.check-changes.outputs.aio == 'true' }}
secrets: inherit
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

# Test two upgrade scenarios: Ubuntu Noble OVS and Rocky 9 OVN.

Expand Down
2 changes: 1 addition & 1 deletion doc/source/operations/upgrading-openstack.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ to the ``stackhpc.linux.sriov`` role, which is not used by Kayobe. If a custom
playbook uses this role, you can retain existing behaviour by setting
``sriov_numvfs_driver`` to ``udev``.

Neutron driver defaults
Neutron driver defaults
-----------------------

The default Neutron ML2 type drivers and tenant network types now use
Expand Down
1 change: 0 additions & 1 deletion etc/kayobe/environments/ci-builder/stackhpc-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ kolla_docker_namespace: stackhpc-dev
# Kolla feature flag configuration.
kolla_enable_barbican: true
kolla_enable_blazar: true
kolla_enable_caso: true
kolla_enable_central_logging: true
kolla_enable_cinder: true
kolla_enable_cloudkitty: true
Expand Down
4 changes: 2 additions & 2 deletions etc/kayobe/kolla-image-tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
# TODO: Build real master images
kolla_image_tags:
openstack:
rocky-9: master-rocky-9-placeholder
ubuntu-noble: master-ubuntu-noble-placeholder
rocky-9: master-rocky-9-20250213T114650
ubuntu-noble: master-ubuntu-noble-20250213T091307
39 changes: 12 additions & 27 deletions etc/kayobe/kolla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,14 +121,6 @@ kolla_sources:
type: git
location: https://github.com/stackhpc/stackhpc-inspector-plugins.git
reference: 1.3.0
bifrost-base:
type: git
location: https://github.com/stackhpc/bifrost.git
reference: stackhpc/{{ openstack_release }}
cloudkitty-base:
type: git
location: https://github.com/stackhpc/cloudkitty.git
reference: stackhpc/{{ openstack_release }}
horizon-plugin-cloudkitty-dashboard:
type: git
location: https://github.com/stackhpc/cloudkitty-dashboard.git
Expand All @@ -148,20 +140,12 @@ kolla_sources:
reference: stackhpc/{{ openstack_release }}
neutron-server-plugin-networking-mlnx:
type: git
location: https://github.com/stackhpc/networking-mlnx
reference: stackhpc/{{ openstack_release }}
location: https://opendev.org/x/networking-mlnx
reference: master
nova-compute-plugin-networking-mlnx:
type: git
location: https://github.com/stackhpc/networking-mlnx
reference: stackhpc/{{ openstack_release }}
octavia-base:
type: git
location: https://github.com/stackhpc/octavia.git
reference: stackhpc/{{ openstack_release }}
blazar-base:
type: git
location: https://github.com/stackhpc/blazar
reference: stackhpc/master
location: https://opendev.org/x/networking-mlnx
reference: master

###############################################################################
# Kolla image build configuration.
Expand All @@ -183,12 +167,6 @@ stackhpc_rocky_9_additional_repos:
- url: "{{ stackhpc_repo_centos_stream_9_nfv_openvswitch_url }}"
file: "CentOS-NFV-OpenvSwitch.repo"
tag: "centos-nfv-openvswitch"
- url: "{{ stackhpc_repo_delorian_master_testing_url }}"
file: "DeLorean.repo"
tag: "delorean-master-testing"
- url: "{{ stackhpc_repo_delorian_master_build_deps_url }}"
file: "DeLorean.repo"
tag: "delorean-master-build-deps"
- url: "{{ stackhpc_repo_centos_stream_9_opstools_url }}"
file: "CentOS-OpsTools.repo"
tag: "centos-opstools"
Expand Down Expand Up @@ -371,9 +349,16 @@ kolla_build_customizations_common:
- python3-libvirt
- python3-ethtool
neutron_mlnx_agent_pip_packages_override:
- networking-mlnx@git+https://github.com/stackhpc/networking-mlnx@stackhpc/{{ openstack_release }}
- networking-mlnx@git+https://opendev.org/x/networking-mlnx@master

kolla_build_customizations_rocky:
base_centos_yum_repo_packages_append:
- centos-release-ceph-squid
base_centos_yum_repo_packages_remove:
- centos-release-ceph-reef
base_centos_yum_repos_to_disable_remove:
- centos-ceph-reef
- epel
kolla_toolbox_packages_remove:
- openvswitch
kolla_toolbox_packages_append:
Expand Down
4 changes: 2 additions & 2 deletions etc/kayobe/pulp-host-image-versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
# Overcloud host image versioning tags
# These images must be in SMS, since they are used by our AIO CI runners
# TODO: Build real master images
stackhpc_rocky_9_overcloud_host_image_version: "2024.1-20241209T151515"
stackhpc_ubuntu_noble_overcloud_host_image_version: "2024.1-20250116T133659"
stackhpc_rocky_9_overcloud_host_image_version: "master-20250213T092714"
stackhpc_ubuntu_noble_overcloud_host_image_version: "master-20250213T092714"
Loading
Loading