Ensure that we restart nfs-ganesha and manila share after config.
Recent changes to manila-ganesha broke how non-HA deployments were configured, causing the manila-share and nfs-ganesha processes to potentially start before the config for them is correctly prepared. This change ensures that these services are restarted once their config is ready. Change-Id: I4e63e64612554d74ffaca5c4e07b90f7ceb88d59
This commit is contained in:

committed by
Aurelien Lourot

parent
dd0a450e7f
commit
8724a06d13
@@ -5,6 +5,7 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- bionic-ussuri
|
- bionic-ussuri
|
||||||
- focal-ussuri
|
- focal-ussuri
|
||||||
|
- ganesha-focal-ussuri-non-ha
|
||||||
- focal-victoria
|
- focal-victoria
|
||||||
# Wallaby is currently broken because of a change in the
|
# Wallaby is currently broken because of a change in the
|
||||||
# default token-type requirements in manila's policy.json
|
# default token-type requirements in manila's policy.json
|
||||||
@@ -14,3 +15,10 @@
|
|||||||
vars:
|
vars:
|
||||||
needs_charm_build: true
|
needs_charm_build: true
|
||||||
charm_build_name: manila-ganesha
|
charm_build_name: manila-ganesha
|
||||||
|
- job:
|
||||||
|
name: ganesha-focal-ussuri-non-ha
|
||||||
|
parent: bionic-ussuri
|
||||||
|
dependencies:
|
||||||
|
- bionic-ussuri
|
||||||
|
vars:
|
||||||
|
tox_extra_args: focal-ussuri-non-ha
|
@@ -76,13 +76,17 @@ def render_things(*args):
|
|||||||
charm_instance.assess_status()
|
charm_instance.assess_status()
|
||||||
|
|
||||||
|
|
||||||
@reactive.when('config.rendered')
|
@reactive.when('config.rendered',
|
||||||
@reactive.when_not('cluster.connected')
|
'ganesha-pool-configured')
|
||||||
|
@reactive.when_not('cluster.connected',
|
||||||
|
'services-started')
|
||||||
def enable_services_in_non_ha():
|
def enable_services_in_non_ha():
|
||||||
with charm.provide_charm_instance() as charm_instance:
|
with charm.provide_charm_instance() as charm_instance:
|
||||||
for service in charm_instance.services:
|
for service in charm_instance.service_to_resource_map.keys():
|
||||||
ch_core.host.service('enable', service)
|
ch_core.host.service('enable', service)
|
||||||
|
ch_core.host.service('stop', service)
|
||||||
ch_core.host.service('start', service)
|
ch_core.host.service('start', service)
|
||||||
|
reactive.set_flag('services-started')
|
||||||
|
|
||||||
|
|
||||||
@reactive.when_all('config.rendered',
|
@reactive.when_all('config.rendered',
|
||||||
@@ -119,7 +123,7 @@ def cluster_connected(hacluster):
|
|||||||
# once
|
# once
|
||||||
# https://bugs.launchpad.net/charm-interface-hacluster/+bug/1880644
|
# https://bugs.launchpad.net/charm-interface-hacluster/+bug/1880644
|
||||||
# is resolved
|
# is resolved
|
||||||
import hooks.relations.hacluster.common as hacluster_common # noqa
|
import relations.hacluster.interface_hacluster.common as hacluster_common # noqa
|
||||||
crm = hacluster_common.CRM()
|
crm = hacluster_common.CRM()
|
||||||
crm.colocation('ganesha_with_vip',
|
crm.colocation('ganesha_with_vip',
|
||||||
'inf',
|
'inf',
|
||||||
|
307
src/tests/bundles/focal-ussuri-non-ha.yaml
Normal file
307
src/tests/bundles/focal-ussuri-non-ha.yaml
Normal file
@@ -0,0 +1,307 @@
|
|||||||
|
variables:
|
||||||
|
openstack-origin: &openstack-origin distro
|
||||||
|
|
||||||
|
local_overlay_enabled: false
|
||||||
|
|
||||||
|
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':
|
||||||
|
'8':
|
||||||
|
'9':
|
||||||
|
'10':
|
||||||
|
'11':
|
||||||
|
'12':
|
||||||
|
'13':
|
||||||
|
'14':
|
||||||
|
constraints: mem=8G
|
||||||
|
'15':
|
||||||
|
constraints: mem=8G
|
||||||
|
'16':
|
||||||
|
'17':
|
||||||
|
'18':
|
||||||
|
'19':
|
||||||
|
'20':
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
manila-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
manila-ganesha-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
keystone-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
neutron-api-mysql-router:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-router
|
||||||
|
nova-cloud-controller-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
|
||||||
|
|
||||||
|
mysql-innodb-cluster:
|
||||||
|
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
|
||||||
|
num_units: 3
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '0'
|
||||||
|
- '1'
|
||||||
|
- '2'
|
||||||
|
|
||||||
|
manila-ganesha:
|
||||||
|
num_units: 1
|
||||||
|
charm: ../../../manila-ganesha
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '3'
|
||||||
|
|
||||||
|
ceph-mon:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-mon
|
||||||
|
num_units: 3
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '4'
|
||||||
|
- '5'
|
||||||
|
|
||||||
|
ceph-osd:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-osd
|
||||||
|
num_units: 3
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
storage:
|
||||||
|
osd-devices: 'cinder,10G'
|
||||||
|
to:
|
||||||
|
- '6'
|
||||||
|
- '7'
|
||||||
|
- '8'
|
||||||
|
|
||||||
|
ceph-fs:
|
||||||
|
charm: cs:~openstack-charmers-next/ceph-fs
|
||||||
|
num_units: 2
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '9'
|
||||||
|
- '10'
|
||||||
|
|
||||||
|
manila:
|
||||||
|
charm: cs:~openstack-charmers-next/manila
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
default-share-backend: cephfsnfs1
|
||||||
|
share-protocols: NFS
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '11'
|
||||||
|
|
||||||
|
nova-cloud-controller:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-cloud-controller
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
network-manager: Neutron
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '12'
|
||||||
|
|
||||||
|
placement:
|
||||||
|
charm: cs:~openstack-charmers-next/placement
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '13'
|
||||||
|
|
||||||
|
nova-compute:
|
||||||
|
charm: cs:~openstack-charmers-next/nova-compute
|
||||||
|
num_units: 2
|
||||||
|
options:
|
||||||
|
config-flags: default_ephemeral_format=ext4
|
||||||
|
enable-live-migration: true
|
||||||
|
enable-resize: true
|
||||||
|
migration-auth-type: ssh
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '14'
|
||||||
|
- '15'
|
||||||
|
|
||||||
|
glance:
|
||||||
|
charm: cs:~openstack-charmers-next/glance
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '16'
|
||||||
|
|
||||||
|
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
|
||||||
|
to:
|
||||||
|
- '17'
|
||||||
|
|
||||||
|
neutron-openvswitch:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-openvswitch
|
||||||
|
|
||||||
|
neutron-gateway:
|
||||||
|
charm: cs:~openstack-charmers-next/neutron-gateway
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
bridge-mappings: physnet1:br-ex
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '18'
|
||||||
|
|
||||||
|
rabbitmq-server:
|
||||||
|
charm: cs:~openstack-charmers-next/rabbitmq-server
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
source: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '19'
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
charm: cs:~openstack-charmers-next/keystone
|
||||||
|
num_units: 1
|
||||||
|
options:
|
||||||
|
openstack-origin: *openstack-origin
|
||||||
|
to:
|
||||||
|
- '20'
|
||||||
|
|
||||||
|
relations:
|
||||||
|
|
||||||
|
- - 'ceph-mon'
|
||||||
|
- 'ceph-osd'
|
||||||
|
|
||||||
|
- - 'ceph-mon'
|
||||||
|
- 'ceph-fs'
|
||||||
|
|
||||||
|
- - 'ceph-mon'
|
||||||
|
- 'manila-ganesha'
|
||||||
|
|
||||||
|
- - 'manila:shared-db'
|
||||||
|
- 'manila-mysql-router:shared-db'
|
||||||
|
- - 'manila-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'manila-ganesha'
|
||||||
|
- 'rabbitmq-server'
|
||||||
|
|
||||||
|
- - 'manila-ganesha'
|
||||||
|
- 'keystone'
|
||||||
|
|
||||||
|
- - 'manila'
|
||||||
|
- 'manila-ganesha'
|
||||||
|
|
||||||
|
- - 'manila-ganesha:shared-db'
|
||||||
|
- 'manila-ganesha-mysql-router:shared-db'
|
||||||
|
- - 'manila-ganesha-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'manila'
|
||||||
|
- 'rabbitmq-server'
|
||||||
|
|
||||||
|
- - 'manila'
|
||||||
|
- 'keystone'
|
||||||
|
|
||||||
|
- - '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:neutron-api'
|
||||||
|
- 'nova-cloud-controller:neutron-api'
|
||||||
|
|
||||||
|
- - 'placement:placement'
|
||||||
|
- 'nova-cloud-controller:placement'
|
||||||
|
|
||||||
|
- - 'placement:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'placement:shared-db'
|
||||||
|
- 'placement-mysql-router:shared-db'
|
||||||
|
- - 'placement-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'placement:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - 'neutron-api:neutron-plugin-api'
|
||||||
|
- 'neutron-gateway:neutron-plugin-api'
|
||||||
|
|
||||||
|
- - 'neutron-api:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - 'nova-compute:neutron-plugin'
|
||||||
|
- 'neutron-openvswitch:neutron-plugin'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:shared-db'
|
||||||
|
- 'nova-cloud-controller-mysql-router:shared-db'
|
||||||
|
- - 'nova-cloud-controller-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'neutron-gateway:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'nova-compute:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'neutron-openvswitch:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:cloud-compute'
|
||||||
|
- 'nova-compute:cloud-compute'
|
||||||
|
|
||||||
|
- - 'glance:identity-service'
|
||||||
|
- 'keystone:identity-service'
|
||||||
|
|
||||||
|
- - 'glance:shared-db'
|
||||||
|
- 'glance-mysql-router:shared-db'
|
||||||
|
- - 'glance-mysql-router:db-router'
|
||||||
|
- 'mysql-innodb-cluster:db-router'
|
||||||
|
|
||||||
|
- - 'glance:amqp'
|
||||||
|
- 'rabbitmq-server:amqp'
|
||||||
|
|
||||||
|
- - 'nova-compute:image-service'
|
||||||
|
- 'glance:image-service'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:image-service'
|
||||||
|
- 'glance:image-service'
|
||||||
|
|
||||||
|
- - 'nova-cloud-controller:quantum-network-service'
|
||||||
|
- 'neutron-gateway:quantum-network-service'
|
@@ -46,14 +46,16 @@ class TestRegisteredHooks(test_utils.TestRegisteredHooks):
|
|||||||
'cluster_connected': ('ha.connected',
|
'cluster_connected': ('ha.connected',
|
||||||
'ganesha-pool-configured',
|
'ganesha-pool-configured',
|
||||||
'config.rendered',),
|
'config.rendered',),
|
||||||
'enable_services_in_non_ha': ('config.rendered',),
|
'enable_services_in_non_ha': ('config.rendered',
|
||||||
|
'ganesha-pool-configured',),
|
||||||
'disable_services': ('cluster.connected',),
|
'disable_services': ('cluster.connected',),
|
||||||
},
|
},
|
||||||
'when_not': {
|
'when_not': {
|
||||||
'ceph_connected': ('ganesha-pool-configured',),
|
'ceph_connected': ('ganesha-pool-configured',),
|
||||||
'configure_ident_username': ('identity-service.available',),
|
'configure_ident_username': ('identity-service.available',),
|
||||||
'configure_ganesha': ('ganesha-pool-configured',),
|
'configure_ganesha': ('ganesha-pool-configured',),
|
||||||
'enable_services_in_non_ha': ('cluster.connected',),
|
'enable_services_in_non_ha': ('cluster.connected',
|
||||||
|
'services-started',),
|
||||||
'cluster_connected': ('ha-resources-exposed',),
|
'cluster_connected': ('ha-resources-exposed',),
|
||||||
'disable_services': ('services-disabled',),
|
'disable_services': ('services-disabled',),
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user