Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
2251c3c
Remove duplicate OpenStack word
priteau Dec 10, 2024
964f80a
Docs: Magnum templates are tied to Azimuth release
MoteHue Feb 19, 2025
381bd89
Update example images to new versions
MoteHue Feb 27, 2025
ce31ab9
Merge pull request #41 from stackhpc/remove-duplicate-openstack
jackhodgkiss Mar 23, 2025
c064fc4
Merge pull request #49 from stackhpc/update-examples
jackhodgkiss Mar 23, 2025
5c50653
Merge pull request #48 from stackhpc/document-templates-release-link
MoteHue Mar 24, 2025
f8c32fc
Magnum: default to OVN load balanacer provider
MoteHue May 19, 2025
ba5a81e
Merge pull request #52 from stackhpc/magnum-ovn-lb-by-default
MoteHue May 21, 2025
044fb62
Increase stackhpc.openstack to 0.5.2
MoteHue May 23, 2025
72daec2
Merge pull request #53 from stackhpc/collection-0.5.0
MoteHue Jun 4, 2025
8273a5d
CI: Run only in stackhpc repository
priteau Jun 5, 2025
fc01794
Fix helm chart release version download
Alex-Welsh Jun 17, 2025
e4b66d0
Merge pull request #54 from stackhpc/ci-pull-request
jackhodgkiss Jun 17, 2025
72c105c
Merge pull request #55 from stackhpc/fix-versioning
jackhodgkiss Jun 17, 2025
378ea30
Define Glance image architecture property
cityofships Sep 26, 2025
dce5637
Merge pull request #59 from stackhpc/arch
cityofships Sep 26, 2025
444e1d8
Update deprecated std_callback option
seunghun1ee Nov 28, 2025
6cfaf30
Merge pull request #60 from stackhpc/update-deprecated-std-callback
seunghun1ee Dec 1, 2025
014d7af
Merge remote-tracking branch 'generic/main' into generic-sync
seunghun1ee Dec 2, 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
1 change: 1 addition & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ name: Pull request
pull_request:
jobs:
lint:
if: github.repository == 'stackhpc/openstack-config'
runs-on: ubuntu-22.04
permissions: {}
strategy:
Expand Down
15 changes: 12 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,17 @@ variables in `etc/openstack-config.yml`
magnum_default_worker_flavor_name:
# External network to use for load balancers etc.
magnum_external_net_name:
# Octavia provider (e.g. 'ovn')
magnum_loadbalancer_provider:
# Optional list of extra labels to add to all generated cluster templates
magnum_template_extra_labels:

then run the provided playbook with
The load balancer provider defaults to OVN. This can be changed to Amphora, but you
should only do this if OVN load balancers are unavailable.

.. code-block:: yaml

magnum_loadbalancer_provider: amphora

Then run the provided playbook with

.. code-block:: bash

Expand All @@ -112,3 +117,7 @@ be sure to run the ``openstack-images.yml`` playbook *before* running the
``openstack-container-clusters.yml`` playbook, otherwise the Magnum API will return
an error referencing an invalid cluster type with image ``None``. This is handled
automatically if running the full ``openstack.yml`` playbook.

Note that these templates are a tested set against the specific CAPI management
cluster release. As such, you should make sure to update your CAPI management
cluster to the latest release before updating to the latest templates.
2 changes: 1 addition & 1 deletion ansible.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[defaults]
bin_ansible_callbacks = True
callbacks_enabled = ansible.posix.profile_tasks
stdout_callback = yaml
callback_result_format = yaml
5 changes: 4 additions & 1 deletion ansible/generate-magnum-capi-templates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
- name: Fetch dependencies.json for capi-helm-charts release
ansible.builtin.uri:
url: https://raw.githubusercontent.com/azimuth-cloud/capi-helm-charts/{{ capi_helm_chart_release_data.json.tag_name }}/dependencies.json
return_content: true
register: dependencies_response

- name: Ensure wget packages is installed
Expand All @@ -29,12 +30,14 @@
state: present

- name: Fetch manifest.json for capi-helm-charts images # noqa command-instead-of-module
vars:
dependencies: "{{ dependencies_response.content }}"
# ansible.builtin.uri:
# url: https://raw.githubusercontent.com/azimuth-cloud/azimuth-images/{{ dependencies_response.json['azimuth-images'] }}/manifest.json
# Above URL returns 404 even though similar URL for capi-helm-charts repo works fine
# Not sure why but fall back to wget + JSON parsing for now.
ansible.builtin.command: >-
wget -O - https://github.com/azimuth-cloud/azimuth-images/releases/download/{{ dependencies_response.json['azimuth-images'] }}/manifest.json
wget -O - https://github.com/azimuth-cloud/azimuth-images/releases/download/{{ dependencies['azimuth-images'] }}/manifest.json
register: manifest_response
changed_when: false

