Updates for caracal testing support

These updates, on the master branch, are to support testing the caracal
packages and support of the charms for caracal.  They do NOT lock the charms
down, and don't change the testing branches to stable branches.

Change-Id: I0a38c624cc501b22c19ec69f4e50d6fbf5f3a24b
This commit is contained in:
Alex Kavanagh 2024-02-09 18:15:47 +00:00
parent fba26a326c
commit f25fe722f8
20 changed files with 170 additions and 744 deletions

View File

@ -29,9 +29,3 @@ bases:
- name: ubuntu - name: ubuntu
channel: "22.04" channel: "22.04"
architectures: [amd64, s390x, ppc64el, arm64] architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu
channel: "23.04"
architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu
channel: "23.10"
architectures: [amd64, s390x, ppc64el, arm64]

View File

@ -414,18 +414,27 @@ def get_requests_for_local_unit(relation_name=None):
is_legacy_request = set(sent).intersection(legacy_keys) is_legacy_request = set(sent).intersection(legacy_keys)
for unit in related_units(rid): for unit in related_units(rid):
data = relation_get(rid=rid, unit=unit) data = relation_get(rid=rid, unit=unit)
if data.get(raw_certs_key): # Note: Bug#2028683 - data may not be available if the certificates
bundles.append({ # relation hasn't been populated by the providing charm. If no 'ca'
'ca': data['ca'], # in the data then don't attempt the bundle at all.
'chain': data.get('chain'), if data.get('ca'):
'certs': json.loads(data[raw_certs_key])}) if data.get(raw_certs_key):
elif is_legacy_request: bundles.append({
bundles.append({ 'ca': data['ca'],
'ca': data['ca'], 'chain': data.get('chain'),
'chain': data.get('chain'), 'certs': json.loads(data[raw_certs_key])
'certs': {sent['common_name']: })
{'cert': data.get(local_name + '.server.cert'), elif is_legacy_request:
'key': data.get(local_name + '.server.key')}}}) bundles.append({
'ca': data['ca'],
'chain': data.get('chain'),
'certs': {
sent['common_name']: {
'cert': data.get(local_name + '.server.cert'),
'key': data.get(local_name + '.server.key')
}
}
})
return bundles return bundles

View File

@ -545,7 +545,7 @@ class IdentityServiceContext(OSContextGenerator):
'internal_auth_url': internal_auth_url, 'internal_auth_url': internal_auth_url,
}) })
# we keep all veriables in ctxt for compatibility and # we keep all variables in ctxt for compatibility and
# add nested dictionary for keystone_authtoken generic # add nested dictionary for keystone_authtoken generic
# templating # templating
if keystonemiddleware_os_release: if keystonemiddleware_os_release:
@ -557,6 +557,7 @@ class IdentityServiceContext(OSContextGenerator):
# NOTE(jamespage) this is required for >= icehouse # NOTE(jamespage) this is required for >= icehouse
# so a missing value just indicates keystone needs # so a missing value just indicates keystone needs
# upgrading # upgrading
ctxt['admin_user_id'] = _resolve('service_user_id')
ctxt['admin_tenant_id'] = _resolve('service_tenant_id') ctxt['admin_tenant_id'] = _resolve('service_tenant_id')
ctxt['admin_domain_id'] = _resolve('service_domain_id') ctxt['admin_domain_id'] = _resolve('service_domain_id')
return ctxt return ctxt
@ -1748,9 +1749,9 @@ class WSGIWorkerConfigContext(WorkerConfigContext):
def __call__(self): def __call__(self):
total_processes = _calculate_workers() total_processes = _calculate_workers()
enable_wsgi_rotation = config('wsgi-rotation') enable_wsgi_socket_rotation = config('wsgi-socket-rotation')
if enable_wsgi_rotation is None: if enable_wsgi_socket_rotation is None:
enable_wsgi_rotation = True enable_wsgi_socket_rotation = True
ctxt = { ctxt = {
"service_name": self.service_name, "service_name": self.service_name,
"user": self.user, "user": self.user,
@ -1764,7 +1765,7 @@ class WSGIWorkerConfigContext(WorkerConfigContext):
"public_processes": int(math.ceil(self.public_process_weight * "public_processes": int(math.ceil(self.public_process_weight *
total_processes)), total_processes)),
"threads": 1, "threads": 1,
"wsgi_rotation": enable_wsgi_rotation, "wsgi_socket_rotation": enable_wsgi_socket_rotation,
} }
return ctxt return ctxt

