Use custom PPA with Magnum packages

* The PPA contains latest stable Magnum code for Ussuri / Victoria.
* The Magnum db-sync is compatible with MySQL 8 with the updated
    Magnum packages.
* Update `focal-ussuri` and `focal-victoria` Zaza bundles. Use
    `mysql-innodb-cluster` instead of `percona-cluster` for database.

Change-Id: Iaf5b099db9d3d1d5a22a675c7db074835b68a119
This commit is contained in:
Ionut Balutoiu 2021-03-19 12:36:48 +02:00
parent 2aeb3d7746
commit 1ca3c696fe
3 changed files with 169 additions and 74 deletions

View File

@ -9,6 +9,7 @@ import charms_openstack.adapters as adapters
import charms_openstack.ip as os_ip
import charmhelpers.core.host as ch_host
import charmhelpers.core.hookenv as ch_hookenv
import charmhelpers.fetch as fetch
PACKAGES = [
@ -124,6 +125,26 @@ class MagnumCharm(charms_openstack.charm.HAOpenStackCharm):
group = "magnum"
# TODO: Remove this 'install' hook wrapper once the Magnum packages are
# fixed in the cloud archive / default repositories.
# We use a 3rd party PPA with custom Magnum packages (built against
# Magnum stable branch) because they include a couple of needed fixes.
# Due to the amount of changes needed to fix Magnum Ussuri, we went with
# the separate PPA to have the charm working.
# A good indication that Magnum is fixed in the cloud archive / default
# repositories, is removing this 'install' wrapper, and having the Zaza
# tests still passing.
def install(self):
custom_ppa_dict = {
'ussuri': 'ppa:openstack-charmers/magnum-ussuri',
'victoria': 'ppa:openstack-charmers/magnum-victoria',
}
ppa = custom_ppa_dict.get(self.application_version)
if ppa:
fetch.add_source(ppa, fail_invalid=True)
fetch.apt_update(fatal=True)
super().install()
def get_amqp_credentials(self):
"""Provide the default amqp username and vhost as a tuple.
:returns (username, host): two strings to send to the amqp provider.

View File

@ -8,46 +8,66 @@ comment:
machines:
'0':
constraints: mem=3072M
series: bionic
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
'8':
'9':
# the following machines are for nova-compute which needs more memory
# for the instances.
'8':
constraints: mem=4096M cores=4
'9':
constraints: mem=4096M cores=4
'10':
constraints: mem=4096M cores=4
'11':
constraints: mem=4096M cores=4
'12':
'13':
'14':
'15':
'16':
'17':
applications:
# TODO: This needs to be replaced with mysql-innodb-cluster + db routers,
# once https://bugs.launchpad.net/ubuntu/+source/magnum/+bug/1915734 is fixed.
percona-cluster:
charm: cs:~openstack-charmers-next/percona-cluster
num_units: 1
series: bionic
nova-cloud-controller-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
glance-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
placement-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
vault-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
magnum-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
heat-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
barbican-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
max-connections: 1000
innodb-buffer-pool-size: 256M
source: *openstack-origin
to:
- '0'
- '1'
- '2'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
to:
- '1'
- '3'
nova-cloud-controller:
charm: cs:~openstack-charmers-next/nova-cloud-controller
@ -56,7 +76,7 @@ applications:
openstack-origin: *openstack-origin
network-manager: Neutron
to:
- '2'
- '4'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
@ -68,7 +88,7 @@ applications:
flat-network-providers: physnet1
neutron-security-groups: true
to:
- '3'
- '5'
keystone:
charm: cs:~openstack-charmers-next/keystone
@ -76,7 +96,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '4'
- '6'
neutron-gateway:
charm: cs:~openstack-charmers-next/neutron-gateway
@ -85,7 +105,7 @@ applications:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
to:
- '5'
- '7'
glance:
charm: cs:~openstack-charmers-next/glance
@ -93,7 +113,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '6'
- '8'
neutron-openvswitch:
charm: cs:~openstack-charmers-next/neutron-openvswitch
@ -104,7 +124,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '7'
- '9'
nova-compute:
charm: cs:~openstack-charmers-next/nova-compute
@ -114,14 +134,14 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '8'
- '9'
- '10'
- '11'
vault:
charm: cs:~openstack-charmers-next/vault
num_units: 1
to:
- '10'
- '12'
magnum:
charm: ../../../magnum
@ -129,9 +149,9 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '11'
- '12'
- '13'
- '14'
- '15'
magnum-hacluster:
charm: cs:~openstack-charmers-next/hacluster
@ -146,7 +166,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '14'
- '16'
barbican:
charm: cs:~openstack-charmers-next/barbican
@ -154,7 +174,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '15'
- '17'
relations:
@ -165,7 +185,9 @@ relations:
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'percona-cluster: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'
@ -180,13 +202,16 @@ relations:
- 'glance:image-service'
- - 'keystone:shared-db'
- 'percona-cluster: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'
- 'percona-cluster:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
@ -198,7 +223,9 @@ relations:
- 'neutron-gateway:quantum-network-service'
- - 'neutron-api:shared-db'
- 'percona-cluster: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'
@ -216,7 +243,9 @@ relations:
- 'neutron-openvswitch:amqp'
- - 'placement:shared-db'
- 'percona-cluster:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:identity-service'
- 'keystone:identity-service'
@ -225,7 +254,9 @@ relations:
- 'nova-cloud-controller:placement'
- - 'vault:shared-db'
- 'percona-cluster:shared-db'
- 'vault-mysql-router:shared-db'
- - 'vault-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'vault:certificates'
- 'neutron-api:certificates'
@ -243,7 +274,9 @@ relations:
- 'placement:certificates'
- - 'magnum:shared-db'
- 'percona-cluster:shared-db'
- 'magnum-mysql-router:shared-db'
- - 'magnum-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'magnum:amqp'
- 'rabbitmq-server:amqp'
@ -264,7 +297,9 @@ relations:
- 'keystone:identity-service'
- - 'heat:shared-db'
- 'percona-cluster:shared-db'
- 'heat-mysql-router:shared-db'
- - 'heat-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'heat:certificates'
- 'vault:certificates'
@ -276,7 +311,9 @@ relations:
- 'keystone:identity-service'
- - 'barbican:shared-db'
- 'percona-cluster:shared-db'
- 'barbican-mysql-router:shared-db'
- - 'barbican-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'barbican:certificates'
- 'vault:certificates'

View File

@ -8,46 +8,66 @@ comment:
machines:
'0':
constraints: mem=3072M
series: bionic
'1':
constraints: mem=3072M
'2':
constraints: mem=3072M
'3':
'4':
'5':
'6':
'7':
'8':
'9':
# the following machines are for nova-compute which needs more memory
# for the instances.
'8':
constraints: mem=4096M cores=4
'9':
constraints: mem=4096M cores=4
'10':
constraints: mem=4096M cores=4
'11':
constraints: mem=4096M cores=4
'12':
'13':
'14':
'15':
'16':
'17':
applications:
# TODO: This needs to be replaced with mysql-innodb-cluster + db routers,
# once https://bugs.launchpad.net/ubuntu/+source/magnum/+bug/1915734 is fixed.
percona-cluster:
charm: cs:~openstack-charmers-next/percona-cluster
num_units: 1
series: bionic
nova-cloud-controller-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
neutron-api-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
keystone-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
glance-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
placement-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
vault-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
magnum-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
heat-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
barbican-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options:
max-connections: 1000
innodb-buffer-pool-size: 256M
source: *openstack-origin
to:
- '0'
- '1'
- '2'
rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1
to:
- '1'
- '3'
nova-cloud-controller:
charm: cs:~openstack-charmers-next/nova-cloud-controller
@ -56,7 +76,7 @@ applications:
openstack-origin: *openstack-origin
network-manager: Neutron
to:
- '2'
- '4'
neutron-api:
charm: cs:~openstack-charmers-next/neutron-api
@ -68,7 +88,7 @@ applications:
flat-network-providers: physnet1
neutron-security-groups: true
to:
- '3'
- '5'
keystone:
charm: cs:~openstack-charmers-next/keystone
@ -76,7 +96,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '4'
- '6'
neutron-gateway:
charm: cs:~openstack-charmers-next/neutron-gateway
@ -85,7 +105,7 @@ applications:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
to:
- '5'
- '7'
glance:
charm: cs:~openstack-charmers-next/glance
@ -93,7 +113,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '6'
- '8'
neutron-openvswitch:
charm: cs:~openstack-charmers-next/neutron-openvswitch
@ -104,7 +124,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '7'
- '9'
nova-compute:
charm: cs:~openstack-charmers-next/nova-compute
@ -114,14 +134,14 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '8'
- '9'
- '10'
- '11'
vault:
charm: cs:~openstack-charmers-next/vault
num_units: 1
to:
- '10'
- '12'
magnum:
charm: ../../../magnum
@ -129,9 +149,9 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '11'
- '12'
- '13'
- '14'
- '15'
magnum-hacluster:
charm: cs:~openstack-charmers-next/hacluster
@ -146,7 +166,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '14'
- '16'
barbican:
charm: cs:~openstack-charmers-next/barbican
@ -154,7 +174,7 @@ applications:
options:
openstack-origin: *openstack-origin
to:
- '15'
- '17'
relations:
@ -165,7 +185,9 @@ relations:
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'percona-cluster: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'
@ -180,13 +202,16 @@ relations:
- 'glance:image-service'
- - 'keystone:shared-db'
- 'percona-cluster: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'
- 'percona-cluster:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
@ -198,7 +223,9 @@ relations:
- 'neutron-gateway:quantum-network-service'
- - 'neutron-api:shared-db'
- 'percona-cluster: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'
@ -216,7 +243,9 @@ relations:
- 'neutron-openvswitch:amqp'
- - 'placement:shared-db'
- 'percona-cluster:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:identity-service'
- 'keystone:identity-service'
@ -225,7 +254,9 @@ relations:
- 'nova-cloud-controller:placement'
- - 'vault:shared-db'
- 'percona-cluster:shared-db'
- 'vault-mysql-router:shared-db'
- - 'vault-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'vault:certificates'
- 'neutron-api:certificates'
@ -243,7 +274,9 @@ relations:
- 'placement:certificates'
- - 'magnum:shared-db'
- 'percona-cluster:shared-db'
- 'magnum-mysql-router:shared-db'
- - 'magnum-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'magnum:amqp'
- 'rabbitmq-server:amqp'
@ -264,7 +297,9 @@ relations:
- 'keystone:identity-service'
- - 'heat:shared-db'
- 'percona-cluster:shared-db'
- 'heat-mysql-router:shared-db'
- - 'heat-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'heat:certificates'
- 'vault:certificates'
@ -276,7 +311,9 @@ relations:
- 'keystone:identity-service'
- - 'barbican:shared-db'
- 'percona-cluster:shared-db'
- 'barbican-mysql-router:shared-db'
- - 'barbican-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'barbican:certificates'
- 'vault:certificates'