Add support for 4.2

Add support for Trilio 4.2 and refocus this branch CI on 4.2.

Change-Id: Ic48bdf62d67deb536dc8e4dba1bfa4178a1f1217
This commit is contained in:
Liam Young 2022-06-29 14:24:43 +00:00
parent 9c58c4bb2c
commit fb9c792dd2
14 changed files with 343 additions and 921 deletions

View File

@ -1,24 +1,22 @@
- project:
templates:
- charm-yoga-unit-jobs
- charm-unit-jobs-py36
- charm-unit-jobs-py38
check:
jobs:
- charm-build
- bionic-queens-40_trilio-wlm
- bionic-stein-40_trilio-wlm
- bionic-queens-41_trilio-wlm
- bionic-stein-41_trilio-wlm
- bionic-train-40_trilio-wlm
- bionic-train-41_trilio-wlm
- bionic-train-41-s3_trilio-wlm
- bionic-ussuri-41_trilio-wlm
- bionic-queens-42_trilio-wlm
- bionic-ussuri-42_trilio-wlm
- focal-ussuri-41_trilio-wlm
- focal-ussuri-42_trilio-wlm
- focal-ussuri-42-s3_trilio-wlm
vars:
needs_charm_build: true
charm_build_name: trilio-wlm
build_type: charmcraft
- job:
name: focal-ussuri-41_trilio-wlm
name: focal-ussuri-42_trilio-wlm
parent: func-target
dependencies:
- osci-lint
@ -26,61 +24,32 @@
- tox-py38
- charm-build
vars:
tox_extra_args: focal-ussuri-41
tox_extra_args: focal-ussuri-42
- job:
name: bionic-ussuri-41_trilio-wlm
name: focal-ussuri-42-s3_trilio-wlm
parent: func-target
dependencies:
- focal-ussuri-41_trilio-wlm
- focal-ussuri-42_trilio-wlm
vars:
tox_extra_args: bionic-ussuri-41
tox_extra_args: focal-ussuri-42-s3
- job:
name: bionic-train-41-s3_trilio-wlm
name: bionic-ussuri-42_trilio-wlm
parent: func-target
dependencies:
- focal-ussuri-41_trilio-wlm
- focal-ussuri-42-s3_trilio-wlm
vars:
tox_extra_args: bionic-train-41-s3
tox_extra_args: bionic-ussuri-42
- job:
name: bionic-train-40_trilio-wlm
name: bionic-queens-42_trilio-wlm
parent: func-target
dependencies:
- bionic-ussuri-41_trilio-wlm
- focal-ussuri-42_trilio-wlm
vars:
tox_extra_args: bionic-train-40
- job:
name: bionic-train-41_trilio-wlm
parent: func-target
dependencies:
- bionic-train-41-s3_trilio-wlm
vars:
tox_extra_args: bionic-train-41
- job:
name: bionic-stein-40_trilio-wlm
parent: func-target
dependencies:
- bionic-train-40_trilio-wlm
vars:
tox_extra_args: bionic-stein-40
- job:
name: bionic-stein-41_trilio-wlm
parent: func-target
dependencies:
- bionic-train-41_trilio-wlm
vars:
tox_extra_args: bionic-stein-41
- job:
name: bionic-queens-40_trilio-wlm
parent: func-target
dependencies:
- bionic-stein-40_trilio-wlm
vars:
tox_extra_args: bionic-queens-40
tox_extra_args: bionic-queens-42
- job:
name: bionic-queens-41_trilio-wlm
parent: func-target
dependencies:
- bionic-stein-41_trilio-wlm
- bionic-queens-42_trilio-wlm
vars:
tox_extra_args: bionic-queens-41

View File

@ -93,3 +93,16 @@ options:
default: member
description: |
Workload manager trustee role.
progress-tracking-update-interval:
type: int
default: 1200
description: |
Number of seconds to wait for progress tracking file updated before
we call contego crash
This option is ignored if Trilio is before 4.2
process-timeout:
type: int
default: 300
description: |
Process timeout in seconds, used in file-search tool
This option is ignored if Trilio is before 4.2

View File

