Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
383f02a
pin ansible-core 2.16, update cloudalchemy roles, remove selinux in r…
Nov 20, 2025
ea265e1
bump CI images
Nov 21, 2025
afa87ff
regenerate venv when python version changes
bertiethorpe Nov 21, 2025
755a1af
pip freeze at ansible-core 2.16
bertiethorpe Nov 24, 2025
c72f74c
Merge branch 'main' into upgrade/ansible-core-2.16
bertiethorpe Nov 24, 2025
2798417
Upgrade all CI to use ubuntu 24.04 runners
bertiethorpe Nov 24, 2025
9c15a95
fix compute-init rsync owner/group options
bertiethorpe Nov 25, 2025
52f8391
Bump CI images
bertiethorpe Nov 25, 2025
83087bb
Merge branch 'main' into upgrade/ansible-core-2.16
bertiethorpe Nov 25, 2025
791c639
bump workflow cleanup to ubuntu 24
bertiethorpe Nov 25, 2025
6582722
setup-env.sh linting fix
bertiethorpe Nov 25, 2025
2e80e5e
define python version var at workflow level for testing rebuild
bertiethorpe Nov 25, 2025
a9f29b1
test old release with python3.12 venv override
bertiethorpe Nov 25, 2025
a62b7a1
install python 3.10 for Ubuntu 22.04 runner in latest release CI test
bertiethorpe Nov 25, 2025
7a5535c
use github action setup-python to select python version
bertiethorpe Nov 26, 2025
77e9f18
Update versions for Prometheus and Grafana
bertiethorpe Dec 10, 2025
0e328d8
Update .github/workflows/stackhpc.yml
bertiethorpe Dec 10, 2025
a3f72cb
Merge branch 'main' into upgrade/ansible-core-2.16
bertiethorpe Dec 10, 2025
2c6b34d
Update cluster image versions in auto.tfvars.json
bertiethorpe Dec 10, 2025
51b93e3
Enable archive mode for file synchronization and remove set root task
bertiethorpe Dec 11, 2025
f36f582
Bump new CI images
bertiethorpe Dec 11, 2025
778db9c
Merge branch 'main' into upgrade/ansible-core-2.16
bertiethorpe Dec 11, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ permissions:
jobs:
doca:
name: extra-build
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false # allow other matrix jobs to continue even if one fails
matrix: # build RL8, RL9
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fatimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build.image_name }} # to branch/PR + OS
cancel-in-progress: true
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false # allow other matrix jobs to continue even if one fails
matrix: # build RL8, RL9
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ permissions:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
permissions:
contents: read
packages: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
files_changed:
name: Determine files changed
needs: lint
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
# Map a step output to a job output, this allows other jobs to be gated on the filter results
outputs:
# The 'stackhpc' output will be 'true' if either of the two stackhpc filters below matched
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- LEAFCLOUD
- SMS
- ARCUS
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
OS_CLOUD: openstack
CI_CLOUD: ${{ matrix.cloud }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nightlybuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build.image_name }} # to branch/PR + OS
cancel-in-progress: true
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false # allow other matrix jobs to continue even if one fails
matrix: # build RL8, RL9
Expand Down Expand Up @@ -131,7 +131,7 @@ jobs:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build.image_name }}-${{ matrix.target_cloud }}
cancel-in-progress: true
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ permissions:
jobs:
ci-image-release:
name: ci-image-release
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency: ${{ github.workflow }}-${{ github.ref }}
strategy:
fail-fast: false
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/s3-image-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ permissions:

jobs:
s3_cleanup:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency: ${{ github.workflow }}-${{ github.ref }}
strategy:
fail-fast: false
Expand All @@ -41,7 +41,7 @@ jobs:
s3cmd rm s3://${{ env.S3_BUCKET }} --recursive --force

image_upload:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: s3_cleanup
concurrency: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build }}
strategy:
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:

image_sync:
needs: image_upload
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.cloud }}-${{ matrix.build }}
strategy:
fail-fast: false
Expand Down
14 changes: 13 additions & 1 deletion .github/workflows/stackhpc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ permissions:
jobs:
openstack:
name: openstack-ci
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false # allow other matrix jobs to continue even if one fails
matrix:
Expand Down Expand Up @@ -75,8 +75,14 @@ jobs:
run: cat environments/.stackhpc/bastion_fingerprints >> ~/.ssh/known_hosts
shell: bash

- uses: actions/setup-python@v6
with:
python-version: '3.10' #TODO: bump to 3.12 once release cut including this PR

- name: Install ansible, pip and galaxy requirements
run: dev/setup-env.sh
env:
PYTHON_VERSION: python3 # overrides os-release discovery logic

- name: Install OpenTofu
uses: opentofu/[email protected]
Expand Down Expand Up @@ -146,8 +152,14 @@ jobs:
- name: Checkout current branch
run: git checkout ${{ github.head_ref || github.ref_name }}

- uses: actions/setup-python@v6
with:
python-version: '3.12'

- name: Update ansible, pip and galaxy requirements
run: dev/setup-env.sh
env:
PYTHON_VERSION: python3 # overrides os-release discovery logic

- name: Reimage login and control nodes to image in current branch
id: reimage_non_compute
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/trivyscan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:

jobs:
scan:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-check.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ permissions:

jobs:
check_for_update:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

steps:
- name: Checkout the config repo
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upload-release-image.yml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ permissions:

jobs:
image_upload:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
concurrency: ${{ github.ref }}
env:
OS_CLOUD: openstack
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/workflow-cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ permissions:
jobs:
ci_cluster_cleanup:
name: ci-cluster-cleanup
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
env:
OS_CLOUD: openstack
CI_CLOUD: ${{ github.event.inputs.ci_cloud }}
Expand Down
4 changes: 1 addition & 3 deletions ansible/roles/compute_init/tasks/install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,10 @@
ansible.posix.synchronize:
src: "{{ item.src }}"
dest: "/etc/ansible-init/playbooks/{{ item.dest }}"
archive: false
archive: true
rsync_opts:
- "-p"
- "--chmod=D770,F644"
- "--owner=root"
- "--group=root"
recursive: true
use_ssh_args: true
become: true
Expand Down
15 changes: 8 additions & 7 deletions dev/setup-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,22 @@ if [[ "$PYTHON_VERSION" == "" ]]; then

MAJOR_VERSION=$(echo "$OS_VERSION" | cut -d. -f1)

if [[ "$OS" == "ubuntu" && "$MAJOR_VERSION" == "22" ]]; then
PYTHON_VERSION="/usr/bin/python3.10"
if [[ "$OS" == "ubuntu" && "$MAJOR_VERSION" == "24" ]]; then
PYTHON_VERSION="/usr/bin/python3.12"
elif [[ "$OS" == "rocky" && "$MAJOR_VERSION" == "8" ]]; then
# python3.9+ doesn't have selinux bindings
PYTHON_VERSION="/usr/bin/python3.8" # use `sudo yum install python38` on Rocky Linux 8 to install this
PYTHON_VERSION="/usr/bin/python3.12" # use `sudo yum install python3.12` on Rocky Linux 8 to install this
elif [[ "$OS" == "rocky" && "$MAJOR_VERSION" == "9" ]]; then
PYTHON_VERSION="/usr/bin/python3.9"
PYTHON_VERSION="/usr/bin/python3.12"
else
echo "Unsupported OS version: $OS $MAJOR_VERSION"
exit 1
fi
fi

if [[ ! -d "venv" ]]; then
$PYTHON_VERSION -m venv venv
if [[ ! -x venv/bin/python ]] || \
[[ "$($PYTHON_VERSION -V 2>&1)" != "$(venv/bin/python -V 2>&1)" ]]; then
rm -rf venv
$PYTHON_VERSION -m venv venv
fi