View File

@ -12,7 +12,7 @@ Listen {{ admin_port }}
Listen {{ public_port }} Listen {{ public_port }}
{% endif -%} {% endif -%}
{% if wsgi_rotation -%} {% if wsgi_socket_rotation -%}
WSGISocketRotation On WSGISocketRotation On
{% else -%} {% else -%}
WSGISocketRotation Off WSGISocketRotation Off

View File

@ -12,7 +12,7 @@ Listen {{ admin_port }}
Listen {{ public_port }} Listen {{ public_port }}
{% endif -%} {% endif -%}
{% if wsgi_rotation -%} {% if wsgi_socket_rotation -%}
WSGISocketRotation On WSGISocketRotation On
{% else -%} {% else -%}
WSGISocketRotation Off WSGISocketRotation Off

View File

@ -161,6 +161,7 @@ OPENSTACK_CODENAMES = OrderedDict([
('2022.2', 'zed'), ('2022.2', 'zed'),
('2023.1', 'antelope'), ('2023.1', 'antelope'),
('2023.2', 'bobcat'), ('2023.2', 'bobcat'),
('2024.1', 'caracal'),
]) ])
# The ugly duckling - must list releases oldest to newest # The ugly duckling - must list releases oldest to newest
@ -416,17 +417,6 @@ def get_os_version_codename(codename, version_map=OPENSTACK_CODENAMES,
error_out(e) error_out(e)
def get_os_version_codename_swift(codename):
'''Determine OpenStack version number of swift from codename.'''
# for k, v in six.iteritems(SWIFT_CODENAMES):
for k, v in SWIFT_CODENAMES.items():
if k == codename:
return v[-1]
e = 'Could not derive swift version for '\
'codename: %s' % codename
error_out(e)
def get_swift_codename(version): def get_swift_codename(version):
'''Determine OpenStack codename that corresponds to swift version.''' '''Determine OpenStack codename that corresponds to swift version.'''
codenames = [k for k, v in SWIFT_CODENAMES.items() if version in v] codenames = [k for k, v in SWIFT_CODENAMES.items() if version in v]
@ -585,7 +575,6 @@ def get_installed_os_version():
return openstack_release().get('OPENSTACK_CODENAME') return openstack_release().get('OPENSTACK_CODENAME')
@cached
def openstack_release(): def openstack_release():
"""Return /etc/os-release in a dict.""" """Return /etc/os-release in a dict."""
d = {} d = {}
@ -847,14 +836,10 @@ def openstack_upgrade_available(package):
if not cur_vers: if not cur_vers:
# The package has not been installed yet do not attempt upgrade # The package has not been installed yet do not attempt upgrade
return False return False
if "swift" in package: try:
codename = get_os_codename_install_source(src) avail_vers = get_os_version_install_source(src)
avail_vers = get_os_version_codename_swift(codename) except Exception:
else: avail_vers = cur_vers
try:
avail_vers = get_os_version_install_source(src)
except Exception:
avail_vers = cur_vers
apt.init() apt.init()
return apt.version_compare(avail_vers, cur_vers) >= 1 return apt.version_compare(avail_vers, cur_vers) >= 1

View File

@ -158,15 +158,19 @@ def get_osd_settings(relation_name):
return _order_dict_by_key(osd_settings) return _order_dict_by_key(osd_settings)
def send_application_name(relid=None): def send_application_name(relid=None, app_name=None):
"""Send the application name down the relation. """Send the application name down the relation.
:param relid: Relation id to set application name in. :param relid: Relation id to set application name in.
:type relid: str :type relid: str
:param app_name: Application name to send in the relation.
:type app_name: str
""" """
if app_name is None:
app_name = application_name()
relation_set( relation_set(
relation_id=relid, relation_id=relid,
relation_settings={'application-name': application_name()}) relation_settings={'application-name': app_name})
def send_osd_settings(): def send_osd_settings():

View File

@ -151,6 +151,7 @@ import contextlib
import datetime import datetime
import itertools import itertools
import json import json
import logging
import os import os
import pprint import pprint
import sqlite3 import sqlite3
@ -521,6 +522,42 @@ _KV = None
def kv(): def kv():
global _KV global _KV
# If we are running unit tests, it is useful to go into memory-backed KV store to
# avoid concurrency issues when running multiple tests. This is not a
# problem when juju is running normally.
env_var = os.environ.get("CHARM_HELPERS_TESTMODE", "auto").lower()
if env_var not in ["auto", "no", "yes"]:
logging.warning("Unknown value for CHARM_HELPERS_TESTMODE '%s'"
", assuming 'no'", env_var)
env_var = "no"
if env_var == "no":
in_memory_db = False
elif env_var == "yes":
in_memory_db = True
elif env_var == "auto":
# If UNIT_STATE_DB is set, respect this request
if "UNIT_STATE_DB" in os.environ:
in_memory_db = False
# Autodetect normal juju execution by looking for juju variables
elif "JUJU_CHARM_DIR" in os.environ or "JUJU_UNIT_NAME" in os.environ:
in_memory_db = False
else:
# We are probably running in unit test mode
logging.warning("Auto-detected unit test environment for KV store.")
in_memory_db = True
else:
# Help the linter realise that in_memory_db is always set
raise Exception("Cannot reach this line")
if _KV is None: if _KV is None:
_KV = Storage() if in_memory_db:
_KV = Storage(":memory:")
else:
_KV = Storage()
else:
if in_memory_db and _KV.db_path != ":memory:":
logging.warning("Running with in_memory_db and KV is not set to :memory:")
return _KV return _KV

View File

@ -52,7 +52,7 @@ def _snap_exec(commands):
:param commands: List commands :param commands: List commands
:return: Integer exit code :return: Integer exit code
""" """
assert type(commands) == list assert isinstance(commands, list)
retry_count = 0 retry_count = 0
return_code = None return_code = None

View File

@ -246,6 +246,14 @@ CLOUD_ARCHIVE_POCKETS = {
'bobcat/proposed': 'jammy-proposed/bobcat', 'bobcat/proposed': 'jammy-proposed/bobcat',
'jammy-bobcat/proposed': 'jammy-proposed/bobcat', 'jammy-bobcat/proposed': 'jammy-proposed/bobcat',
'jammy-proposed/bobcat': 'jammy-proposed/bobcat', 'jammy-proposed/bobcat': 'jammy-proposed/bobcat',
# caracal
'caracal': 'jammy-updates/caracal',
'jammy-caracal': 'jammy-updates/caracal',
'jammy-caracal/updates': 'jammy-updates/caracal',
'jammy-updates/caracal': 'jammy-updates/caracal',
'caracal/proposed': 'jammy-proposed/caracal',
'jammy-caracal/proposed': 'jammy-proposed/caracal',
'jammy-proposed/caracal': 'jammy-proposed/caracal',
# OVN # OVN
'focal-ovn-22.03': 'focal-updates/ovn-22.03', 'focal-ovn-22.03': 'focal-updates/ovn-22.03',
@ -279,6 +287,7 @@ OPENSTACK_RELEASES = (
'zed', 'zed',
'antelope', 'antelope',
'bobcat', 'bobcat',
'caracal',
) )
@ -308,6 +317,7 @@ UBUNTU_OPENSTACK_RELEASE = OrderedDict([
('kinetic', 'zed'), ('kinetic', 'zed'),
('lunar', 'antelope'), ('lunar', 'antelope'),
('mantic', 'bobcat'), ('mantic', 'bobcat'),
('noble', 'caracal'),
]) ])

