Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0dc8f2d
support VMs as compute/controllers in multinode
Alex-Welsh Feb 28, 2023
67748f6
un-disable monitoring in the multinode environment
Alex-Welsh Feb 28, 2023
1597744
fix VM internet connectivity in multinode
Alex-Welsh Feb 28, 2023
e6a0577
make ci-multinode network MTUs dynamic
Alex-Welsh Mar 1, 2023
6e2f2dc
fix virtualenv ci failure
Alex-Welsh Mar 9, 2023
992e2fe
CI: Install python3-venv on Ubuntu in configure-aio-resources.yml
markgoddard Mar 13, 2023
531dfd1
Merge pull request #441 from stackhpc/wallaby-fix-ci
markgoddard Mar 15, 2023
24b31d9
Add new Ironic tags
MoteHue Mar 17, 2023
a87d5a6
Merge pull request #449 from stackhpc/xena-release-train-ironic-conta…
MoteHue Mar 17, 2023
c01f39e
Specify ironic_dnsmasq tag
MoteHue Mar 17, 2023
e3d9073
Merge pull request #451 from stackhpc/xena_specify_ironic_dnsmasq_tag
markgoddard Mar 20, 2023
05d5eae
Merge pull request #415 from stackhpc/multinode-various-fixes
Alex-Welsh Mar 20, 2023
cdc5a27
Add workaround for buggy etcdgw library (#446)
jovial Mar 20, 2023
4de4d6e
Merge remote-tracking branch 'origin/stackhpc/wallaby' into HEAD
jovial Mar 20, 2023
a2c3d1f
Update neutron tag
jovial Mar 21, 2023
320ba8b
Switch to using a specific version of CentOS Stream (#454)
jovial Mar 22, 2023
2b4279c
Merge remote-tracking branch 'origin/stackhpc/wallaby' into bugfix/xe…
jovial Mar 22, 2023
34e5a08
Merge stackhpc/xena into stackhpc/yoga
markgoddard Mar 22, 2023
ff86865
Revert "Add workaround for buggy etcdgw library (#446)"
markgoddard Mar 22, 2023
2f90e00
CI: Back to cloud-user for Rocky 9 images
markgoddard Mar 22, 2023
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/stackhpc-all-in-one.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ on:
vm_image:
description: Image for the all-in-one VM
type: string
default: CentOS-stream8
default: bb8c0a34-533f-42fb-a49b-3461e677f3f6
vm_interface:
description: Default network interface name
type: string
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/stackhpc-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ jobs:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
os_release: "9"
ssh_username: rocky
ssh_username: cloud-user
neutron_plugin: ovs
vm_image: Rocky9
vm_interface: ens3
Expand All @@ -159,7 +159,7 @@ jobs:
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }}
os_distribution: rocky
os_release: "9"
ssh_username: rocky
ssh_username: cloud-user
neutron_plugin: ovn
vm_image: Rocky9
vm_interface: ens3
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/ansible/configure-vxlan.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
- name: Configure VXLAN
hosts: controllers,compute,seed,storage
gather_facts: false
gather_facts: true
vars:
ansible_user: "{{ bootstrap_user }}"
# We can't assume that a virtualenv exists at this point, so use the system
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-aio/controllers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

# User with which to access the controllers via SSH during bootstrap, in order
# to setup the Kayobe user account. Default is {{ os_distribution }}.
controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-builder/seed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

# User with which to access the seed via SSH during bootstrap, in order
# to setup the Kayobe user account. Default is {{ os_distribution }}.
seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-multinode/compute.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
compute_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
compute_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
# List of storage volume groups. See mrlesmithjr.manage-lvm role for
# format.
compute_lvm_groups:
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-multinode/controllers.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
# List of storage volume groups. See mrlesmithjr.manage-lvm role for
# format.
controller_lvm_groups:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
###############################################################################
# Network interface definitions for the compute group.

admin_oc_interface: "eno1"
admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}"

internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
###############################################################################
# Network interface definitions for the controller group.

admin_oc_interface: "eno1"
admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}"

internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}"

Expand Down
9 changes: 0 additions & 9 deletions etc/kayobe/environments/ci-multinode/kolla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,3 @@ kolla_enable_cinder_backup: true
kolla_enable_neutron_provider_networks: true
kolla_enable_ovn: true
kolla_enable_octavia: true

