From b9ebc4e1627f2bad720e08492733e398dcaa387d Mon Sep 17 00:00:00 2001 From: Jan Provaznik Date: Mon, 16 Oct 2017 11:36:23 +0200 Subject: [PATCH] Pass storage nfs VIP to ceph-ansible This VIP is needed in ceph-ansible to tell ganesha service to listen on this IP only. This parameter is passed through the endpoint map, it could be done also by passing allNodesConfig to ceph-ansible (addressed in patch https://review.openstack.org/#/c/509146/) and then getting this value from allNodesConfig in tripleo-common ceph-ansible workbook. Disadvantage of this alternative approach is that any parameter change would require also change in tripleo-common. Depends-On: If31722d669efe91082c93ecb815e6c41676480c8 Change-Id: I3c0da46dd0f0252158c6065b7c122b8567c88bc0 Partially-Implements: blueprint nfs-ganesha --- docker/services/ceph-ansible/ceph-nfs.yaml | 6 +- .../ssl/tls-endpoints-public-dns.yaml | 1 + environments/ssl/tls-endpoints-public-ip.yaml | 1 + .../ssl/tls-everywhere-endpoints-dns.yaml | 1 + environments/tls-endpoints-public-dns.yaml | 1 + environments/tls-endpoints-public-ip.yaml | 1 + .../tls-everywhere-endpoints-dns.yaml | 1 + network/endpoints/endpoint_data.yaml | 6 ++ network/endpoints/endpoint_map.yaml | 82 +++++++++++++++++++ ...nila-cephnfs-backend-fb35ecc995705256.yaml | 7 ++ sample-env-generator/ssl.yaml | 3 + 11 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/add-support-manila-cephnfs-backend-fb35ecc995705256.yaml diff --git a/docker/services/ceph-ansible/ceph-nfs.yaml b/docker/services/ceph-ansible/ceph-nfs.yaml index 6049e79e66..ce3b0f1cca 100644 --- a/docker/services/ceph-ansible/ceph-nfs.yaml +++ b/docker/services/ceph-ansible/ceph-nfs.yaml @@ -60,14 +60,12 @@ outputs: - tripleo.ceph_nfs.firewall_rules: '120 ceph_nfs': dport: - # FIXME + # We support only NFS 4.1 to start - 2049 - - 20048 - - 38468 - - 4501 - ceph_nfs_ansible_vars: map_merge: - {get_attr: [CephBase, role_data, config_settings, ceph_common_ansible_vars]} + - ceph_nfs_bind_addr: {get_param: [EndpointMap, GaneshaInternal, host]} - ceph_nfs_enable_service: false - ceph_nfs_use_pacemaker: true - ceph_nfs_dynamic_exports: true diff --git a/environments/ssl/tls-endpoints-public-dns.yaml b/environments/ssl/tls-endpoints-public-dns.yaml index 8211cd8562..55fe6473c3 100644 --- a/environments/ssl/tls-endpoints-public-dns.yaml +++ b/environments/ssl/tls-endpoints-public-dns.yaml @@ -34,6 +34,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'} diff --git a/environments/ssl/tls-endpoints-public-ip.yaml b/environments/ssl/tls-endpoints-public-ip.yaml index f212c723a4..25c78c5ce9 100644 --- a/environments/ssl/tls-endpoints-public-ip.yaml +++ b/environments/ssl/tls-endpoints-public-ip.yaml @@ -34,6 +34,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'} diff --git a/environments/ssl/tls-everywhere-endpoints-dns.yaml b/environments/ssl/tls-everywhere-endpoints-dns.yaml index ae53aff4c6..1371af9d85 100644 --- a/environments/ssl/tls-everywhere-endpoints-dns.yaml +++ b/environments/ssl/tls-everywhere-endpoints-dns.yaml @@ -34,6 +34,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'CLOUDNAME'} GlanceAdmin: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlanceInternal: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'} diff --git a/environments/tls-endpoints-public-dns.yaml b/environments/tls-endpoints-public-dns.yaml index 7151f15aa8..c243463db9 100644 --- a/environments/tls-endpoints-public-dns.yaml +++ b/environments/tls-endpoints-public-dns.yaml @@ -28,6 +28,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'} diff --git a/environments/tls-endpoints-public-ip.yaml b/environments/tls-endpoints-public-ip.yaml index 0408fec96a..6524bf82f0 100644 --- a/environments/tls-endpoints-public-ip.yaml +++ b/environments/tls-endpoints-public-ip.yaml @@ -28,6 +28,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'} diff --git a/environments/tls-everywhere-endpoints-dns.yaml b/environments/tls-everywhere-endpoints-dns.yaml index 86d2be07f9..198a532475 100644 --- a/environments/tls-everywhere-endpoints-dns.yaml +++ b/environments/tls-everywhere-endpoints-dns.yaml @@ -24,6 +24,7 @@ parameter_defaults: Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'CLOUDNAME'} GlanceAdmin: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlanceInternal: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'} diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml index d5f4370479..08bfc4dab7 100644 --- a/network/endpoints/endpoint_data.yaml +++ b/network/endpoints/endpoint_data.yaml @@ -350,6 +350,12 @@ Octavia: net_param: OctaviaApi port: 9876 +Ganesha: + Internal: + net_param: Ganesha + protocol: nfs + port: 2049 + DockerRegistry: Internal: net_param: DockerRegistry diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml index 153b3f9bf6..87ab90c94f 100644 --- a/network/endpoints/endpoint_map.yaml +++ b/network/endpoints/endpoint_map.yaml @@ -41,6 +41,7 @@ parameters: Ec2ApiAdmin: {protocol: http, port: '8788', host: IP_ADDRESS} Ec2ApiInternal: {protocol: http, port: '8788', host: IP_ADDRESS} Ec2ApiPublic: {protocol: http, port: '8788', host: IP_ADDRESS} + GaneshaInternal: {protocol: nfs, port: '2049', host: IP_ADDRESS} GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS} GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS} GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS} @@ -2422,6 +2423,87 @@ outputs: template: NETWORK_uri port: get_param: [EndpointMap, Ec2ApiPublic, port] + GaneshaInternal: + host: + str_replace: + template: + get_param: [EndpointMap, GaneshaInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, GaneshaNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, GaneshaNetwork] + template: NETWORK_uri + host_nobrackets: + str_replace: + template: + get_param: [EndpointMap, GaneshaInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, GaneshaNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - get_param: [ServiceNetMap, GaneshaNetwork] + port: + get_param: [EndpointMap, GaneshaInternal, port] + protocol: + get_param: [EndpointMap, GaneshaInternal, protocol] + uri: + make_url: + scheme: + get_param: [EndpointMap, GaneshaInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, GaneshaInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, GaneshaNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, GaneshaNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, GaneshaInternal, port] + uri_no_suffix: + make_url: + scheme: + get_param: [EndpointMap, GaneshaInternal, protocol] + host: + str_replace: + template: + get_param: [EndpointMap, GaneshaInternal, host] + params: + CLOUDNAME: + get_param: + - CloudEndpoints + - get_param: [ServiceNetMap, GaneshaNetwork] + IP_ADDRESS: + get_param: + - NetIpMap + - str_replace: + params: + NETWORK: + get_param: [ServiceNetMap, GaneshaNetwork] + template: NETWORK_uri + port: + get_param: [EndpointMap, GaneshaInternal, port] GlanceAdmin: host: str_replace: diff --git a/releasenotes/notes/add-support-manila-cephnfs-backend-fb35ecc995705256.yaml b/releasenotes/notes/add-support-manila-cephnfs-backend-fb35ecc995705256.yaml new file mode 100644 index 0000000000..fcdc804d51 --- /dev/null +++ b/releasenotes/notes/add-support-manila-cephnfs-backend-fb35ecc995705256.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Manila now supports the CephNFS back end. Deploy using the + ControllerStorageNFS role and '-n network_data_ganesha.yaml', + along with manila-cephfsganesha-config-docker.yaml. + diff --git a/sample-env-generator/ssl.yaml b/sample-env-generator/ssl.yaml index bf3e630299..5a863f9f50 100644 --- a/sample-env-generator/ssl.yaml +++ b/sample-env-generator/ssl.yaml @@ -129,6 +129,7 @@ environments: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'IP_ADDRESS'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'} @@ -233,6 +234,7 @@ environments: Ec2ApiAdmin: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiInternal: {protocol: 'http', port: '8788', host: 'IP_ADDRESS'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'} GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'} @@ -337,6 +339,7 @@ environments: Ec2ApiAdmin: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiInternal: {protocol: 'https', port: '8788', host: 'CLOUDNAME'} Ec2ApiPublic: {protocol: 'https', port: '13788', host: 'CLOUDNAME'} + GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'CLOUDNAME'} GlanceAdmin: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlanceInternal: {protocol: 'https', port: '9292', host: 'CLOUDNAME'} GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}