Migrate charm charmcraft and for the yoga track

Change-Id: I455d079ffb7ca081d8a1b54d1afcc28d5b8e1751
This commit is contained in:
Alex Kavanagh 2022-04-14 10:32:30 +01:00 committed by Corey Bryant
parent 033a794520
commit 13a994f78d
27 changed files with 164 additions and 893 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ interfaces
*__pycache__* *__pycache__*
*.pyc *.pyc
.stestr/ .stestr/
*.charm

View File

@ -1,3 +1,3 @@
- project: - project:
templates: templates:
- openstack-python3-ussuri-jobs - openstack-python3-charm-yoga-jobs

7
build-requirements.txt Normal file
View File

@ -0,0 +1,7 @@
# 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.

33
charmcraft.yaml Normal file
View File

@ -0,0 +1,33 @@
type: charm
parts:
charm:
build-packages:
- tox
- git
- python3-dev
override-build: |
apt-get install ca-certificates -y
tox -e build-reactive
override-stage: |
echo "Copying charm to staging area: $CHARMCRAFT_STAGE"
NAME=$(ls $CHARMCRAFT_PART_BUILD/build/builds)
cp -r $CHARMCRAFT_PART_BUILD/build/builds/$NAME/* $CHARMCRAFT_STAGE/
override-prime: |
# For some reason, the normal priming chokes on the fact that there's a
# hooks directory.
cp -r $CHARMCRAFT_STAGE/* .
bases:
- build-on:
- name: ubuntu
channel: "20.04"
architectures:
- amd64
run-on:
- name: ubuntu
channel: "20.04"
architectures: [amd64, s390x, ppc64el, arm64]
- name: ubuntu
channel: "22.04"
architectures: [amd64, s390x, ppc64el, arm64]

1
metadata.yaml Symbolic link
View File

@ -0,0 +1 @@
src/metadata.yaml

View File

@ -1,13 +1,10 @@
- project: - project:
templates: templates:
- charm-yoga-unit-jobs - charm-unit-jobs-py38
- charm-yoga-functional-jobs - charm-unit-jobs-py310
- charm-xena-functional-jobs - charm-xena-functional-jobs
- charm-wallaby-functional-jobs - charm-yoga-functional-jobs
- charm-victoria-functional-jobs
- charm-ussuri-functional-jobs
- charm-stein-functional-jobs
- charm-queens-functional-jobs
vars: vars:
needs_charm_build: true needs_charm_build: true
charm_build_name: neutron-dynamic-routing charm_build_name: neutron-dynamic-routing
build_type: charmcraft

13
rename.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
charm=$(grep "charm_build_name" osci.yaml | awk '{print $2}')
echo "renaming ${charm}_*.charm to ${charm}.charm"
echo -n "pwd: "
pwd
ls -al
echo "Removing bad downloaded charm maybe?"
if [[ -e "${charm}.charm" ]];
then
rm "${charm}.charm"
fi
echo "Renaming charm here."
mv ${charm}_*.charm ${charm}.charm

View File

@ -8,9 +8,16 @@
# requirements.txt # requirements.txt
setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
# NOTE: newer versions of cryptography require a Rust compiler to build,
# see
# * https://github.com/openstack-charmers/zaza/issues/421
# * https://mail.python.org/pipermail/cryptography-dev/2021-January/001003.html
#
cryptography<3.4
# Build requirements # Build requirements
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.
charm-tools==2.8.3 git+https://github.com/juju/charm-tools#egg=charm-tools
simplejson simplejson

View File

@ -0,0 +1,3 @@
options:
openstack-origin:
default: yoga

View File

@ -7,11 +7,8 @@ description: |
tags: tags:
- openstack - openstack
series: series:
- bionic
- focal - focal
- groovy - jammy
- hirsute
- impish
subordinate: false subordinate: false
extra-bindings: extra-bindings:
# Used to specify the OpenStack provider network interface # Used to specify the OpenStack provider network interface

View File

@ -4,6 +4,9 @@
# https://github.com/openstack-charmers/release-tools # https://github.com/openstack-charmers/release-tools
# #
# Need tox to be available from tox... inception yes, but its a workaround for now
tox
# Functional Test Requirements (let Zaza's dependencies solve all dependencies here!) # Functional Test Requirements (let Zaza's dependencies solve all dependencies here!)
git+https://github.com/openstack-charmers/zaza.git#egg=zaza git+https://github.com/openstack-charmers/zaza.git#egg=zaza
git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.openstack

View File

@ -1,50 +0,0 @@
series: bionic
relations:
- [neutron-dynamic-routing, rabbitmq-server]
- [neutron-dynamic-routing, quagga]
- [keystone, mysql]
- [neutron-api, mysql]
- [neutron-api, rabbitmq-server]
- [neutron-api, keystone]
applications:
keystone:
charm: cs:~openstack-charmers-next/bionic/keystone
constraints: mem=1G
num_units: 1
options:
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
mysql:
charm: cs:~openstack-charmers-next/bionic/percona-cluster
constraints: mem=4G
num_units: 1
series: bionic
neutron-api:
charm: cs:~openstack-charmers-next/bionic/neutron-api
constraints: mem=1G
num_units: 1
options:
flat-network-providers: physnet1
neutron-security-groups: true
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
series: bionic
rabbitmq-server:
charm: cs:~openstack-charmers-next/bionic/rabbitmq-server
constraints: mem=1G
num_units: 1
series: bionic
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
num_units: 1
series: bionic

View File

@ -1,53 +0,0 @@
relations:
- [neutron-dynamic-routing, rabbitmq-server]
- [neutron-dynamic-routing, quagga]
- [keystone, mysql]
- [neutron-api, mysql]
- [neutron-api, rabbitmq-server]
- [neutron-api, keystone]
applications:
keystone:
charm: cs:~openstack-charmers-next/bionic/keystone
constraints: mem=1G
num_units: 1
options:
openstack-origin: 'cloud:bionic-rocky'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
mysql:
charm: cs:~openstack-charmers-next/bionic/percona-cluster
constraints: mem=4G
num_units: 1
options: {source: 'cloud:bionic-rocky'}
series: bionic
neutron-api:
charm: cs:~openstack-charmers-next/bionic/neutron-api
constraints: mem=1G
num_units: 1
options:
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: 'cloud:bionic-rocky'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options: {openstack-origin: 'cloud:bionic-rocky'}
series: bionic
rabbitmq-server:
charm: cs:~openstack-charmers-next/bionic/rabbitmq-server
constraints: mem=1G
num_units: 1
options: {source: 'cloud:bionic-rocky'}
series: bionic
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
num_units: 1
series: bionic

View File

@ -1,53 +0,0 @@
relations:
- [neutron-dynamic-routing, rabbitmq-server]
- [neutron-dynamic-routing, quagga]
- [keystone, mysql]
- [neutron-api, mysql]
- [neutron-api, rabbitmq-server]
- [neutron-api, keystone]
applications:
keystone:
charm: cs:~openstack-charmers-next/bionic/keystone
constraints: mem=1G
num_units: 1
options:
openstack-origin: 'cloud:bionic-stein'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
mysql:
charm: cs:~openstack-charmers-next/bionic/percona-cluster
constraints: mem=4G
num_units: 1
options: {source: 'cloud:bionic-stein'}
series: bionic
neutron-api:
charm: cs:~openstack-charmers-next/bionic/neutron-api
constraints: mem=1G
num_units: 1
options:
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: 'cloud:bionic-stein'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options: {openstack-origin: 'cloud:bionic-stein'}
series: bionic
rabbitmq-server:
charm: cs:~openstack-charmers-next/bionic/rabbitmq-server
constraints: mem=1G
num_units: 1
options: {source: 'cloud:bionic-stein'}
series: bionic
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
num_units: 1
series: bionic

View File

@ -1,53 +0,0 @@
relations:
- [neutron-dynamic-routing, rabbitmq-server]
- [neutron-dynamic-routing, quagga]
- [keystone, mysql]
- [neutron-api, mysql]
- [neutron-api, rabbitmq-server]
- [neutron-api, keystone]
applications:
keystone:
charm: cs:~openstack-charmers-next/bionic/keystone
constraints: mem=1G
num_units: 1
options:
openstack-origin: 'cloud:bionic-train'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
mysql:
charm: cs:~openstack-charmers-next/bionic/percona-cluster
constraints: mem=4G
num_units: 1
options: {source: 'cloud:bionic-train'}
series: bionic
neutron-api:
charm: cs:~openstack-charmers-next/bionic/neutron-api
constraints: mem=1G
num_units: 1
options:
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: 'cloud:bionic-train'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options: {openstack-origin: 'cloud:bionic-train'}
series: bionic
rabbitmq-server:
charm: cs:~openstack-charmers-next/bionic/rabbitmq-server
constraints: mem=1G
num_units: 1
options: {source: 'cloud:bionic-train'}
series: bionic
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
num_units: 1
series: bionic

View File

@ -1,55 +0,0 @@
relations:
- [neutron-dynamic-routing, rabbitmq-server]
- [neutron-dynamic-routing, quagga]
- [keystone, mysql]
- [neutron-api, mysql]
- [neutron-api, rabbitmq-server]
- [neutron-api, keystone]
applications:
keystone:
charm: cs:~openstack-charmers-next/bionic/keystone
constraints: mem=1G
num_units: 1
options:
openstack-origin: 'cloud:bionic-ussuri'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
mysql:
charm: cs:~openstack-charmers-next/bionic/percona-cluster
constraints: mem=4G
num_units: 1
options: {source: 'cloud:bionic-ussuri'}
series: bionic
neutron-api:
charm: cs:~openstack-charmers-next/bionic/neutron-api
constraints: mem=1G
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: 'cloud:bionic-ussuri'
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
series: bionic
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options: {openstack-origin: 'cloud:bionic-ussuri'}
series: bionic
rabbitmq-server:
charm: cs:~openstack-charmers-next/bionic/rabbitmq-server
constraints: mem=1G
num_units: 1
options: {source: 'cloud:bionic-ussuri'}
series: bionic
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
num_units: 1
series: bionic

View File

@ -1,113 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
series: focal
comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
'0':
constraints: mem=3072M
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
# for quagga which has no focal support yet
series: bionic
applications:
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone:
charm: cs:~openstack-charmers-next/keystone
num_units: 1
options:
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '3'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '4'
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '5'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
options:
source: *openstack-origin
to:
- '6'
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
series: bionic
num_units: 1
to:
- '7'
relations:
- - 'neutron-dynamic-routing:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-dynamic-routing:bgp-speaker'
- 'quagga:bgpclient'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - '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:identity-service'
- 'keystone:identity-service'

View File

@ -1,113 +0,0 @@
variables:
openstack-origin: &openstack-origin cloud:focal-victoria
series: focal
comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
'0':
constraints: mem=3072M
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
# for quagga which has no focal support yet
series: bionic
applications:
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone:
charm: cs:~openstack-charmers-next/keystone
num_units: 1
options:
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '3'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '4'
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '5'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
options:
source: *openstack-origin
to:
- '6'
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
series: bionic
num_units: 1
to:
- '7'
relations:
- - 'neutron-dynamic-routing:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-dynamic-routing:bgp-speaker'
- 'quagga:bgpclient'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - '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:identity-service'
- 'keystone:identity-service'

View File

@ -1,113 +0,0 @@
variables:
openstack-origin: &openstack-origin cloud:focal-wallaby
series: focal
comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
'0':
constraints: mem=3072M
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
# for quagga which has no focal support yet
series: bionic
applications:
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone:
charm: cs:~openstack-charmers-next/keystone
num_units: 1
options:
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '3'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '4'
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '5'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
options:
source: *openstack-origin
to:
- '6'
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
series: bionic
num_units: 1
to:
- '7'
relations:
- - 'neutron-dynamic-routing:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-dynamic-routing:bgp-speaker'
- 'quagga:bgpclient'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - '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:identity-service'
- 'keystone:identity-service'

View File

@ -1,3 +1,5 @@
local_overlay_enabled: False
variables: variables:
openstack-origin: &openstack-origin cloud:focal-xena openstack-origin: &openstack-origin cloud:focal-xena
@ -23,12 +25,14 @@ machines:
applications: applications:
keystone-mysql-router: keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
neutron-api-mysql-router: neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster charm: ch:mysql-innodb-cluster
num_units: 3 num_units: 3
options: options:
source: *openstack-origin source: *openstack-origin
@ -36,9 +40,10 @@ applications:
- '0' - '0'
- '1' - '1'
- '2' - '2'
channel: 8.0.19/edge
keystone: keystone:
charm: cs:~openstack-charmers-next/keystone charm: ch:keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -48,9 +53,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '3' - '3'
channel: xena/edge
neutron-api: neutron-api:
charm: cs:~openstack-charmers-next/neutron-api charm: ch:neutron-api
num_units: 1 num_units: 1
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
@ -64,9 +70,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '4' - '4'
channel: xena/edge
neutron-dynamic-routing: neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing charm: ../../../neutron-dynamic-routing.charm
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -74,15 +81,16 @@ applications:
- '5' - '5'
rabbitmq-server: rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server charm: ch:rabbitmq-server
num_units: 1 num_units: 1
options: options:
source: *openstack-origin source: *openstack-origin
to: to:
- '6' - '6'
channel: 3.8/edge
quagga: quagga:
charm: cs:~openstack-charmers-next/bionic/quagga charm: ch:openstack-charmers-next-quagga
series: bionic series: bionic
num_units: 1 num_units: 1
to: to:

View File

@ -1,3 +1,5 @@
local_overlay_enabled: False
variables: variables:
openstack-origin: &openstack-origin cloud:focal-yoga openstack-origin: &openstack-origin cloud:focal-yoga
@ -23,12 +25,14 @@ machines:
applications: applications:
keystone-mysql-router: keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
neutron-api-mysql-router: neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster charm: ch:mysql-innodb-cluster
num_units: 3 num_units: 3
options: options:
source: *openstack-origin source: *openstack-origin
@ -36,9 +40,10 @@ applications:
- '0' - '0'
- '1' - '1'
- '2' - '2'
channel: 8.0.19/edge
keystone: keystone:
charm: cs:~openstack-charmers-next/keystone charm: ch:keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -48,9 +53,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '3' - '3'
channel: yoga/edge
neutron-api: neutron-api:
charm: cs:~openstack-charmers-next/neutron-api charm: ch:neutron-api
num_units: 1 num_units: 1
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
@ -64,9 +70,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '4' - '4'
channel: yoga/edge
neutron-dynamic-routing: neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing charm: ../../../neutron-dynamic-routing.charm
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -74,15 +81,16 @@ applications:
- '5' - '5'
rabbitmq-server: rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server charm: ch:rabbitmq-server
num_units: 1 num_units: 1
options: options:
source: *openstack-origin source: *openstack-origin
to: to:
- '6' - '6'
channel: 3.8/edge
quagga: quagga:
charm: cs:~openstack-charmers-next/bionic/quagga charm: ch:openstack-charmers-next-quagga
series: bionic series: bionic
num_units: 1 num_units: 1
to: to:

View File

@ -1,113 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
series: hirsute
comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
'0':
constraints: mem=3072M
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
# for quagga which has no hirsute support yet
series: bionic
applications:
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone:
charm: cs:~openstack-charmers-next/keystone
num_units: 1
options:
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '3'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '4'
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '5'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
options:
source: *openstack-origin
to:
- '6'
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
series: bionic
num_units: 1
to:
- '7'
relations:
- - 'neutron-dynamic-routing:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-dynamic-routing:bgp-speaker'
- 'quagga:bgpclient'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - '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:identity-service'
- 'keystone:identity-service'

View File

@ -1,113 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
series: impish
comment:
- 'machines section to decide order of deployment. database sooner = faster'
machines:
'0':
constraints: mem=3072M
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
# for quagga which has no impish support yet
series: bionic
applications:
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone:
charm: cs:~openstack-charmers-next/keystone
num_units: 1
options:
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '3'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
num_units: 1
options:
manage-neutron-plugin-legacy-mode: true
neutron-plugin: ovs
flat-network-providers: physnet1,
neutron-security-groups: true
openstack-origin: *openstack-origin
haproxy-server-timeout: 90000
haproxy-client-timeout: 90000
haproxy-queue-timeout: 9000
haproxy-connect-timeout: 9000
to:
- '4'
neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing
num_units: 1
options:
openstack-origin: *openstack-origin
to:
- '5'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
options:
source: *openstack-origin
to:
- '6'
quagga:
charm: cs:~openstack-charmers-next/bionic/quagga
series: bionic
num_units: 1
to:
- '7'
relations:
- - 'neutron-dynamic-routing:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-dynamic-routing:bgp-speaker'
- 'quagga:bgpclient'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - '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:identity-service'
- 'keystone:identity-service'

View File

@ -1,3 +1,5 @@
local_overlay_enabled: False
variables: variables:
openstack-origin: &openstack-origin distro openstack-origin: &openstack-origin distro
@ -23,12 +25,14 @@ machines:
applications: applications:
keystone-mysql-router: keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
neutron-api-mysql-router: neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router charm: ch:mysql-router
channel: 8.0.19/edge
mysql-innodb-cluster: mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster charm: ch:mysql-innodb-cluster
num_units: 3 num_units: 3
options: options:
source: *openstack-origin source: *openstack-origin
@ -36,9 +40,10 @@ applications:
- '0' - '0'
- '1' - '1'
- '2' - '2'
channel: 8.0.19/edge
keystone: keystone:
charm: cs:~openstack-charmers-next/keystone charm: ch:keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -48,9 +53,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '3' - '3'
channel: yoga/edge
neutron-api: neutron-api:
charm: cs:~openstack-charmers-next/neutron-api charm: ch:neutron-api
num_units: 1 num_units: 1
options: options:
manage-neutron-plugin-legacy-mode: true manage-neutron-plugin-legacy-mode: true
@ -64,9 +70,10 @@ applications:
haproxy-connect-timeout: 9000 haproxy-connect-timeout: 9000
to: to:
- '4' - '4'
channel: yoga/edge
neutron-dynamic-routing: neutron-dynamic-routing:
charm: ../../../neutron-dynamic-routing charm: ../../../neutron-dynamic-routing.charm
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
@ -74,15 +81,16 @@ applications:
- '5' - '5'
rabbitmq-server: rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server charm: ch:rabbitmq-server
num_units: 1 num_units: 1
options: options:
source: *openstack-origin source: *openstack-origin
to: to:
- '6' - '6'
channel: 3.9/edge
quagga: quagga:
charm: cs:~openstack-charmers-next/bionic/quagga charm: ch:openstack-charmers-next-quagga
series: bionic series: bionic
num_units: 1 num_units: 1
to: to:

View File

@ -4,30 +4,18 @@ configure:
- zaza.openstack.charm_tests.dragent.configure.setup - zaza.openstack.charm_tests.dragent.configure.setup
gate_bundles: gate_bundles:
- bionic-queens
- bionic-stein
- bionic-ussuri
- focal-ussuri
- focal-victoria
- focal-wallaby
- focal-xena - focal-xena
- hirsute-wallaby
- impish-xena
smoke_bundles:
- focal-ussuri
dev_bundles:
- bionic-rocky
- bionic-train
- focal-yoga - focal-yoga
- jammy-yoga - jammy-yoga
smoke_bundles:
- focal-yoga
dev_bundles: []
tests: tests:
- zaza.openstack.charm_tests.dragent.tests.DRAgentTest - zaza.openstack.charm_tests.dragent.tests.DRAgentTest
tests_options: tests_options:
force_deploy: force_deploy:
- hirsute-wallaby
- impish-xena
- jammy-yoga - jammy-yoga

View File

@ -28,6 +28,11 @@ oslo.utils<=3.41.0;python_version<'3.6'
requests>=2.18.4 requests>=2.18.4
charms.reactive charms.reactive
# Newer mock seems to have some syntax which is newer than python3.5 (e.g.
# f'{something}'
mock>=1.2,<4.0.0; python_version < '3.6'
mock>=1.2; python_version >= '3.6'
nose>=1.3.7 nose>=1.3.7
coverage>=3.6 coverage>=3.6
git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack
@ -46,3 +51,4 @@ pbr==5.6.0 # vault
cryptography<3.4 # vault, keystone-saml-mellon cryptography<3.4 # vault, keystone-saml-mellon
lxml # keystone-saml-mellon lxml # keystone-saml-mellon
hvac # vault, barbican-vault hvac # vault, barbican-vault
psutil # cinder-lvm

40
tox.ini
View File

@ -37,11 +37,24 @@ setenv = VIRTUAL_ENV={envdir}
passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY
install_command = install_command =
{toxinidir}/pip.sh install {opts} {packages} {toxinidir}/pip.sh install {opts} {packages}
allowlist_externals =
charmcraft
bash
tox
rename.sh
deps = deps =
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
[testenv:build] [testenv:build]
basepython = python3 basepython = python3
deps = -r{toxinidir}/build-requirements.txt
commands =
charmcraft clean
charmcraft -v build
{toxinidir}/rename.sh
[testenv:build-reactive]
basepython = python3
commands = commands =
charm-build --log-level DEBUG --use-lock-file-branches -o {toxinidir}/build/builds src {posargs} charm-build --log-level DEBUG --use-lock-file-branches -o {toxinidir}/build/builds src {posargs}
@ -55,21 +68,11 @@ basepython = python3
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs} commands = stestr run --slowest {posargs}
[testenv:py35]
basepython = python3.5
deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:py36] [testenv:py36]
basepython = python3.6 basepython = python3.6
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs} commands = stestr run --slowest {posargs}
[testenv:py37]
basepython = python3.7
deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:py38] [testenv:py38]
basepython = python3.8 basepython = python3.8
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
@ -80,12 +83,29 @@ basepython = python3.9
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs} commands = stestr run --slowest {posargs}
[testenv:py310]
basepython = python3.10
deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[testenv:pep8] [testenv:pep8]
basepython = python3 basepython = python3
deps = flake8==3.9.2 deps = flake8==3.9.2
charm-tools==2.8.3 charm-tools==2.8.3
commands = flake8 {posargs} src unit_tests commands = flake8 {posargs} src unit_tests
[testenv:func-target]
# Hack to get functional tests working in the charmcraft
# world. We should fix this.
basepython = python3
passenv = HOME TERM CS_* OS_* TEST_*
deps = -r{toxinidir}/src/test-requirements.txt
changedir = {toxinidir}/src
commands =
bash -c "if [ ! -f ../*.charm ]; then echo 'Charm does not exist. Run tox -e build'; exit 1; fi"
tox --version
tox -e func-target {posargs}
[testenv:cover] [testenv:cover]
# 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