@ -102,9 +102,9 @@ class TrilioWLMCharmRelationAdapters(
}
class TrilioWLMCharm(charms_openstack.plugins.TrilioVaultCharm,
charms_openstack.plugins.TrilioVaultCharmGhostAction):
class TrilioWLMBaseCharm(charms_openstack.plugins.TrilioVaultCharm):
abstract_class = True
# Internal name of charm
service_name = name = "trilio-wlm"
@ -115,9 +115,6 @@ class TrilioWLMCharm(charms_openstack.plugins.TrilioVaultCharm,
alembic_ini = "/etc/workloadmgr/alembic.ini"
object_store_conf = "/etc/tvault-object-store/tvault-object-store.conf"
release = "stein"
trilio_release = "4.0"
base_packages = [
"linux-image-virtual", # Used for libguestfs supermin appliance
"nova-common",
@ -127,6 +124,8 @@ class TrilioWLMCharm(charms_openstack.plugins.TrilioVaultCharm,
"python-apt",
]
python_version = 3
# Ensure we use the right package for versioning
version_package = "workloadmgr"
@ -407,12 +406,24 @@ class TrilioWLMCharm(charms_openstack.plugins.TrilioVaultCharm,
return 'workloadmgr'
class TrilioWLMCharmUssuri40(TrilioWLMCharm):
class TrilioWLMCharmStein41(
TrilioWLMBaseCharm, charms_openstack.plugins.TrilioVaultCharmGhostAction
):
release = "stein"
trilio_release = "4.1"
python_version = 2
# First release supported
release = "ussuri"
trilio_release = "4.0"
python_version = 3
class TrilioWLMCharmStein42(
TrilioWLMBaseCharm, charms_openstack.plugins.TrilioVault42CharmGhostAction
):
release = "stein"
trilio_release = "4.2"
class TrilioWLMCharmUssuri41Base(TrilioWLMBaseCharm):
abstract_class = True
base_packages = [
"linux-image-virtual", # Used for libguestfs supermin appliance
@ -427,8 +438,19 @@ class TrilioWLMCharmUssuri40(TrilioWLMCharm):
]
class TrilioWLMCharmUssuri41(TrilioWLMCharmUssuri40):
class TrilioWLMCharmUssuri41(
TrilioWLMCharmUssuri41Base,
charms_openstack.plugins.TrilioVaultCharmGhostAction
):
# First release supported
release = "ussuri"
trilio_release = "4.1"
class TrilioWLMCharmUssuri42(
TrilioWLMCharmUssuri41Base,
charms_openstack.plugins.TrilioVault42CharmGhostAction
):
# First release supported
release = "ussuri"
trilio_release = "4.2"

View File

@ -88,6 +88,11 @@ vault_s3_bucket = {{ options.tv_s3_bucket }}
vault_s3_endpoint_url = {{ options.tv_s3_endpoint_url }}
{% endif -%}
{% if options.trilio_properties.trilio_compat_version >= 4.2 %}
barbican_api_class = workloadmgr.keymanager.barbican.API
progress_tracking_update_interval = {{ options.progress_tracking_update_interval }}
{% endif -%}
{% if identity_service.auth_host -%}
# NOTE(jamespage): Trilio needs versioned endpoints in the keystone_authtoken section
# as well as a load of other deprecreated/legacy configuration options
@ -126,3 +131,6 @@ client_retry_limit = {{ options.client_retry_limit }}
[global_job_scheduler]
misfire_grace_time = {{ options.misfire_grace_time }}
[filesearch]
process_timeout = {{ options.process_timeout }}

View File

@ -7,7 +7,7 @@ variables:
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
trilio-openstack-origin: &trilio-openstack-origin 'cloud:bionic-stein'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-0/ /'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-2/ /'
series: &series bionic

View File

@ -1,250 +0,0 @@
variables:
openstack-origin: &openstack-origin 'cloud:bionic-stein'
openstack-charm-channel: &openstack-charm-channel 'stein/edge'
ceph-charm-channel: &ceph-charm-channel 'octopus/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.8/edge'
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-0/ /'
series: &series bionic
relations:
- - 'nova-compute:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp-nova'
- 'rabbitmq-server:amqp'
- - 'keystone:shared-db'
- 'mysql:shared-db'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:identity-service'
- 'keystone:identity-service'
- - 'glance:identity-service'
- 'keystone:identity-service'
- - 'neutron-api:identity-service'
- 'keystone:identity-service'
- - 'neutron-openvswitch:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'cinder:shared-db'
- 'mysql:shared-db'
- - 'neutron-api:shared-db'
- 'mysql:shared-db'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'glance:shared-db'
- 'mysql:shared-db'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:image-service'
- 'glance:image-service'
- - 'nova-compute:image-service'
- 'glance:image-service'
- - 'nova-cloud-controller:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:quantum-network-service'
- 'neutron-gateway:quantum-network-service'
- - 'nova-compute:neutron-plugin'
- 'neutron-openvswitch:neutron-plugin'
- - 'neutron-openvswitch:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'mysql:shared-db'
- - 'nova-cloud-controller:neutron-api'
- 'neutron-api:neutron-api'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'trilio-wlm:shared-db'
- 'mysql:shared-db'
- - 'trilio-wlm:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-wlm:identity-service'
- 'keystone:identity-service'
- - 'glance:ceph'
- 'ceph-mon:client'
- - 'ceph-mon:osd'
- 'ceph-osd:mon'
- - 'ceph-osd:secrets-storage'
- 'vault:secrets'
- - 'cinder:storage-backend'
- 'cinder-ceph:storage-backend'
- - 'cinder-ceph:ceph'
- 'ceph-mon:client'
- - 'cinder-ceph:ceph-access'
- 'nova-compute:ceph-access'
- - 'vault:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'keystone:certificates'
- - 'vault:certificates'
- 'neutron-api:certificates'
- - 'vault:certificates'
- 'cinder:certificates'
- - 'vault:certificates'
- 'glance:certificates'
- - 'vault:certificates'
- 'nova-cloud-controller:certificates'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'trilio-data-mover:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-data-mover:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-dm-api:identity-service'
- 'keystone:identity-service'
- - 'trilio-dm-api:shared-db'
- 'mysql:shared-db'
- - 'trilio-dm-api:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-dm-api:certificates'
- 'vault:certificates'
- - 'trilio-horizon-plugin:dashboard-plugin'
- 'openstack-dashboard:dashboard-plugin'
- - 'openstack-dashboard:identity-service'
- 'keystone:identity-service'
- - 'trilio-data-mover:ceph'
- 'ceph-mon:client'
- - 'trilio-data-mover:shared-db'
- 'mysql:shared-db'
applications:
glance:
charm: ch:glance
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
cinder:
charm: ch:cinder
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
block-device: "None"
glance-api-version: 2
keystone:
charm: ch:keystone
channel: *openstack-charm-channel
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin
admin-password: openstack
mysql:
charm: ch:percona-cluster
channel: *mysql-charm-channel
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
neutron-api:
charm: ch:neutron-api
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
neutron-gateway:
charm: ch:neutron-gateway
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
neutron-openvswitch:
charm: ch:neutron-openvswitch
channel: *openstack-charm-channel
num_units: 0
nova-cloud-controller:
charm: ch:nova-cloud-controller
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
network-manager: Neutron
debug: true
nova-compute:
charm: ch:nova-compute
channel: *openstack-charm-channel
num_units: 3
constraints: mem=4G
options:
openstack-origin: *openstack-origin
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
debug: true
cpu-model: kvm64
cpu-mode: custom
# Allow for more retries when testing ontop of openstack
config-flags: block_device_allocate_retries=120
rabbitmq-server:
charm: ch:rabbitmq-server
channel: *rabbit-charm-channel
num_units: 1
trilio-data-mover:
charm: ch:openstack-charmers-trilio-data-mover
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-dm-api:
charm: ch:openstack-charmers-trilio-dm-api
channel: *trilio-charm-channel
num_units: 1
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-horizon-plugin:
charm: ch:openstack-charmers-trilio-horizon-plugin
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-wlm:
charm: ../../../trilio-wlm.charm
series: bionic
num_units: 1
options:
triliovault-pkg-source: *triliovault-pkg-source
ceph-mon:
charm: ch:ceph-mon
channel: *ceph-charm-channel
num_units: 3
options:
source: *openstack-origin
expected-osd-count: 3
ceph-osd:
charm: ch:ceph-osd
channel: *ceph-charm-channel
constraints: mem=1G
num_units: 3
options:
source: *openstack-origin
osd-encrypt-keymanager: vault
osd-encrypt: True
storage:
osd-devices: cinder,40G
cinder-ceph:
charm: ch:cinder-ceph
channel: *openstack-charm-channel
vault:
charm: ch:vault
channel: *vault-charm-channel
num_units: 1
nfs-server-test-fixture:
charm: cs:~openstack-charmers-next/nfs-server-test-fixture
num_units: 1
storage:
share: cinder,40G
openstack-dashboard:
charm: ch:openstack-dashboard
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin

View File

@ -1,250 +0,0 @@
variables:
openstack-origin: &openstack-origin 'cloud:bionic-stein'
openstack-charm-channel: &openstack-charm-channel 'stein/edge'
ceph-charm-channel: &ceph-charm-channel 'octopus/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.8/edge'
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /'
series: &series bionic
relations:
- - 'nova-compute:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp-nova'
- 'rabbitmq-server:amqp'
- - 'keystone:shared-db'
- 'mysql:shared-db'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:identity-service'
- 'keystone:identity-service'
- - 'glance:identity-service'
- 'keystone:identity-service'
- - 'neutron-api:identity-service'
- 'keystone:identity-service'
- - 'neutron-openvswitch:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'cinder:shared-db'
- 'mysql:shared-db'
- - 'neutron-api:shared-db'
- 'mysql:shared-db'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'glance:shared-db'
- 'mysql:shared-db'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:image-service'
- 'glance:image-service'
- - 'nova-compute:image-service'
- 'glance:image-service'
- - 'nova-cloud-controller:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:quantum-network-service'
- 'neutron-gateway:quantum-network-service'
- - 'nova-compute:neutron-plugin'
- 'neutron-openvswitch:neutron-plugin'
- - 'neutron-openvswitch:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'mysql:shared-db'
- - 'nova-cloud-controller:neutron-api'
- 'neutron-api:neutron-api'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'trilio-wlm:shared-db'
- 'mysql:shared-db'
- - 'trilio-wlm:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-wlm:identity-service'
- 'keystone:identity-service'
- - 'glance:ceph'
- 'ceph-mon:client'
- - 'ceph-mon:osd'
- 'ceph-osd:mon'
- - 'ceph-osd:secrets-storage'
- 'vault:secrets'
- - 'cinder:storage-backend'
- 'cinder-ceph:storage-backend'
- - 'cinder-ceph:ceph'
- 'ceph-mon:client'
- - 'cinder-ceph:ceph-access'
- 'nova-compute:ceph-access'
- - 'vault:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'keystone:certificates'
- - 'vault:certificates'
- 'neutron-api:certificates'
- - 'vault:certificates'
- 'cinder:certificates'
- - 'vault:certificates'
- 'glance:certificates'
- - 'vault:certificates'
- 'nova-cloud-controller:certificates'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'trilio-data-mover:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-data-mover:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-dm-api:identity-service'
- 'keystone:identity-service'
- - 'trilio-dm-api:shared-db'
- 'mysql:shared-db'
- - 'trilio-dm-api:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-dm-api:certificates'
- 'vault:certificates'
- - 'trilio-horizon-plugin:dashboard-plugin'
- 'openstack-dashboard:dashboard-plugin'
- - 'openstack-dashboard:identity-service'
- 'keystone:identity-service'
- - 'trilio-data-mover:ceph'
- 'ceph-mon:client'
- - 'trilio-data-mover:shared-db'
- 'mysql:shared-db'
applications:
glance:
charm: ch:glance
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
cinder:
charm: ch:cinder
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
block-device: "None"
glance-api-version: 2
keystone:
charm: ch:keystone
channel: *openstack-charm-channel
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin
admin-password: openstack
mysql:
charm: ch:percona-cluster
channel: *mysql-charm-channel
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
neutron-api:
charm: ch:neutron-api
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
neutron-gateway:
charm: ch:neutron-gateway
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
neutron-openvswitch:
charm: ch:neutron-openvswitch
channel: *openstack-charm-channel
num_units: 0
nova-cloud-controller:
charm: ch:nova-cloud-controller
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
network-manager: Neutron
debug: true
nova-compute:
charm: ch:nova-compute
channel: *openstack-charm-channel
num_units: 3
constraints: mem=4G
options:
openstack-origin: *openstack-origin
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
debug: true
cpu-model: kvm64
cpu-mode: custom
# Allow for more retries when testing ontop of openstack
config-flags: block_device_allocate_retries=120
rabbitmq-server:
charm: ch:rabbitmq-server
channel: *rabbit-charm-channel
num_units: 1
trilio-data-mover:
charm: ch:openstack-charmers-trilio-data-mover
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-dm-api:
charm: ch:openstack-charmers-trilio-dm-api
channel: *trilio-charm-channel
num_units: 1
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-horizon-plugin:
charm: ch:openstack-charmers-trilio-horizon-plugin
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-wlm:
charm: ../../../trilio-wlm.charm
series: bionic
num_units: 1
options:
triliovault-pkg-source: *triliovault-pkg-source
ceph-mon:
charm: ch:ceph-mon
channel: *ceph-charm-channel
num_units: 3
options:
source: *openstack-origin
expected-osd-count: 3
ceph-osd:
charm: ch:ceph-osd
channel: *ceph-charm-channel
constraints: mem=1G
num_units: 3
options:
source: *openstack-origin
osd-encrypt-keymanager: vault
osd-encrypt: True
storage:
osd-devices: cinder,40G
cinder-ceph:
charm: ch:cinder-ceph
channel: *openstack-charm-channel
vault:
charm: ch:vault
channel: *vault-charm-channel
num_units: 1
nfs-server-test-fixture:
charm: cs:~openstack-charmers-next/nfs-server-test-fixture
num_units: 1
storage:
share: cinder,40G
openstack-dashboard:
charm: ch:openstack-dashboard
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin

View File

@ -1,267 +0,0 @@
variables:
openstack-origin: &openstack-origin 'cloud:bionic-train'
openstack-charm-channel: &openstack-charm-channel 'train/edge'
ceph-charm-channel: &ceph-charm-channel 'octopus/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.8/edge'
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-0/ /'
series: &series bionic
relations:
- - 'nova-compute:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp-nova'
- 'rabbitmq-server:amqp'
- - 'keystone:shared-db'
- 'mysql:shared-db'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:identity-service'
- 'keystone:identity-service'
- - 'glance:identity-service'
- 'keystone:identity-service'
- - 'neutron-api:identity-service'
- 'keystone:identity-service'
- - 'neutron-openvswitch:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'cinder:shared-db'
- 'mysql:shared-db'
- - 'neutron-api:shared-db'
- 'mysql:shared-db'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'glance:shared-db'
- 'mysql:shared-db'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:image-service'
- 'glance:image-service'
- - 'nova-compute:image-service'
- 'glance:image-service'
- - 'nova-cloud-controller:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:quantum-network-service'
- 'neutron-gateway:quantum-network-service'
- - 'nova-compute:neutron-plugin'
- 'neutron-openvswitch:neutron-plugin'
- - 'neutron-openvswitch:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'mysql:shared-db'
- - 'nova-cloud-controller:neutron-api'
- 'neutron-api:neutron-api'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'trilio-wlm:shared-db'
- 'mysql:shared-db'
- - 'trilio-wlm:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-wlm:identity-service'
- 'keystone:identity-service'
- - 'glance:ceph'
- 'ceph-mon:client'
- - 'ceph-mon:osd'
- 'ceph-osd:mon'
- - 'ceph-osd:secrets-storage'
- 'vault:secrets'
- - 'cinder:storage-backend'
- 'cinder-ceph:storage-backend'
- - 'cinder-ceph:ceph'
- 'ceph-mon:client'
- - 'cinder-ceph:ceph-access'
- 'nova-compute:ceph-access'
- - 'vault:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'keystone:certificates'
- - 'vault:certificates'
- 'neutron-api:certificates'
- - 'vault:certificates'
- 'cinder:certificates'
- - 'vault:certificates'
- 'glance:certificates'
- - 'vault:certificates'
- 'nova-cloud-controller:certificates'
- - 'placement:shared-db'
- 'mysql:shared-db'
- - 'placement:identity-service'
- 'keystone:identity-service'
- - 'placement:placement'
- 'nova-cloud-controller:placement'
- - 'vault:certificates'
- 'placement:certificates'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'trilio-data-mover:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-data-mover:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-dm-api:identity-service'
- 'keystone:identity-service'
- - 'trilio-dm-api:shared-db'
- 'mysql:shared-db'
- - 'trilio-dm-api:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-dm-api:certificates'
- 'vault:certificates'
- - 'trilio-horizon-plugin:dashboard-plugin'
- 'openstack-dashboard:dashboard-plugin'
- - 'openstack-dashboard:identity-service'
- 'keystone:identity-service'
- - 'trilio-data-mover:ceph'
- 'ceph-mon:client'
- - 'trilio-data-mover:shared-db'
- 'mysql:shared-db'
applications:
glance:
charm: ch:glance
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
cinder:
charm: ch:cinder
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
block-device: "None"
glance-api-version: 2
keystone:
charm: ch:keystone
channel: *openstack-charm-channel
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin
admin-password: openstack
mysql:
charm: ch:percona-cluster
channel: *mysql-charm-channel
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
neutron-api:
charm: ch:neutron-api
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
neutron-gateway:
charm: ch:neutron-gateway
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
bridge-mappings: physnet1:br-ex
neutron-openvswitch:
charm: ch:neutron-openvswitch
channel: *openstack-charm-channel
num_units: 0
nova-cloud-controller:
charm: ch:nova-cloud-controller
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
network-manager: Neutron
debug: true
nova-compute:
charm: ch:nova-compute
channel: *openstack-charm-channel
num_units: 3
constraints: mem=4G
options:
openstack-origin: *openstack-origin
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
debug: true
cpu-model: kvm64
cpu-mode: custom
# Allow for more retries when testing ontop of openstack
config-flags: block_device_allocate_retries=120
rabbitmq-server:
charm: ch:rabbitmq-server
channel: *rabbit-charm-channel
num_units: 1
trilio-data-mover:
charm: ch:openstack-charmers-trilio-data-mover
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-dm-api:
charm: ch:openstack-charmers-trilio-dm-api
channel: *trilio-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
triliovault-pkg-source: *triliovault-pkg-source
trilio-horizon-plugin:
charm: ch:openstack-charmers-trilio-horizon-plugin
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
trilio-wlm:
charm: ../../../trilio-wlm.charm
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin
triliovault-pkg-source: *triliovault-pkg-source
ceph-mon:
charm: ch:ceph-mon
channel: *ceph-charm-channel
num_units: 3
options:
source: *openstack-origin
expected-osd-count: 3
ceph-osd:
charm: ch:ceph-osd
channel: *ceph-charm-channel
constraints: mem=1G
num_units: 3
options:
source: *openstack-origin
osd-encrypt-keymanager: vault
osd-encrypt: True
storage:
osd-devices: cinder,40G
cinder-ceph:
charm: ch:cinder-ceph
channel: *openstack-charm-channel
vault:
charm: ch:vault
channel: *vault-charm-channel
num_units: 1
placement:
charm: ch:placement
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin
nfs-server-test-fixture:
charm: cs:~openstack-charmers-next/nfs-server-test-fixture
num_units: 1
storage:
share: cinder,40G
openstack-dashboard:
charm: ch:openstack-dashboard
channel: *openstack-charm-channel
num_units: 1
options:
openstack-origin: *openstack-origin

View File

@ -6,7 +6,7 @@ variables:
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-2/ /'
series: &series bionic

View File

@ -1,14 +1,14 @@
variables:
openstack-origin: &openstack-origin 'cloud:bionic-train'
openstack-charm-channel: &openstack-charm-channel 'train/edge'
openstack-origin: &openstack-origin distro
openstack-charm-channel: &openstack-charm-channel 'ussuri/edge'
ceph-charm-channel: &ceph-charm-channel 'octopus/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.8/edge'
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.9/edge'
mysql-charm-channel: &mysql-charm-channel '8.0/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-2/ /'
series: &series bionic
series: &series focal
relations:
- - 'nova-compute:amqp'
@ -17,8 +17,6 @@ relations:
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp-nova'
- 'rabbitmq-server:amqp'
- - 'keystone:shared-db'
- 'mysql:shared-db'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:identity-service'
@ -29,18 +27,12 @@ relations:
- 'keystone:identity-service'
- - 'neutron-openvswitch:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'cinder:shared-db'
- 'mysql:shared-db'
- - 'neutron-api:shared-db'
- 'mysql:shared-db'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'glance:shared-db'
- 'mysql:shared-db'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:image-service'
@ -55,14 +47,10 @@ relations:
- 'neutron-openvswitch:neutron-plugin'
- - 'neutron-openvswitch:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'mysql:shared-db'
- - 'nova-cloud-controller:neutron-api'
- 'neutron-api:neutron-api'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'trilio-wlm:shared-db'
- 'mysql:shared-db'
- - 'trilio-wlm:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-wlm:identity-service'
@ -79,8 +67,6 @@ relations:
- 'ceph-mon:client'
- - 'cinder-ceph:ceph-access'
- 'nova-compute:ceph-access'
- - 'vault:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'keystone:certificates'
- - 'vault:certificates'
@ -91,24 +77,20 @@ relations:
- 'glance:certificates'
- - 'vault:certificates'
- 'nova-cloud-controller:certificates'
- - 'placement:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'placement:identity-service'
- 'keystone:identity-service'
- - 'placement:placement'
- 'nova-cloud-controller:placement'
- - 'vault:certificates'
- 'placement:certificates'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'trilio-data-mover:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-data-mover:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-dm-api:identity-service'
- 'keystone:identity-service'
- - 'trilio-dm-api:shared-db'
- 'mysql:shared-db'
- - 'trilio-dm-api:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-dm-api:certificates'
@ -119,8 +101,53 @@ relations:
- 'keystone:identity-service'
- - 'trilio-data-mover:ceph'
- 'ceph-mon:client'
- - 'trilio-dm-api:shared-db'
- 'trilio-dm-api-mysql-router:shared-db'
- - 'trilio-dm-api-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'trilio-dm-mysql-router:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-data-mover:shared-db'
- 'mysql:shared-db'
- 'trilio-dm-mysql-router:shared-db'
- - 'trilio-dm-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'trilio-wlm:shared-db'
- 'trilio-wlm-mysql-router:shared-db'
- - 'trilio-wlm-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'cinder:shared-db'
- 'cinder-mysql-router:shared-db'
- - 'cinder-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'
- - 'glance:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'nova-cloud-controller:shared-db'
- 'nova-cloud-controller-mysql-router:shared-db'
- - 'nova-cloud-controller-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'vault:shared-db'
- 'vault-mysql-router:shared-db'
- - 'vault-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'ceph-radosgw:mon'
- 'ceph-mon:radosgw'
- - 'ceph-radosgw:identity-service'
@ -128,6 +155,42 @@ relations:
- - 'ceph-radosgw:certificates'
- 'vault:certificates'
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
cinder-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
neutron-api-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
glance-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
nova-cloud-controller-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-dm-api-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-dm-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-wlm-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
vault-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
placement-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
channel: *mysql-charm-channel
num_units: 3
options:
source: *openstack-origin
ceph-radosgw:
charm: ch:ceph-radosgw
channel: *ceph-charm-channel
@ -155,13 +218,6 @@ applications:
options:
openstack-origin: *openstack-origin
admin-password: openstack
mysql:
charm: ch:percona-cluster
channel: *mysql-charm-channel
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
neutron-api:
charm: ch:neutron-api
channel: *openstack-charm-channel
@ -170,6 +226,7 @@ applications:
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
manage-neutron-plugin-legacy-mode: True
neutron-gateway:
charm: ch:neutron-gateway
channel: *openstack-charm-channel
@ -214,7 +271,7 @@ applications:
channel: *trilio-charm-channel
options:
triliovault-pkg-source: *triliovault-pkg-source
backup-target-type: experimental-s3
backup-target-type: s3
trilio-dm-api:
charm: ch:openstack-charmers-trilio-dm-api
channel: *trilio-charm-channel
@ -256,9 +313,9 @@ applications:
charm: ch:cinder-ceph
channel: *openstack-charm-channel
vault:
num_units: 1
charm: ch:vault
channel: *vault-charm-channel
num_units: 1
placement:
charm: ch:placement
channel: *openstack-charm-channel

View File

@ -1,15 +1,14 @@
variables:
openstack-origin: &openstack-origin 'cloud:bionic-train'
openstack-charm-channel: &openstack-charm-channel 'train/edge'
openstack-origin: &openstack-origin distro
openstack-charm-channel: &openstack-charm-channel 'ussuri/edge'
ceph-charm-channel: &ceph-charm-channel 'octopus/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.8/edge'
mysql-charm-channel: &mysql-charm-channel '5.7/edge'
rabbit-charm-channel: &rabbit-charm-channel '3.9/edge'
mysql-charm-channel: &mysql-charm-channel '8.0/edge'
vault-charm-channel: &vault-charm-channel '1.7/edge'
trilio-charm-channel: &trilio-charm-channel 'latest/stable'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /'
triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-2/ /'
series: &series bionic
series: &series focal
relations:
- - 'nova-compute:amqp'
@ -18,8 +17,6 @@ relations:
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:amqp-nova'
- 'rabbitmq-server:amqp'
- - 'keystone:shared-db'
- 'mysql:shared-db'
- - 'cinder:identity-service'
- 'keystone:identity-service'
- - 'nova-cloud-controller:identity-service'
@ -30,18 +27,12 @@ relations:
- 'keystone:identity-service'
- - 'neutron-openvswitch:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'cinder:shared-db'
- 'mysql:shared-db'
- - 'neutron-api:shared-db'
- 'mysql:shared-db'
- - 'cinder:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-api:amqp'
- 'rabbitmq-server:amqp'
- - 'neutron-gateway:neutron-plugin-api'
- 'neutron-api:neutron-plugin-api'
- - 'glance:shared-db'
- 'mysql:shared-db'
- - 'glance:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:image-service'
@ -56,14 +47,10 @@ relations:
- 'neutron-openvswitch:neutron-plugin'
- - 'neutron-openvswitch:amqp'
- 'rabbitmq-server:amqp'
- - 'nova-cloud-controller:shared-db'
- 'mysql:shared-db'
- - 'nova-cloud-controller:neutron-api'
- 'neutron-api:neutron-api'
- - 'nova-cloud-controller:cloud-compute'
- 'nova-compute:cloud-compute'
- - 'trilio-wlm:shared-db'
- 'mysql:shared-db'
- - 'trilio-wlm:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-wlm:identity-service'
@ -80,8 +67,6 @@ relations:
- 'ceph-mon:client'
- - 'cinder-ceph:ceph-access'
- 'nova-compute:ceph-access'
- - 'vault:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'keystone:certificates'
- - 'vault:certificates'
@ -92,24 +77,20 @@ relations:
- 'glance:certificates'
- - 'vault:certificates'
- 'nova-cloud-controller:certificates'
- - 'placement:shared-db'
- 'mysql:shared-db'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'placement:identity-service'
- 'keystone:identity-service'
- - 'placement:placement'
- 'nova-cloud-controller:placement'
- - 'vault:certificates'
- 'placement:certificates'
- - 'vault:certificates'
- 'trilio-wlm:certificates'
- - 'trilio-data-mover:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-data-mover:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-dm-api:identity-service'
- 'keystone:identity-service'
- - 'trilio-dm-api:shared-db'
- 'mysql:shared-db'
- - 'trilio-dm-api:amqp'
- 'rabbitmq-server:amqp'
- - 'trilio-dm-api:certificates'
@ -120,9 +101,89 @@ relations:
- 'keystone:identity-service'
- - 'trilio-data-mover:ceph'
- 'ceph-mon:client'
- - 'trilio-dm-api:shared-db'
- 'trilio-dm-api-mysql-router:shared-db'
- - 'trilio-dm-api-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'trilio-dm-mysql-router:juju-info'
- 'nova-compute:juju-info'
- - 'trilio-data-mover:shared-db'
- 'mysql:shared-db'
- 'trilio-dm-mysql-router:shared-db'
- - 'trilio-dm-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'trilio-wlm:shared-db'
- 'trilio-wlm-mysql-router:shared-db'
- - 'trilio-wlm-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'keystone:shared-db'
- 'keystone-mysql-router:shared-db'
- - 'keystone-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'cinder:shared-db'
- 'cinder-mysql-router:shared-db'
- - 'cinder-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'
- - 'glance:shared-db'
- 'glance-mysql-router:shared-db'
- - 'glance-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'nova-cloud-controller:shared-db'
- 'nova-cloud-controller-mysql-router:shared-db'
- - 'nova-cloud-controller-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'vault:shared-db'
- 'vault-mysql-router:shared-db'
- - 'vault-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
- - 'placement:shared-db'
- 'placement-mysql-router:shared-db'
- - 'placement-mysql-router:db-router'
- 'mysql-innodb-cluster:db-router'
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
cinder-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
neutron-api-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
glance-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
nova-cloud-controller-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-dm-api-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-dm-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
trilio-wlm-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
vault-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
placement-mysql-router:
charm: ch:mysql-router
channel: *mysql-charm-channel
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
channel: *mysql-charm-channel
num_units: 3
options:
source: *openstack-origin
glance:
charm: ch:glance
channel: *openstack-charm-channel
@ -140,18 +201,10 @@ applications:
keystone:
charm: ch:keystone
channel: *openstack-charm-channel
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin
admin-password: openstack
mysql:
charm: ch:percona-cluster
channel: *mysql-charm-channel
num_units: 1
options:
innodb-buffer-pool-size: 256M
max-connections: 1000
neutron-api:
charm: ch:neutron-api
channel: *openstack-charm-channel
@ -160,6 +213,7 @@ applications:
openstack-origin: *openstack-origin
flat-network-providers: physnet1
neutron-security-groups: true
manage-neutron-plugin-legacy-mode: True
neutron-gateway:
charm: ch:neutron-gateway
channel: *openstack-charm-channel
@ -218,7 +272,6 @@ applications:
triliovault-pkg-source: *triliovault-pkg-source
trilio-wlm:
charm: ../../../trilio-wlm.charm
series: bionic
num_units: 1
options:
openstack-origin: *openstack-origin

View File

@ -22,17 +22,14 @@ configure:
- zaza.openstack.charm_tests.nova.setup.create_flavors
- zaza.openstack.charm_tests.nova.setup.manage_ssh_key
gate_bundles:
- s3: bionic-train-41-s3
- bionic-stein-40
- bionic-stein-41
- bionic-train-40
- bionic-train-41
- bionic-ussuri-41
- s3: focal-ussuri-42-s3
- focal-ussuri-42
- focal-ussuri-41
- bionic-queens-40
- bionic-ussuri-42
- bionic-queens-42
- bionic-queens-41
smoke_bundles:
- s3: bionic-train-41-s3
- focal-ussuri-42
target_deploy_status:
vault:
workload-status: blocked

View File

@ -20,5 +20,5 @@ netaddr==0.7.19
setuptools_scm==1.17.0
MarkupSafe==1.1.1
git+https://github.com/juju/charm-helpers.git@d404354d1d350e66dcb43bdb5a72c504583497f9#egg=charmhelpers
git+https://opendev.org/openstack/charms.openstack.git@6c8eb01162edef5e3f8e3af6cb90905e8b2a3065#egg=charms.openstack
git+https://opendev.org/openstack/charms.openstack.git#egg=charms.openstack

View File

@ -18,14 +18,84 @@ import mock
import charm.openstack.trilio_wlm as trilio_wlm
import charms_openstack.test_utils as test_utils
import charms_openstack.charm.core as co_core
import charms_openstack.plugins.trilio as co_trilio
class Helper(test_utils.PatchHelper):
def setUp(self):
super().setUp()
self.patch_release(trilio_wlm.TrilioWLMCharm.release)
self.patch_release(trilio_wlm.TrilioWLMBaseCharm.release)
class TestTrilioWLMCharmAdapterProperties(Helper):
class TestTrilioWLM(test_utils.PatchHelper):
def test_selector(self):
_safe_gcif = co_core._get_charm_instance_function
save_releases = co_trilio._trilio_releases
co_core._get_charm_instance_function = None
self.patch_object(co_trilio.fetch.apt_pkg, 'version_compare')
def _version_compare(ver1, ver2):
if float(ver1) > float(ver2):
return 1
elif float(ver1) < float(ver2):
return -1
else:
return 0
self.version_compare.side_effect = _version_compare
co_trilio.make_trilio_get_charm_instance_handler()
test_endpoint = 'nfs://10.0.0.10:2049/mypath'
pre_42_encode = 'bmZzOi8vMTAuMC4wLjEwOjIwNDkvbXlwYXRo'
post_42_encode = 'L215cGF0aA=='
charm_class = co_core.get_charm_instance(release='stein_4.1')
self.assertEqual(
charm_class.python_version,
2)
self.assertIn('python3-workloadmgrclient', charm_class.base_packages)
self.assertNotIn('python3-retrying', charm_class.base_packages)
self.assertEqual(
charm_class._encode_endpoint(test_endpoint),
pre_42_encode)
charm_class = co_core.get_charm_instance(release='stein_4.2')
self.assertEqual(
charm_class.python_version,
3)
self.assertIn('python3-workloadmgrclient', charm_class.base_packages)
self.assertNotIn('python3-retrying', charm_class.base_packages)
self.assertEqual(
charm_class._encode_endpoint(test_endpoint),
post_42_encode)
charm_class = co_core.get_charm_instance(release='ussuri_4.1')
self.assertEqual(
charm_class.python_version,
3)
self.assertIn('python3-workloadmgrclient', charm_class.base_packages)
self.assertIn('python3-retrying', charm_class.base_packages)
self.assertEqual(
charm_class._encode_endpoint(test_endpoint),
pre_42_encode)
charm_class = co_core.get_charm_instance(release='ussuri_4.2')
self.assertEqual(
charm_class.python_version,
3)
self.assertIn('python3-workloadmgrclient', charm_class.base_packages)
self.assertIn('python3-retrying', charm_class.base_packages)
self.assertEqual(
charm_class._encode_endpoint(test_endpoint),
post_42_encode)
co_trilio._trilio_releases = save_releases
co_core._get_charm_instance_function = _safe_gcif
class TestTrilioWLMCharmStein41AdapterProperties(Helper):
_endpoints = {
"neutron": {"internal": "http://neutron-controller"},
@ -58,7 +128,7 @@ class TestTrilioWLMCharmAdapterProperties(Helper):
)
class TestTrilioWLMCharmTrustActions(Helper):
class TestTrilioWLMCharmStein41TrustActions(Helper):
def test_create_trust(self):
identity_service = mock.MagicMock()
identity_service.admin_domain_id.return_value = (
@ -74,7 +144,7 @@ class TestTrilioWLMCharmTrustActions(Helper):
self.patch_object(trilio_wlm.subprocess, "check_call")
self.patch_object(trilio_wlm.hookenv, "config")
self.config.return_value = "TestRegionA"
trilio_wlm_charm = trilio_wlm.TrilioWLMCharm()
trilio_wlm_charm = trilio_wlm.TrilioWLMCharmStein41()
trilio_wlm_charm.create_trust(identity_service, "test-ca-password")
self.config.assert_called_with("region")
self.check_call.assert_called_with(
@ -106,12 +176,12 @@ class TestTrilioWLMCharmTrustActions(Helper):
def test_create_trust_not_ready(self):
identity_service = mock.MagicMock()
identity_service.base_data_complete.return_value = False
trilio_wlm_charm = trilio_wlm.TrilioWLMCharm()
trilio_wlm_charm = trilio_wlm.TrilioWLMCharmStein41()
with self.assertRaises(trilio_wlm.IdentityServiceIncompleteException):
trilio_wlm_charm.create_trust(identity_service, "test-ca-password")
class TestTrilioWLMCharmLicenseActions(Helper):
class TestTrilioWLMCharmStein41LicenseActions(Helper):
def test_create_license(self):
identity_service = mock.MagicMock()
identity_service.service_domain_id.return_value = (
@ -131,7 +201,7 @@ class TestTrilioWLMCharmLicenseActions(Helper):
self.patch_object(trilio_wlm.hookenv, "resource_get")
self.config.return_value = "TestRegionA"
self.resource_get.return_value = "/var/lib/charm/license.lic"
trilio_wlm_charm = trilio_wlm.TrilioWLMCharm()
trilio_wlm_charm = trilio_wlm.TrilioWLMCharmStein41()
trilio_wlm_charm.create_license(identity_service)
self.config.assert_called_with("region")
self.resource_get.assert_called_with("license")
@ -164,7 +234,7 @@ class TestTrilioWLMCharmLicenseActions(Helper):
identity_service.base_data_complete.return_value = False
self.patch_object(trilio_wlm.hookenv, "resource_get")
self.resource_get.return_value = False
trilio_wlm_charm = trilio_wlm.TrilioWLMCharm()
trilio_wlm_charm = trilio_wlm.TrilioWLMCharmStein41()
with self.assertRaises(trilio_wlm.LicenseFileMissingException):
trilio_wlm_charm.create_license(identity_service)
@ -173,6 +243,6 @@ class TestTrilioWLMCharmLicenseActions(Helper):
identity_service.base_data_complete.return_value = False
self.patch_object(trilio_wlm.hookenv, "resource_get")
self.resource_get.return_value = "/var/lib/charm/license.lic"
trilio_wlm_charm = trilio_wlm.TrilioWLMCharm()
trilio_wlm_charm = trilio_wlm.TrilioWLMCharmStein41()
with self.assertRaises(trilio_wlm.IdentityServiceIncompleteException):
trilio_wlm_charm.create_license(identity_service)