diff --git a/charms/cinder-k8s/metadata.yaml b/charms/cinder-k8s/metadata.yaml index b548a277..1a5279c5 100644 --- a/charms/cinder-k8s/metadata.yaml +++ b/charms/cinder-k8s/metadata.yaml @@ -41,10 +41,10 @@ requires: limit: 1 ingress-internal: interface: ingress + optional: true limit: 1 ingress-public: interface: ingress - optional: true limit: 1 identity-service: interface: keystone @@ -55,6 +55,7 @@ requires: interface: cinder-backend image-service: interface: glance + optional: true provides: ceph-access: diff --git a/charms/cinder-k8s/src/charm.py b/charms/cinder-k8s/src/charm.py index a3fbcdef..d164df22 100755 --- a/charms/cinder-k8s/src/charm.py +++ b/charms/cinder-k8s/src/charm.py @@ -141,6 +141,14 @@ class CinderOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm): wsgi_admin_script = "/usr/bin/cinder-wsgi-admin" wsgi_public_script = "/usr/bin/cinder-wsgi-public" + mandatory_relations = { + 'database', + 'amqp', + 'storage-backend', + 'identity-service', + 'ingress-public', + } + def __init__(self, framework): super().__init__(framework) self._state.set_default(admin_domain_name="admin_domain") @@ -155,7 +163,10 @@ class CinderOperatorCharm(sunbeam_charm.OSBaseOperatorAPICharm): handlers = handlers or [] if self.can_add_handler("storage-backend", handlers): self.sb_svc = StorageBackendRequiresHandler( - self, "storage-backend", self.configure_charm + self, + "storage-backend", + self.configure_charm, + "storage-backend" in self.mandatory_relations, ) handlers.append(self.sb_svc) handlers = super().get_relation_handlers(handlers) diff --git a/charms/cinder-k8s/src/templates/api-paste.ini.j2 b/charms/cinder-k8s/src/templates/api-paste.ini.j2 index 7ae775b9..61c3c31c 100644 --- a/charms/cinder-k8s/src/templates/api-paste.ini.j2 +++ b/charms/cinder-k8s/src/templates/api-paste.ini.j2 @@ -3,9 +3,9 @@ use = call:cinder.api:root_app_factory /: apiversions /healthcheck: healthcheck /v3: openstack_volume_api_v3 -{% if ingress_internal.ingress_path -%} -{{ ingress_internal.ingress_path }}: apiversions -{{ ingress_internal.ingress_path }}/v3: openstack_volume_api_v3 +{% if ingress_public.ingress_path -%} +{{ ingress_public.ingress_path }}: apiversions +{{ ingress_public.ingress_path }}/v3: openstack_volume_api_v3 {% endif -%} [composite:openstack_volume_api_v3] diff --git a/charms/cinder-k8s/src/templates/wsgi-cinder.conf.j2 b/charms/cinder-k8s/src/templates/wsgi-cinder.conf.j2 index 9f86f9c5..1fc5b36e 100644 --- a/charms/cinder-k8s/src/templates/wsgi-cinder.conf.j2 +++ b/charms/cinder-k8s/src/templates/wsgi-cinder.conf.j2 @@ -3,7 +3,10 @@ Listen 8776 WSGIDaemonProcess cinder processes=4 threads=1 user=cinder group=cinder \ display-name=%{GROUP} WSGIProcessGroup cinder - WSGIScriptAlias / /usr/bin/cinder-wsgi + {% if ingress_public and ingress_public.ingress_path -%} + WSGIScriptAlias {{ ingress_public.ingress_path }} {{ wsgi_config.wsgi_public_script }} + {% endif -%} + WSGIScriptAlias / {{ wsgi_config.wsgi_public_script }} WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On = 2.4>