View File

@ -7,14 +7,12 @@ description: |
This charm provides a Ceph storage backend for Cinder This charm provides a Ceph storage backend for Cinder
docs: https://discourse.charmhub.io/t/cinder-ceph-docs-index/10999 docs: https://discourse.charmhub.io/t/cinder-ceph-docs-index/10999
tags: tags:
- openstack - openstack
- storage - storage
- file-servers - file-servers
- misc - misc
series: series:
- jammy - jammy
- lunar
- mantic
subordinate: true subordinate: true
provides: provides:
storage-backend: storage-backend:

View File

@ -75,7 +75,7 @@ applications:
- '18' - '18'
- '19' - '19'
- '20' - '20'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -87,7 +87,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -105,7 +105,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -115,7 +115,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -128,7 +128,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -137,7 +137,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -147,7 +147,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -156,11 +156,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -171,7 +171,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -193,7 +193,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -69,7 +69,7 @@ applications:
- '3' - '3'
- '4' - '4'
- '5' - '5'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -81,7 +81,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -99,7 +99,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -109,7 +109,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -122,7 +122,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -131,7 +131,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -141,7 +141,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -150,11 +150,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -165,7 +165,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -183,7 +183,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -75,7 +75,7 @@ applications:
- '18' - '18'
- '19' - '19'
- '20' - '20'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -87,7 +87,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -105,7 +105,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -115,7 +115,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -128,7 +128,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -137,7 +137,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -147,7 +147,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -156,11 +156,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -171,7 +171,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -193,7 +193,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -69,7 +69,7 @@ applications:
- '3' - '3'
- '4' - '4'
- '5' - '5'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -81,7 +81,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -99,7 +99,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -109,7 +109,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -122,7 +122,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -131,7 +131,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -141,7 +141,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -150,11 +150,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -165,7 +165,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -183,7 +183,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -1,7 +1,7 @@
variables: variables:
openstack-origin: &openstack-origin distro openstack-origin: &openstack-origin cloud:jammy-caracal
series: &series mantic series: &series jammy
machines: machines:
0: 0:
@ -69,7 +69,7 @@ applications:
- '3' - '3'
- '4' - '4'
- '5' - '5'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -81,7 +81,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -99,7 +99,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -109,7 +109,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -122,7 +122,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -131,7 +131,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -141,7 +141,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -150,11 +150,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -165,7 +165,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -183,7 +183,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -1,303 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
series: &series lunar
machines:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
# for the nova-compute unit
17:
constraints: mem=4G cores=4 root-disk=20G
18:
19:
20:
applications:
nova-cloud-controller-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
keystone-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
neutron-api-mysql-router:
charm: ch:mysql-router
channel: latest/edge
cinder-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
channel: latest/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 6
storage:
osd-devices: '10G'
options:
osd-devices: '/dev/test-non-existent'
source: *openstack-origin
to:
- '3'
- '4'
- '5'
- '18'
- '19'
- '20'
channel: latest/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
monitor-count: '3'
source: *openstack-origin
to:
- '6'
- '7'
- '8'
channel: latest/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
to:
- '9'
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
network-manager: Neutron
debug: true
to:
- '10'
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
neutron-api:
charm: ch:neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
to:
- '12'
channel: latest/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '13'
channel: latest/edge
neutron-gateway:
charm: ch:neutron-gateway
num_units: 1
options:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
to:
- '14'
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '15'
channel: latest/edge
neutron-openvswitch:
charm: ch:neutron-openvswitch
channel: latest/edge
cinder:
charm: ch:cinder
num_units: 1
options:
openstack-origin: *openstack-origin
block-device: None
glance-api-version: 2
to:
- '16'
channel: latest/edge
cinder-ceph:
charm: ../../cinder-ceph.charm
options:
pool-type: erasure-coded
ec-profile-k: 4
ec-profile-m: 2
nova-compute:
charm: ch:nova-compute
num_units: 1
storage:
ephemeral-device: '40G'
options:
openstack-origin: *openstack-origin
config-flags: auto_assign_floating_ip=False
enable-live-migration: false
aa-profile-mode: enforce
debug: true
to:
- '17'
channel: latest/edge
relations:
- - 'nova-compute:image-service'
- 'glance:image-service'
- - 'nova-compute:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'nova-cloud-controller-mysql-router:shared-db'
- - 'nova-cloud-controller-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'nova-cloud-controller:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'nova-cloud-controller:image-service'
- 'glance:image-service'
- - 'placement:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:identity-service'
- 'keystone:identity-service'
- - 'placement:placement'
- 'nova-cloud-controller:placement'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:identity-service'
- 'keystone:identity-service'
- - 'glance:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'glance:ceph'
- 'ceph-mon:client'
- - 'neutron-gateway:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:quantum-network-service'
- 'neutron-gateway:quantum-network-service'
- - 'neutron-api:shared-db'
- 'neutron-api-mysql-router:shared-db'
- - 'neutron-api-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:neutron-api'
- 'nova-cloud-controller:neutron-api'
- - 'neutron-api:identity-service'
- 'keystone:identity-service'
- - 'nova-compute:neutron-plugin'
- 'neutron-openvswitch:neutron-plugin'
- - 'rabbitmq-server:amqp'
- 'neutron-openvswitch:amqp'
- - 'cinder:shared-db'
- 'cinder-mysql-router:shared-db'
- - 'cinder-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'cinder:image-service'
- 'glance:image-service'
- - 'cinder-ceph:storage-backend'
- 'cinder:storage-backend'
- - 'nova-compute:ceph-access'
- 'cinder-ceph:ceph-access'
- - 'ceph-mon:client'
- 'cinder-ceph:ceph'
- - 'ceph-mon:osd'
- 'ceph-osd:mon'

