diff --git a/defaults/main.yml b/defaults/main.yml index ce29444e..edf51562 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -170,7 +170,6 @@ cinder_service_admin_tenant_name: "service" cinder_service_admin_username: "cinder" ## Cinder api service type and data -cinder_service_name: cinder cinder_service_project_domain_id: default cinder_service_user_domain_id: default cinder_service_user_name: cinder @@ -185,12 +184,26 @@ cinder_service_region: "{{ service_region | default('RegionOne') }}" cinder_service_port: 8776 cinder_service_proto: http +cinder_service_name: cinder +cinder_service_type: block-storage +cinder_service_description: "Cinder Volume Service" +cinder_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(cinder_service_proto) }}" +cinder_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(cinder_service_proto) }}" +cinder_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(cinder_service_proto) }}" +cinder_service_publicuri: "{{ cinder_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ cinder_service_port }}" +cinder_service_publicurl: "{{ cinder_service_publicuri }}/v3/%(project_id)s" +cinder_service_adminuri: "{{ cinder_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ cinder_service_port }}" +cinder_service_adminurl: "{{ cinder_service_adminuri }}/v3/%(project_id)s" +cinder_service_internaluri: "{{ cinder_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ cinder_service_port }}" +cinder_service_internalurl: "{{ cinder_service_internaluri }}/v3/%(project_id)s" + +cinder_service_v3_enabled: true cinder_service_v3_name: cinderv3 cinder_service_v3_type: volumev3 cinder_service_v3_description: "Cinder Volume Service V3" -cinder_service_v3_publicuri_proto: "{{ openstack_service_publicuri_proto | default(cinder_service_proto) }}" -cinder_service_v3_adminuri_proto: "{{ openstack_service_adminuri_proto | default(cinder_service_proto) }}" -cinder_service_v3_internaluri_proto: "{{ openstack_service_internaluri_proto | default(cinder_service_proto) }}" +cinder_service_v3_publicuri_proto: "{{ openstack_service_publicuri_proto | default(cinder_service_publicuri_proto) }}" +cinder_service_v3_adminuri_proto: "{{ openstack_service_adminuri_proto | default(cinder_service_adminuri_proto) }}" +cinder_service_v3_internaluri_proto: "{{ openstack_service_internaluri_proto | default(cinder_service_internaluri_proto) }}" cinder_service_v3_publicuri: "{{ cinder_service_v3_publicuri_proto }}://{{ external_lb_vip_address }}:{{ cinder_service_port }}" cinder_service_v3_publicurl: "{{ cinder_service_v3_publicuri }}/v3/%(tenant_id)s" cinder_service_v3_adminuri: "{{ cinder_service_v3_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ cinder_service_port }}" diff --git a/releasenotes/notes/cinder_remove_versioned_service_types-75bad8363b5cbff7.yaml b/releasenotes/notes/cinder_remove_versioned_service_types-75bad8363b5cbff7.yaml new file mode 100644 index 00000000..f588e4f3 --- /dev/null +++ b/releasenotes/notes/cinder_remove_versioned_service_types-75bad8363b5cbff7.yaml @@ -0,0 +1,41 @@ +--- +prelude: > + In order to support efforts on aligning Cinder service type naming across + various deployments and move on from version-specific service type to a + generic one, a Cinder service will be named as ``block-storage`` from + now on, which will be reflected in Keystone service catalog and endpoints. + Please check upgrade notes for more details. +upgrade: + - | + In order to align with recommendations on Cinder service naming, os_cinder + role will introduce a new service in catalog named ``cinder`` of type + ``block-storage`` and corresponding set of endpoints representing them. + Upgrade script will create a new file `/etc/openstack_deploy/user_epoxy_upgrade.yml` + with defining ``cinder_service_v3_enabled: true`` which aims to keep old + version-based service type and endpoints intact. + If you want to remove old versioned-based endpoints and service type from + catalog you may simply undefine that variable, as it is ``False`` by + default. + + All new deployments will not have ``cinderv3``/``volumev3`` + service unless ``cinder_service_v3_enabled: true`` is defined. +deprecations: + - | + In order to accomplish Cinder service naming alignment we had revised our + prior decision on deprecating following variables, which was introduced + previous cycle. Following variables should NOT be considered as + deprecated anymore: + + - `cinder_service_description` + - `cinder_service_publicuri_proto` + - `cinder_service_adminuri_proto` + - `cinder_service_internaluri_proto` + - `cinder_service_type` + - `cinder_service_publicuri` + - `cinder_service_adminuri` + - `cinder_service_internaluri` + + - | + Usage of version-based (``cinderv3``/``volumev3``) endpoints and service + type for Cinder is considered as a deprecated behaviour and will be removed + in the future. diff --git a/vars/main.yml b/vars/main.yml index 15572bd2..36af0a93 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -113,24 +113,40 @@ cinder_core_files: mode: "0640" cinder_service_endpoints: + - service: "{{ cinder_service_name }}" + interface: "public" + url: "{{ cinder_service_publicurl }}" + state: present + - service: "{{ cinder_service_name }}" + interface: "internal" + url: "{{ cinder_service_internalurl }}" + state: present + - service: "{{ cinder_service_name }}" + interface: "admin" + url: "{{ cinder_service_adminurl }}" + state: present - service: "{{ cinder_service_v3_name }}" interface: "public" url: "{{ cinder_service_v3_publicurl }}" - state: present + state: "{{ cinder_service_v3_enabled | ternary('present', 'absent') }}" - service: "{{ cinder_service_v3_name }}" interface: "internal" url: "{{ cinder_service_v3_internalurl }}" - state: present + state: "{{ cinder_service_v3_enabled | ternary('present', 'absent') }}" - service: "{{ cinder_service_v3_name }}" interface: "admin" url: "{{ cinder_service_v3_adminurl }}" - state: present + state: "{{ cinder_service_v3_enabled | ternary('present', 'absent') }}" cinder_service_catalog: + - name: "{{ cinder_service_name }}" + type: "{{ cinder_service_type }}" + description: "{{ cinder_service_description }}" + state: present - name: "{{ cinder_service_v3_name }}" type: "{{ cinder_service_v3_type }}" description: "{{ cinder_service_v3_description }}" - state: present + state: "{{ cinder_service_v3_enabled | ternary('present', 'absent') }}" _cinder_coordination_url: >- {{ cinder_coordination_driver }}://{{