# shellcheck disable=SC1091
Expand Down
4 changes: 2 additions & 2 deletions environments/.stackhpc/tofu/cluster_image.auto.tfvars.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"cluster_image": {
"RL8": "openhpc-RL8-251210-1021-42a63cab",
"RL9": "openhpc-RL9-251210-1020-42a63cab"
"RL8": "openhpc-RL8-251211-0951-51b93e3f",
"RL9": "openhpc-RL9-251211-0951-51b93e3f"
}
}
99 changes: 87 additions & 12 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,89 @@
ansible==6.7.0 # cloudalchemy.prometheus uses ansible.builtin.include, removed in ansible-core==2.16 => ansible==9
openstacksdk
python-openstackclient==8.0.0
python-manilaclient
python-ironicclient
jmespath
ansible-core==2.16.0
arrow==1.4.0
attrs==25.4.0
autopage==0.5.2
bcrypt==4.3.0
passlib[bcrypt]==1.7.4
cookiecutter
selinux # this is a shim to avoid having to use --system-site-packages, you still need sudo yum install libselinux-python3
netaddr
matplotlib
pulp-cli==0.23.2
beautifulsoup4==4.13.3
binaryornot==0.4.4
certifi==2025.11.12
cffi==2.0.0
chardet==5.2.0
charset-normalizer==3.4.4
click==8.3.1
cliff==4.12.0
cmd2==2.7.0
contourpy==1.3.3
cookiecutter==2.6.0
cryptography==46.0.3
cycler==0.12.1
debtcollector==3.0.0
decorator==5.2.1
dogpile.cache==1.5.0
fonttools==4.60.1
idna==3.11
iso8601==2.1.0
Jinja2==3.1.6
jmespath==1.0.1
jsonpatch==1.33
jsonpointer==3.0.0
jsonschema==4.25.1
jsonschema-specifications==2025.9.1
keystoneauth1==5.12.0
kiwisolver==1.4.9
markdown-it-py==4.0.0
MarkupSafe==3.0.3
matplotlib==3.10.7
mdurl==0.1.2
msgpack==1.1.2
netaddr==1.3.0
numpy==2.3.5
openstacksdk==4.8.0
os-service-types==1.8.2
osc-lib==4.2.0
oslo.config==10.1.0
oslo.context==6.2.0
oslo.i18n==6.7.1
oslo.log==7.2.1
oslo.serialization==5.8.0
oslo.utils==9.2.0
packaging==23.2
passlib==1.7.4
pbr==7.0.3
pillow==12.0.0
platformdirs==4.5.0
prettytable==3.17.0
psutil==7.1.3
pulp-cli==0.23.2
pulp-glue==0.23.2
pycparser==2.23
Pygments==2.19.2
pyparsing==3.2.5
pyperclip==1.11.0
python-cinderclient==9.8.0
python-dateutil==2.9.0.post0
python-ironicclient==5.14.0
python-keystoneclient==5.7.0
python-manilaclient==5.7.0
python-openstackclient==8.0.0
python-slugify==8.0.4
PyYAML==6.0.3
referencing==0.37.0
requests==2.31.0
requestsexceptions==1.4.0
resolvelib==1.0.1
rfc3986==2.0.0
rich==14.2.0
rich-argparse==1.7.2
rpds-py==0.29.0
schema==0.7.8
setuptools==80.9.0
six==1.17.0
soupsieve==2.8
stevedore==5.6.0
text-unidecode==1.3
toml==0.10.2
typing_extensions==4.15.0
tzdata==2025.2
urllib3==2.5.0
wcwidth==0.2.14
wrapt==2.0.1
6 changes: 3 additions & 3 deletions requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ roles:
- src: https://github.com/stackhpc/ansible-node-exporter.git
version: stackhpc
name: cloudalchemy.node_exporter
- src: https://github.com/cloudalchemy/ansible-prometheus.git
version: 4d2c8d742de39e50387e0aa6d5510b21c7451343 # need fix in preceeding commit for rocky
- src: https://github.com/stackhpc/ansible-prometheus.git
version: stackhpc-1.0.0
name: cloudalchemy.prometheus
- src: https://github.com/stackhpc/ansible-grafana.git
name: cloudalchemy.grafana
version: stackhpc-0.19.0 # fix grafana install
version: stackhpc-0.20.0
- src: https://github.com/OSC/ood-ansible.git
name: osc.ood
version: v4.0.1
Expand Down
Loading