View File

@ -1,303 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
series: &series mantic
machines:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
# for the nova-compute unit
17:
constraints: mem=4G cores=4 root-disk=20G
18:
19:
20:
applications:
nova-cloud-controller-mysql-router:
charm: ch:mysql-router
channel: latest/edge
placement-mysql-router:
charm: ch:mysql-router
channel: latest/edge
keystone-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
neutron-api-mysql-router:
charm: ch:mysql-router
channel: latest/edge
cinder-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
channel: latest/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 6
storage:
osd-devices: '10G'
options:
osd-devices: '/dev/test-non-existent'
source: *openstack-origin
to:
- '3'
- '4'
- '5'
- '18'
- '19'
- '20'
channel: latest/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
monitor-count: '3'
source: *openstack-origin
to:
- '6'
- '7'
- '8'
channel: latest/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
to:
- '9'
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
openstack-origin: *openstack-origin
network-manager: Neutron
debug: true
to:
- '10'
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
constraints: mem=1G
options:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
neutron-api:
charm: ch:neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
to:
- '12'
channel: latest/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '13'
channel: latest/edge
neutron-gateway:
charm: ch:neutron-gateway
num_units: 1
options:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
to:
- '14'
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '15'
channel: latest/edge
neutron-openvswitch:
charm: ch:neutron-openvswitch
channel: latest/edge
cinder:
charm: ch:cinder
num_units: 1
options:
openstack-origin: *openstack-origin
block-device: None
glance-api-version: 2
to:
- '16'
channel: latest/edge
cinder-ceph:
charm: ../../cinder-ceph.charm
options:
pool-type: erasure-coded
ec-profile-k: 4
ec-profile-m: 2
nova-compute:
charm: ch:nova-compute
num_units: 1
storage:
ephemeral-device: '40G'
options:
openstack-origin: *openstack-origin
config-flags: auto_assign_floating_ip=False
enable-live-migration: false
aa-profile-mode: enforce
debug: true
to:
- '17'
channel: latest/edge
relations:
- - 'nova-compute:image-service'
- 'glance:image-service'
- - 'nova-compute:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'nova-cloud-controller-mysql-router:shared-db'
- - 'nova-cloud-controller-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'nova-cloud-controller:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'nova-cloud-controller:image-service'
- 'glance:image-service'
- - 'placement:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:identity-service'
- 'keystone:identity-service'
- - 'placement:placement'
- 'nova-cloud-controller:placement'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:identity-service'
- 'keystone:identity-service'
- - 'glance:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'glance:ceph'
- 'ceph-mon:client'
- - 'neutron-gateway:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:quantum-network-service'
- 'neutron-gateway:quantum-network-service'
- - 'neutron-api:shared-db'
- 'neutron-api-mysql-router:shared-db'
- - 'neutron-api-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:neutron-api'
- 'nova-cloud-controller:neutron-api'
- - 'neutron-api:identity-service'
- 'keystone:identity-service'
- - 'nova-compute:neutron-plugin'
- 'neutron-openvswitch:neutron-plugin'
- - 'rabbitmq-server:amqp'
- 'neutron-openvswitch:amqp'
- - 'cinder:shared-db'
- 'cinder-mysql-router:shared-db'
- - 'cinder-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'cinder:image-service'
- 'glance:image-service'
- - 'cinder-ceph:storage-backend'
- 'cinder:storage-backend'
- - 'nova-compute:ceph-access'
- 'cinder-ceph:ceph-access'
- - 'ceph-mon:client'
- 'cinder-ceph:ceph'
- - 'ceph-mon:osd'
- 'ceph-osd:mon'