# Override these from etc/kayobe/kolla.yml
# These are set to true within etc/kayobe/kolla.yml.
# Leaving them set to true would require additional
# configuration change.
kolla_enable_central_logging: false
kolla_enable_elasticsearch_curator: false
kolla_enable_grafana: false
kolla_enable_prometheus: false
3 changes: 3 additions & 0 deletions etc/kayobe/environments/ci-multinode/kolla/globals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ nova_backend_ceph: "yes"
neutron_bridge_name: "{{ vxlan_interfaces[0].device }}-ovs"
neutron_external_interface: "{{ vxlan_interfaces[0].device }}"

# Elasticsearch memory tuning
es_heap_size: 1g

# Octavia load balancer configuration
octavia_auto_configure: "no"
octavia_provider_drivers: "ovn:OVN provider"
Expand Down
12 changes: 6 additions & 6 deletions etc/kayobe/environments/ci-multinode/networks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ storage_mgmt_net_name: storage_mgmt

# Internal network
internal_cidr: 192.168.37.0/24
internal_mtu: 1450
internal_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
internal_allocation_pool_start: 192.168.37.3
internal_allocation_pool_end: 192.168.37.254
internal_vip_address: 192.168.37.2
Expand All @@ -88,36 +88,36 @@ external_vlan: 102

# Public network
public_cidr: 192.168.39.0/24
public_mtu: 1450
public_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
public_allocation_pool_start: 192.168.39.3
public_allocation_pool_end: 192.168.39.254
public_vip_address: 192.168.39.2
public_vlan: 103

# Tunnel network
tunnel_cidr: 192.168.40.0/24
tunnel_mtu: 1450
tunnel_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
tunnel_allocation_pool_start: 192.168.40.3
tunnel_allocation_pool_end: 192.168.40.254
tunnel_vlan: 104

# Storage network
storage_cidr: 192.168.41.0/24
storage_mtu: 1450
storage_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
storage_allocation_pool_start: 192.168.41.3
storage_allocation_pool_end: 192.168.41.254
storage_vlan: 105

# Storage management network
storage_mgmt_cidr: 192.168.42.0/24
storage_mgmt_mtu: 1450
storage_mgmt_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
storage_mgmt_allocation_pool_start: 192.168.42.3
storage_mgmt_allocation_pool_end: 192.168.42.254
storage_mgmt_vlan: 106

# Provision overcloud network
provision_oc_cidr: 192.168.33.0/24
provision_oc_mtu: 1450
provision_oc_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}"
provision_oc_allocation_pool_start: 192.168.33.128
provision_oc_allocation_pool_end: 192.168.33.254
provision_oc_vlan: 107
Expand Down
6 changes: 5 additions & 1 deletion etc/kayobe/environments/ci-multinode/seed.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
seed_lvm_groups:
- "{{ stackhpc_lvm_group_rootvg }}"

Expand All @@ -8,3 +8,7 @@ seed_lvm_groups:
seed_extra_network_interfaces:
- "external"
- "public"

# Enable IP routing and source NAT on the seed, allowing it to be used as the
# external subnet gateway and provide internet access for VMs in the deployment.
seed_enable_snat: true
2 changes: 1 addition & 1 deletion etc/kayobe/environments/ci-multinode/storage.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
storage_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}"
storage_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}"
# List of storage volume groups. See mrlesmithjr.manage-lvm role for
# format.
storage_lvm_groups:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
features:
- |
Set monitoring services be enabled by default in the ``ci-multinode``
environment.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
features:
- |
Adds support for using a VMs as compute and controller nodes in the
``ci-multinode`` environment by dynamically setting the MTU of the networks
in networks.yml and removing the static definition of the network
interfaces for the compute and controller groups.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
fixes:
- |
Fixes internet connectivity for VMs deployed in the ``ci-multinode``
environment.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
fixes:
- |
Adds Ironic images tags to fix a bug with online upgrades for
Bios/Traits. See patch:
https://review.opendev.org/c/openstack/ironic/+/877409
7 changes: 6 additions & 1 deletion terraform/aio/vm.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,14 @@ variable "aio_vm_subnet" {
type = string
}

locals {
image_is_uuid = length(regexall("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", var.aio_vm_image)) > 0
}

data "openstack_images_image_v2" "image" {
name = var.aio_vm_image
most_recent = true
count = local.image_is_uuid ? 0 : 1
}

data "openstack_networking_subnet_v2" "network" {
Expand All @@ -52,7 +57,7 @@ resource "openstack_compute_instance_v2" "kayobe-aio" {
}

block_device {
uuid = data.openstack_images_image_v2.image.id
uuid = local.image_is_uuid ? var.aio_vm_image: data.openstack_images_image_v2.image[0].id
source_type = "image"
volume_size = 100
boot_index = 0
Expand Down