Skip to content

Commit 88c39b8

Browse files
authored
Merge pull request #741 from stackhpc/zed-yoga-merge
zed: yoga merge
2 parents 3f3ab99 + f009c7a commit 88c39b8

File tree

10 files changed

+108
-11
lines changed

10 files changed

+108
-11
lines changed

.github/path-filters.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# This file is a list of path filters for the PR workflow in .github/workflows/stackhpc-pull-request.yml.
2+
aio:
3+
- '.automation'
4+
- '.automation.conf/config.sh'
5+
- '.automation.conf/tempest/load-lists/default'
6+
- '.automation.conf/tempest/load-lists/platform.2022.11-test-list.txt'
7+
- '.automation.conf/tempest/load-lists/refstack-2019.11-test-list.txt'
8+
- '.automation.conf/tempest/tempest-ci-aio.overrides.conf'
9+
- '.github/workflows/stackhpc-all-in-one.yml'
10+
- '.github/workflows/stackhpc-build-kayobe-image.yml'
11+
- '.github/workflows/stackhpc-pull-request.yml'
12+
- 'etc/kayobe/*.yml'
13+
- 'etc/kayobe/ansible/configure-aio-resources.yml'
14+
- 'etc/kayobe/ansible/growroot.yml'
15+
- 'etc/kayobe/ansible/requirements.yml'
16+
- 'etc/kayobe/ansible/scripts/aio-init.sh'
17+
- 'etc/kayobe/environments/ci-aio/**'
18+
- 'etc/kayobe/inventory/**'
19+
- 'etc/kayobe/kolla/**'
20+
- 'kayobe-env'
21+
- 'requirements.txt'
22+
- 'terraform/aio/**'

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ on:
5151
description: Name of cloud in clouds.yaml
5252
type: string
5353
required: true
54+
if:
55+
description: Whether to run the workflow (workaround for required status checks issue)
56+
type: boolean
57+
default: true
5458
secrets:
5559
KAYOBE_VAULT_PASSWORD:
5660
required: true
@@ -65,6 +69,7 @@ jobs:
6569
# NOTE: Runner needs unzip and nodejs packages.
6670
all-in-one:
6771
name: All in one
72+
if: inputs.if
6873
runs-on: [self-hosted, stackhpc-kayobe-config-aio]
6974
permissions: {}
7075
env:

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ on:
2020
type: string
2121
required: false
2222
default: "rockylinux:9"
23+
if:
24+
description: Whether to run the workflow (workaround for required status checks issue)
25+
type: boolean
26+
default: true
2327
outputs:
2428
kayobe_image:
2529
description: Reference of Kayobe image that was built
@@ -32,6 +36,7 @@ env:
3236
jobs:
3337
build-kayobe-image:
3438
name: Build kayobe image
39+
if: inputs.if
3540
runs-on: ubuntu-20.04
3641
permissions:
3742
contents: read

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

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,29 @@ name: Pull request
88
'on':
99
pull_request:
1010
jobs:
11+
# Detect which files have changed and use this to run jobs conditionally.
12+
# Note that we can't use the workflow-level paths attribute since this
13+
# would skip the workflow entirely, and would prevent us from making the
14+
# aio jobs required to pass (a skip counts as a pass).
15+
check-changes:
16+
runs-on: ubuntu-20.04
17+
permissions:
18+
pull-requests: read
19+
name: Check changed files
20+
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
21+
outputs:
22+
aio: ${{ steps.changes.outputs.aio }}
23+
steps:
24+
- name: GitHub Checkout
25+
uses: actions/checkout@v3
26+
27+
- name: Check changed files
28+
uses: dorny/paths-filter@v2
29+
id: changes
30+
with:
31+
# Filters are defined in this file.
32+
filters: .github/path-filters.yml
33+
1134
tox:
1235
runs-on: ubuntu-22.04
1336
permissions: {}
@@ -36,14 +59,27 @@ jobs:
3659
- name: Run Tox ${{ matrix.environment }} 🧪
3760
run: tox -e ${{ matrix.environment }}
3861

62+
# A skipped job is treated as success when used as a required status check.
63+
# The registered required status checks refer to the name of the job in the
64+
# called reusable workflow rather than the jobs in this file. The following
65+
# jobs need to run unconditionally to allow GitHub required status checks to
66+
# pass even when there are changed files. The `! failure()` condition runs
67+
# when the parent jobs completed successfully or were skipped. We pass an
68+
# 'if' argument to the called workflow to allow running it conditionally.
69+
3970
build-kayobe-image:
4071
name: Build Kayobe Image
72+
needs:
73+
- check-changes
4174
uses: ./.github/workflows/stackhpc-build-kayobe-image.yml
75+
with:
76+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
4277
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
4378

