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: Icdefacaadb7f03d7241a0e0d88c09fcbac668530
This commit is contained in:
Alex Kavanagh 2024-02-09 18:15:47 +00:00
parent ea0ef6d32e
commit 16f8bc201e
15 changed files with 84 additions and 96 deletions

View File

@ -1,7 +0,0 @@
# NOTES(lourot):
# * We don't install charmcraft via pip anymore because it anyway spins up a
# container and scp the system's charmcraft snap inside it. So the charmcraft
# snap is necessary on the system anyway.
# * `tox -e build` successfully validated with charmcraft 1.2.1
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.

View File

@ -31,9 +31,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

@ -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,10 +836,6 @@ 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:
codename = get_os_codename_install_source(src)
avail_vers = get_os_version_codename_swift(codename)
else:
try: try:
avail_vers = get_os_version_install_source(src) avail_vers = get_os_version_install_source(src)
except Exception: except Exception:

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

@ -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

@ -6,11 +6,9 @@ description: |
orchestration engine to launch multiple composite cloud applications based on orchestration engine to launch multiple composite cloud applications based on
templates in the form of text files that can be treated like code. templates in the form of text files that can be treated like code.
tags: tags:
- openstack - openstack
series: series:
- jammy - jammy
- lunar
- mantic
extra-bindings: extra-bindings:
public: public:
admin: admin:

View File

@ -65,7 +65,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '3' - '3'
channel: latest/edge channel: 2024.1/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -81,7 +81,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '5' - '5'
channel: latest/edge channel: 2024.1/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -92,7 +92,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '6' - '6'
channel: latest/edge channel: 2024.1/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -103,7 +103,7 @@ applications:
enable-live-migration: "False" enable-live-migration: "False"
to: to:
- '7' - '7'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -113,7 +113,7 @@ applications:
debug: "True" debug: "True"
to: to:
- '8' - '8'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -122,7 +122,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '9' - '9'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -133,11 +133,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '10' - '10'
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
heat: heat:
charm: ../../heat.charm charm: ../../heat.charm

View File

@ -65,7 +65,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '3' - '3'
channel: latest/edge channel: 2024.1/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -81,7 +81,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '5' - '5'
channel: latest/edge channel: 2024.1/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -92,7 +92,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '6' - '6'
channel: latest/edge channel: 2024.1/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -103,7 +103,7 @@ applications:
enable-live-migration: "False" enable-live-migration: "False"
to: to:
- '7' - '7'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -113,7 +113,7 @@ applications:
debug: "True" debug: "True"
to: to:
- '8' - '8'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -122,7 +122,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '9' - '9'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -133,11 +133,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '10' - '10'
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
heat: heat:
charm: ../../heat.charm charm: ../../heat.charm

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:
@ -65,7 +65,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '3' - '3'
channel: latest/edge channel: 2024.1/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -81,7 +81,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '5' - '5'
channel: latest/edge channel: 2024.1/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -92,7 +92,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '6' - '6'
channel: latest/edge channel: 2024.1/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -103,7 +103,7 @@ applications:
enable-live-migration: "False" enable-live-migration: "False"
to: to:
- '7' - '7'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -113,7 +113,7 @@ applications:
debug: "True" debug: "True"
to: to:
- '8' - '8'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -122,7 +122,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '9' - '9'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -133,11 +133,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '10' - '10'
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
heat: heat:
charm: ../../heat.charm charm: ../../heat.charm

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:
@ -65,7 +65,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '3' - '3'
channel: latest/edge channel: 2024.1/edge
rabbitmq-server: rabbitmq-server:
charm: ch:rabbitmq-server charm: ch:rabbitmq-server
@ -81,7 +81,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '5' - '5'
channel: latest/edge channel: 2024.1/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -92,7 +92,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '6' - '6'
channel: latest/edge channel: 2024.1/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -103,7 +103,7 @@ applications:
enable-live-migration: "False" enable-live-migration: "False"
to: to:
- '7' - '7'
channel: latest/edge channel: 2024.1/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -113,7 +113,7 @@ applications:
debug: "True" debug: "True"
to: to:
- '8' - '8'
channel: latest/edge channel: 2024.1/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -122,7 +122,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '9' - '9'
channel: latest/edge channel: 2024.1/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -133,11 +133,11 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '10' - '10'
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
heat: heat:
charm: ../../heat.charm charm: ../../heat.charm

View File

@ -1,17 +1,13 @@
charm_name: heat charm_name: heat
smoke_bundles: smoke_bundles:
- jammy-antelope - jammy-caracal
gate_bundles: gate_bundles:
- jammy-antelope - jammy-antelope
dev_bundles:
- jammy-antelope
- jammy-bobcat - jammy-bobcat
- lunar-antelope - 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.nova.setup.manage_ssh_key - zaza.openstack.charm_tests.nova.setup.manage_ssh_key
@ -25,5 +21,4 @@ tests_options:
policyd: policyd:
service: heat service: heat
force_deploy: force_deploy:
- lunar-antelope - noble-caracal
- mantic-bobcat

18
tox.ini
View File

@ -32,11 +32,13 @@ passenv =
CS_* CS_*
OS_* OS_*
TEST_* TEST_*
deps = -r{toxinidir}/test-requirements.txt deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/test-requirements.txt
[testenv:build] [testenv:build]
basepython = python3 basepython = python3
deps = -r{toxinidir}/build-requirements.txt deps =
# charmcraft clean is done to ensure that # charmcraft clean is done to ensure that
# `tox -e build` always performs a clean, repeatable build. # `tox -e build` always performs a clean, repeatable build.
# For faster rebuilds during development, # For faster rebuilds during development,
@ -49,12 +51,16 @@ commands =
[testenv:py310] [testenv:py310]
basepython = python3.10 basepython = python3.10
deps = -r{toxinidir}/requirements.txt deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
[testenv:py3] [testenv:py3]
basepython = python3 basepython = python3
deps = -r{toxinidir}/requirements.txt deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
[testenv:pep8] [testenv:pep8]
@ -68,7 +74,9 @@ commands = flake8 {posargs} hooks unit_tests tests actions lib files
# Technique based heavily upon # Technique based heavily upon
# https://github.com/openstack/nova/blob/master/tox.ini # https://github.com/openstack/nova/blob/master/tox.ini
basepython = python3 basepython = python3
deps = -r{toxinidir}/requirements.txt deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
setenv = setenv =
{[testenv]setenv} {[testenv]setenv}