Expand Down
2 changes: 1 addition & 1 deletion ansible/openstack-flavors.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
- name: Ensure OpenStack OpenStack nova flavors exist
- name: Ensure OpenStack nova flavors exist
hosts: localhost
tags:
- flavors
Expand Down
2 changes: 1 addition & 1 deletion ansible/openstack-host-aggregates.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
- name: Ensure OpenStack OpenStack nova host aggregates exist
- name: Ensure OpenStack nova host aggregates exist
hosts: localhost
tags:
- host_aggregates
Expand Down
2 changes: 1 addition & 1 deletion ansible/openstack-networks.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
- name: Ensure OpenStack OpenStack networks exist
- name: Ensure OpenStack networks exist
hosts: localhost
tags:
- networks
Expand Down
2 changes: 1 addition & 1 deletion ansible/openstack-project.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
- name: Ensure OpenStack OpenStack projects exist
- name: Ensure OpenStack projects exist
hosts: localhost
tags:
- project
Expand Down
1 change: 1 addition & 0 deletions ansible/templates/magnum-capi-images.j2
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@
os_distro: "ubuntu"
os_version: "22.04"
kube_version: "{{ item.value.kubernetes_version }}"
hw_architecture: "x86_64"

{% endfor %}
2 changes: 1 addition & 1 deletion ansible/templates/magnum-capi-templates.j2
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
kube_dashboard_enabled: "true"
keystone_auth_enabled: "false"
capi_helm_chart_version: "{{ capi_helm_chart_release_data.json.tag_name }}"
octavia_provider: {{ magnum_loadbalancer_provider }}
octavia_provider: {{ magnum_loadbalancer_provider | default('ovn') }}
{% if magnum_template_extra_labels is defined and magnum_template_extra_labels is not none %}
{{ magnum_template_extra_labels | to_nice_yaml | indent(4) -}}
{% endif %}
Expand Down
28 changes: 16 additions & 12 deletions examples/images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ os_images_force_rebuild: false
openstack_images:
- "{{ openstack_image_centos_stream8 }}"
- "{{ openstack_image_cirros_0_6_0 }}"
- "{{ openstack_image_rocky8 }}"
- "{{ openstack_image_ubuntu_focal }}"
- "{{ openstack_image_rocky9 }}"
- "{{ openstack_image_ubuntu_jammy }}"

# Common GRUB settings for VM images
openstack_grub_env_common:
Expand Down Expand Up @@ -53,6 +53,7 @@ openstack_image_centos_stream8:
os_distro: "centos"
os_version: "8-stream"
hw_rng_model: "virtio"
hw_architecture: "x86_64"

# Cirros 0.6.0
openstack_image_cirros_0_6_0:
Expand All @@ -66,10 +67,11 @@ openstack_image_cirros_0_6_0:
os_distro: "cirros"
os_version: "0.6.0"
hw_rng_model: "virtio"
hw_architecture: "x86_64"

# Rocky Linux 8.
openstack_image_rocky8:
name: "Rocky8"
# Rocky Linux 9.
openstack_image_rocky9:
name: "Rocky9"
type: raw
elements:
# Required for UEFI mode:
Expand All @@ -95,16 +97,17 @@ openstack_image_rocky8:
YUM: dnf
DIB_CONTAINERFILE_RUNTIME: docker
DIB_CONTAINERFILE_RUNTIME_ROOT: 1
DIB_RELEASE: "8"
DIB_RELEASE: "9"
properties:
os_type: "linux"
os_distro: "rocky"
os_version: "8"
os_version: "9"
hw_rng_model: "virtio"
hw_architecture: "x86_64"

# Ubuntu Focal 20.04.
openstack_image_ubuntu_focal:
name: "Ubuntu-20.04"
# Ubuntu Jammy 22.04.
openstack_image_ubuntu_jammy:
name: "Ubuntu-22.04"
type: raw
is_public: true
elements:
Expand All @@ -124,8 +127,9 @@ openstack_image_ubuntu_focal:
properties:
os_type: "linux"
os_distro: "ubuntu"
os_version: "focal"
os_version: "jammy"
hw_rng_model: "virtio"
hw_architecture: "x86_64"
env:
DIB_RELEASE: "focal"
DIB_RELEASE: "jammy"
DIB_CLOUD_INIT_DATASOURCES: "ConfigDrive"