4479
all-in-one-ubuntu-jammy-ovs:
4580
name: aio (Ubuntu Jammy OVS)
4681
needs:
82+
- check-changes
4783
- build-kayobe-image
4884
uses: ./.github/workflows/stackhpc-all-in-one.yml
4985
with:
@@ -53,12 +89,14 @@ jobs:
5389
ssh_username: ubuntu
5490
neutron_plugin: ovs
5591
OS_CLOUD: sms-lab-release
92+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
5693
secrets: inherit
57-
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
94+
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
5895

5996
all-in-one-ubuntu-jammy-ovn:
6097
name: aio (Ubuntu Jammy OVN)
6198
needs:
99+
- check-changes
62100
- build-kayobe-image
63101
uses: ./.github/workflows/stackhpc-all-in-one.yml
64102
with:
@@ -68,12 +106,14 @@ jobs:
68106
ssh_username: ubuntu
69107
neutron_plugin: ovn
70108
OS_CLOUD: sms-lab-release
109+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
71110
secrets: inherit
72-
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
111+
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
73112

74113
all-in-one-rocky-9-ovs:
75114
name: aio (Rocky 9 OVS)
76115
needs:
116+
- check-changes
77117
- build-kayobe-image
78118
uses: ./.github/workflows/stackhpc-all-in-one.yml
79119
with:
@@ -83,12 +123,14 @@ jobs:
83123
ssh_username: cloud-user
84124
neutron_plugin: ovs
85125
OS_CLOUD: sms-lab-release
126+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
86127
secrets: inherit
87-
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
128+
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
88129

89130
all-in-one-rocky-9-ovn:
90131
name: aio (Rocky 9 OVN)
91132
needs:
133+
- check-changes
92134
- build-kayobe-image
93135
uses: ./.github/workflows/stackhpc-all-in-one.yml
94136
with:
@@ -98,5 +140,6 @@ jobs:
98140
ssh_username: cloud-user
99141
neutron_plugin: ovn
100142
OS_CLOUD: sms-lab-release
143+
if: ${{ needs.check-changes.outputs.aio == 'true' }}
101144
secrets: inherit
102-
if: github.repository == 'stackhpc/stackhpc-kayobe-config'
145+
if: ${{ ! failure() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}

etc/kayobe/ansible/purge-command-not-found.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@
3030
become: true
3131
failed_when: false
3232
ignore_unreachable: true
33-
when: ansible_facts.os_family == "Debian"
33+
when: os_distribution == "ubuntu"

etc/kayobe/apt.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,18 @@ stackhpc_apt_repositories:
6262
signed_by: docker.asc
6363
architecture: amd64
6464

65-
apt_repositories: "{{ stackhpc_apt_repositories }}"
65+
# Do not replace apt configuration for non-overcloud hosts. This can result in
66+
# errors if apt reconfiguration is performed before local repository mirrors
67+
# are deployed.
68+
apt_repositories: "{{ stackhpc_apt_repositories if 'overcloud' in group_names else [] }}"
6669

6770
# Whether to disable repositories in /etc/apt/sources.list. This may be used
6871
# when replacing the distribution repositories via apt_repositories.
6972
# Default is false.
70-
apt_disable_sources_list: true
73+
# Do not disable the default apt configuration for non-overcloud hosts. This
74+
# can result in errors if apt reconfiguration is performed before local
75+
# repository mirrors are deployed.
76+
apt_disable_sources_list: "{{ 'overcloud' in group_names }}"
7177

7278
###############################################################################
7379
# Dummy variable to allow Ansible to accept this file.

etc/kayobe/environments/aufn-ceph/kolla/inventory/overcloud-services.j2

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -480,9 +480,6 @@ storage
480480
[prometheus-alertmanager:children]
481481
monitoring
482482

483-
[prometheus-msteams:children]
484-
monitoring
485-
486483
[prometheus-openstack-exporter:children]
487484
monitoring
488485

@@ -531,3 +528,9 @@ ovn-database
531528

532529
[ovn-sb-db:children]
533530
ovn-database
531+
532+
[venus-api:children]
533+
venus
534+
535+
[venus-manager:children]
536+
venus

etc/kayobe/kolla/globals.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# To work around issue of trying to install docker from
55
# empty pulp server, use upstream docker dnf repo on
66
# non-overcloud hosts
7-
enable_docker_repo: "{% raw %}{{ 'overcloud' not in group_names or ansible_facts.os_family == 'Debian' }}{% endraw %}"
7+
enable_docker_repo: "{% raw %}{{ 'overcloud' not in group_names }}{% endraw %}"
88

99
# kolla_base_distro must be set here to be resolvable on a per-host basis
1010
# This is necessary for os migrations where mixed clouds might be deployed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
fixes:
3+
- |
4+
Rebuild and bump the Bifrost container for Xena to include fix for
5+
`Error while running update_to_latest_versions: ''BIOSSetting''
6+
object has no attribute` during `Ironic database migrations on upgrade`
7+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
fixes:
3+
- |
4+
Disabled custom APT configuration for non-overcloud hosts (Ubuntu Only).
5+
This resolves the issue of the seed hypervisor attempting to pull packages
6+
from the repository on the seed before it has been deployed.

0 commit comments

Comments
 (0)