View File

@ -1,7 +1,7 @@
variables: variables:
openstack-origin: &openstack-origin distro openstack-origin: &openstack-origin distro
series: &series lunar series: &series noble
machines: machines:
0: 0:
@ -69,7 +69,7 @@ applications:
- '3' - '3'
- '4' - '4'
- '5' - '5'
channel: latest/edge channel: reef/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -81,7 +81,7 @@ applications:
- '6' - '6'
- '7' - '7'
- '8' - '8'
channel: latest/edge channel: reef/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -99,7 +99,7 @@ applications:
debug: true debug: true
to: to:
- '10' - '10'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -109,7 +109,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -122,7 +122,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '12' - '12'
channel: latest/edge channel: 2024.1/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -131,7 +131,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '13' - '13'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -141,7 +141,7 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '14' - '14'
channel: latest/edge channel: 2024.1/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -150,11 +150,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '15' - '15'
channel: latest/edge channel: 2024.1/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: 2024.1/edge
cinder: cinder:
charm: ch:cinder charm: ch:cinder
@ -165,7 +165,7 @@ applications:
glance-api-version: 2 glance-api-version: 2
to: to:
- '16' - '16'
channel: latest/edge channel: 2024.1/edge
cinder-ceph: cinder-ceph:
charm: ../../cinder-ceph.charm charm: ../../cinder-ceph.charm
@ -183,7 +183,7 @@ applications:
debug: true debug: true
to: to:
- '17' - '17'
channel: latest/edge channel: 2024.1/edge
relations: relations:

View File

@ -1,22 +1,17 @@
charm_name: cinder-ceph charm_name: cinder-ceph
comment: | comment: |
The cinder-ceph charm assertions are intended to be the sum of the The cinder-ceph charm assertions are intended to be the sum of the
cinder and ceph-mon zaza charm tests. cinder and ceph-mon zaza charm tests.
smoke_bundles: smoke_bundles:
- jammy-antelope - jammy-caracal
gate_bundles: gate_bundles:
- jammy-antelope-ec
- jammy-antelope - jammy-antelope
dev_bundles:
- jammy-bobcat-ec
- jammy-bobcat - jammy-bobcat
- mantic-bobcat-ec - jammy-caracal
- mantic-bobcat dev_bundles:
- noble-caracal
configure: configure:
- zaza.openstack.charm_tests.glance.setup.add_cirros_image - zaza.openstack.charm_tests.glance.setup.add_cirros_image
- zaza.openstack.charm_tests.glance.setup.add_lts_image - zaza.openstack.charm_tests.glance.setup.add_lts_image
@ -40,5 +35,4 @@ tests_options:
policyd: policyd:
service: cinder service: cinder
force_deploy: force_deploy:
- mantic-bobcat - noble-caracal
- mantic-bobcat-ec