Skip to content

Commit 0a78770

Browse files
authored
Merge branch 'stackhpc/2023.1' into use-package-repos-in-ci
2 parents 4535b39 + f945151 commit 0a78770

File tree

97 files changed

+2872
-145
lines changed

Some content is hidden

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

97 files changed

+2872
-145
lines changed

.automation.conf/config.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@
33

44
# See: https://github.com/stackhpc/docker-rally/blob/master/bin/rally-verify-wrapper.sh for a full list of tempest parameters that can be overriden.
55
# You can override tempest parameters like so:
6-
export TEMPEST_CONCURRENCY=2
6+
7+
# The Tempest concurrency determines how many tests can be running at once.
8+
# Higher values run tests faster but risk running out of resources and failing tests
9+
# On production systems, Tempest concurrency can usually be set to a high number e.g. 16-64. It is often limited by the number of available floating IPs.
10+
# On virtualised test environments, compute and networking speeds often limit the concurrency to 1-16 before tests begin to fail due to timeouts.
11+
export TEMPEST_CONCURRENCY=16
12+
13+
714
# Specify single test whilst experimenting
815
#export TEMPEST_PATTERN="${TEMPEST_PATTERN:-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name}"
916

@@ -21,9 +28,7 @@ if [ ! -z ${KAYOBE_ENVIRONMENT:+x} ]; then
2128
fi
2229

2330
if [[ "$KAYOBE_ENVIRONMENT" =~ "ci-multinode" ]]; then
24-
# SMSLab is currently running with 1G switches. This causes tests using volumes and images to fail if
25-
# the concurrency is set too high.
26-
export TEMPEST_CONCURRENCY=1
31+
export TEMPEST_CONCURRENCY=4
2732
# Uncomment this to perform a full tempest test
2833
# export KAYOBE_AUTOMATION_TEMPEST_LOADLIST=tempest-full
2934
# export KAYOBE_AUTOMATION_TEMPEST_SKIPLIST=ci-multinode-tempest-full
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/path-filters.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file is a list of path filters for the PR workflow in .github/workflows/stackhpc-pull-request.yml.
2-
aio:
2+
aio: &aio
33
- '.automation'
44
- '.automation.conf/config.sh'
55
- '.automation.conf/tempest/load-lists/default'
@@ -20,6 +20,11 @@ aio:
2020
- 'kayobe-env'
2121
- 'requirements.txt'
2222
- 'terraform/aio/**'
23-
check-tags:
23+
check-tags: &check-tags
2424
- '.github/workflows/stackhpc-check-tags.yml'
2525
- 'etc/kayobe/kolla-image-tags.yml'
26+
- 'etc/kayobe/pulp.yml'
27+
- 'tools/kolla-images.py'
28+
build-kayobe-image:
29+
- *aio
30+
- *check-tags

.github/workflows/multinode-inputs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ class Scenario:
3333
UBUNTU_JAMMY = OSRelease("ubuntu", "jammy", "ubuntu")
3434
# NOTE(upgrade): Add supported releases here.
3535
OPENSTACK_RELEASES = [
36-
OpenStackRelease("2023.1", "zed", [ROCKY_9, UBUNTU_JAMMY])
36+
OpenStackRelease("2024.1", "2023.1", [ROCKY_9, UBUNTU_JAMMY]),
37+
OpenStackRelease("2023.1", "zed", [ROCKY_9, UBUNTU_JAMMY]),
3738
]
3839
NEUTRON_PLUGINS = ["ovs", "ovn"]
3940

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

Lines changed: 8 additions & 1 deletion
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:
@@ -198,7 +205,7 @@ jobs:
198205
source venvs/kayobe/bin/activate &&
199206
source src/kayobe-config/kayobe-env --environment ci-builder &&
200207
kayobe seed host command run \
201-
--command "sudo dnf config-manager --set-enabled crb && sudo dnf -y install epel-release && sudo dnf -y install zstd debootstrap kpartx cloud-init" --show-output
208+
--command "sudo dnf config-manager --set-enabled crb && sudo dnf -y install epel-release && sudo dnf -y install cloud-init debootstrap git kpartx zstd" --show-output
202209
env:
203210
KAYOBE_VAULT_PASSWORD: ${{ secrets.KAYOBE_VAULT_PASSWORD }}
204211

.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: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ jobs:
8888
- name: Install Package
8989
uses: ConorMacBride/install-package@main
9090
with:
91-
apt: git unzip nodejs
91+
apt: git unzip nodejs openssh-client
9292

9393
# If testing upgrade, checkout previous release, otherwise checkout current branch
9494
- name: Checkout ${{ inputs.upgrade && 'previous release' || 'current' }} config
@@ -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,23 +214,14 @@ 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 }}"
226223
EOF
227224
228-
- name: Write Terraform network interface config
229-
run: |
230-
cat << EOF > etc/kayobe/environments/$KAYOBE_ENVIRONMENT/inventory/group_vars/controllers/tf-network-interfaces
231-
admin_interface: "{{ access_interface.value }}"
232-
EOF
233-
234225
- name: Write all-in-one scenario config
235226
run: |
236227
cat << EOF > etc/kayobe/environments/$KAYOBE_ENVIRONMENT/zz-aio-scenario.yml
@@ -398,7 +389,7 @@ jobs:
398389
-v $(pwd)/tempest-artifacts:/stack/tempest-artifacts \
399390
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
400391
$KAYOBE_IMAGE \
401-
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh -e ansible_user=stack -e rally_no_sensitive_log=false
392+
/stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh -e ansible_user=stack
402393
env:
403394
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY: ${{ steps.ssh_key.outputs.ssh_key }}
404395

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,25 @@ jobs:
9898
push: true
9999
tags: ${{ steps.meta.outputs.tags }}
100100
labels: ${{ steps.meta.outputs.labels }}
101+
102+
- name: Send message to Slack via Workflow Builder
103+
uses: slackapi/[email protected]
104+
with:
105+
payload: |
106+
{
107+
"channel-id": "${{ env.SLACK_CHANNEL_ID }}",
108+
"inputs": "${{ env.INPUTS }}",
109+
"message": "${{ env.MESSAGE }}",
110+
"results-url": "${{ env.RESULTS_URL }}",
111+
"workflow-url": "${{ env.WORKFLOW_URL }}"
112+
}
113+
env:
114+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
115+
# #release-train-alerts
116+
SLACK_CHANNEL_ID: C03B28HRP53
117+
INPUTS: >-
118+
branch: ${{ github.ref_name }}
119+
MESSAGE: "SKC Build Kayobe Image workflow failed :sob:"
120+
RESULTS_URL: "N/A"
121+
WORKFLOW_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
122+
if: failure() && github.event_name == 'push'

0 commit comments

Comments
 (0)