Adding Tacker Support
authorDan Radez <dradez@redhat.com>
Tue, 22 Nov 2016 18:00:45 +0000 (13:00 -0500)
committerEmilien Macchi <emilien@redhat.com>
Thu, 9 Feb 2017 20:23:36 +0000 (20:23 +0000)
Depends-On: Ide0e60f3b7a3733788af4337c1c39b4a956c876f
Depends-On: I3d6bbc05644e840395f87333ec80e3b844f69903
Depends-On: Idf6abcb7fe766546cb362ad4afe54f4bccd9c994

Implements: blueprint tacker-service-integration

Change-Id: Ibddc81561f6e6ba671bd01a9251c57d3ad67ba8c
Signed-off-by: Dan Radez <dradez@redhat.com>
12 files changed:
README.rst
ci/environments/scenario001-multinode.yaml
environments/enable_tacker.yaml [new file with mode: 0644]
environments/tls-endpoints-public-dns.yaml
environments/tls-endpoints-public-ip.yaml
environments/tls-everywhere-endpoints-dns.yaml
network/endpoints/endpoint_data.yaml
network/endpoints/endpoint_map.yaml
network/service_net_map.j2.yaml
overcloud-resource-registry-puppet.j2.yaml
puppet/services/tacker.yaml [new file with mode: 0644]
roles_data.yaml

index a9d8b38..44da496 100644 (file)
@@ -120,3 +120,5 @@ and should be executed according to the following table:
 +----------------+-------------+-------------+-------------+-------------+-----------------+
 | cephrgw        |             |      X      |             |      X      |                 |
 +----------------+-------------+-------------+-------------+-------------+-----------------+
+| tacker         |      X      |             |             |             |                 |
++----------------+-------------+-------------+-------------+-------------+-----------------+
index 69bf7c9..6ee5bad 100644 (file)
@@ -6,6 +6,7 @@ resource_registry:
   OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml
   OS::TripleO::Services::PankoApi: /usr/share/openstack-tripleo-heat-templates/puppet/services/panko-api.yaml
   OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/puppet/services/metrics/collectd.yaml
+  OS::TripleO::Services::Tacker: /usr/share/openstack-tripleo-heat-templates/puppet/services/tacker.yaml
 
 parameter_defaults:
   ControllerServices:
@@ -62,6 +63,7 @@ parameter_defaults:
     - OS::TripleO::Services::CinderScheduler
     - OS::TripleO::Services::CinderVolume
     - OS::TripleO::Services::Collectd
+    - OS::TripleO::Services::Tacker
   ControllerExtraConfig:
     nova::compute::libvirt::services::libvirt_virt_type: qemu
     nova::compute::libvirt::libvirt_virt_type: qemu
diff --git a/environments/enable_tacker.yaml b/environments/enable_tacker.yaml
new file mode 100644 (file)
index 0000000..1f9eca0
--- /dev/null
@@ -0,0 +1,2 @@
+resource_registry:
+  OS::TripleO::Services::Tacker: ../puppet/services/tacker.yaml
index 9f41ac7..26b2f31 100644 (file)
@@ -103,6 +103,9 @@ parameter_defaults:
     SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
     SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
     SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
+    TackerAdmin: {protocol: 'http', port: '9890', host: 'IP_ADDRESS'}
+    TackerInternal: {protocol: 'http', port: '9890', host: 'IP_ADDRESS'}
+    TackerPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
     ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
     ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
     ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
index 51c492b..3b8774e 100644 (file)
@@ -103,6 +103,9 @@ parameter_defaults:
     SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
     SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
     SwiftPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
+    TackerAdmin: {protocol: 'http', port: '9890', host: 'IP_ADDRESS'}
+    TackerInternal: {protocol: 'http', port: '9890', host: 'IP_ADDRESS'}
+    TackerPublic: {protocol: 'https', port: '13989', host: 'IP_ADDRESS'}
     ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
     ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
     ZaqarPublic: {protocol: 'https', port: '13888', host: 'IP_ADDRESS'}
index 00ca547..1640dcf 100644 (file)
@@ -103,6 +103,9 @@ parameter_defaults:
     SwiftAdmin: {protocol: 'https', port: '8080', host: 'CLOUDNAME'}
     SwiftInternal: {protocol: 'https', port: '8080', host: 'CLOUDNAME'}
     SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
+    TackerAdmin: {protocol: 'https', port: '9890', host: 'CLOUDNAME'}
+    TackerInternal: {protocol: 'https', port: '9890', host: 'CLOUDNAME'}
+    TackerPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
     ZaqarAdmin: {protocol: 'https', port: '8888', host: 'CLOUDNAME'}
     ZaqarInternal: {protocol: 'https', port: '8888', host: 'CLOUDNAME'}
     ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
index 5cd243c..af537b0 100644 (file)
@@ -362,6 +362,15 @@ Sahara:
             '': /v1.1/%(tenant_id)s
     port: 8386
 
+Tacker:
+    Internal:
+        net_param: TackerApi
+    Public:
+        net_param: Public
+    Admin:
+        net_param: TackerApi
+    port: 9890
+
 Ironic:
     Internal:
         net_param: IronicApi
index 5139856..bd14fc1 100644 (file)
@@ -120,6 +120,9 @@ parameters:
       SwiftAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
       SwiftInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
       SwiftPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
+      TackerAdmin: {protocol: http, port: '9890', host: IP_ADDRESS}
+      TackerInternal: {protocol: http, port: '9890', host: IP_ADDRESS}
+      TackerPublic: {protocol: http, port: '9890', host: IP_ADDRESS}
       ZaqarAdmin: {protocol: http, port: '8888', host: IP_ADDRESS}
       ZaqarInternal: {protocol: http, port: '8888', host: IP_ADDRESS}
       ZaqarPublic: {protocol: http, port: '8888', host: IP_ADDRESS}
@@ -9272,6 +9275,249 @@ outputs:
                         template: NETWORK_uri
             - ':'
             - get_param: [EndpointMap, SwiftPublic, port]
+      TackerAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerAdmin, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - str_replace:
+                    params:
+                      NETWORK:
+                        get_param: [ServiceNetMap, TackerApiNetwork]
+                    template: NETWORK_uri
+        host_nobrackets:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerAdmin, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+        port:
+          get_param: [EndpointMap, TackerAdmin, port]
+        protocol:
+          get_param: [EndpointMap, TackerAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerAdmin, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, TackerApiNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, TackerApiNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerAdmin, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, TackerApiNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, TackerApiNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerAdmin, port]
+      TackerInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerInternal, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - str_replace:
+                    params:
+                      NETWORK:
+                        get_param: [ServiceNetMap, TackerApiNetwork]
+                    template: NETWORK_uri
+        host_nobrackets:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerInternal, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - get_param: [ServiceNetMap, TackerApiNetwork]
+        port:
+          get_param: [EndpointMap, TackerInternal, port]
+        protocol:
+          get_param: [EndpointMap, TackerInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerInternal, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, TackerApiNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, TackerApiNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerInternal, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, TackerApiNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, TackerApiNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerInternal, port]
+      TackerPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerPublic, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, PublicNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - str_replace:
+                    params:
+                      NETWORK:
+                        get_param: [ServiceNetMap, PublicNetwork]
+                    template: NETWORK_uri
+        host_nobrackets:
+          str_replace:
+            template:
+              get_param: [EndpointMap, TackerPublic, host]
+            params:
+              CLOUDNAME:
+                get_param:
+                - CloudEndpoints
+                - get_param: [ServiceNetMap, PublicNetwork]
+              IP_ADDRESS:
+                get_param:
+                - NetIpMap
+                - get_param: [ServiceNetMap, PublicNetwork]
+        port:
+          get_param: [EndpointMap, TackerPublic, port]
+        protocol:
+          get_param: [EndpointMap, TackerPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerPublic, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, PublicNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, PublicNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, TackerPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, TackerPublic, host]
+                params:
+                  CLOUDNAME:
+                    get_param:
+                    - CloudEndpoints
+                    - get_param: [ServiceNetMap, PublicNetwork]
+                  IP_ADDRESS:
+                    get_param:
+                    - NetIpMap
+                    - str_replace:
+                        params:
+                          NETWORK:
+                            get_param: [ServiceNetMap, PublicNetwork]
+                        template: NETWORK_uri
+            - ':'
+            - get_param: [EndpointMap, TackerPublic, port]
       ZaqarAdmin:
         host:
           str_replace:
index 35d48c7..d01c89a 100644 (file)
@@ -59,6 +59,7 @@ parameters:
       NovaLibvirtNetwork: internal_api
       Ec2ApiNetwork: internal_api
       Ec2ApiMetadataNetwork: internal_api
+      TackerApiNetwork: internal_api
       SwiftStorageNetwork: storage_mgmt
       SwiftProxyNetwork: storage
       SaharaApiNetwork: internal_api
index 69fed04..1e51859 100644 (file)
@@ -187,6 +187,7 @@ resource_registry:
   OS::TripleO::Services::SwiftStorage: puppet/services/swift-storage.yaml
   OS::TripleO::Services::SwiftRingBuilder: puppet/services/swift-ringbuilder.yaml
   OS::TripleO::Services::Snmp: puppet/services/snmp.yaml
+  OS::TripleO::Services::Tacker: OS::Heat::None
   OS::TripleO::Services::Timezone: puppet/services/time/timezone.yaml
   OS::TripleO::Services::CeilometerApi: puppet/services/ceilometer-api.yaml
   OS::TripleO::Services::CeilometerCollector: puppet/services/ceilometer-collector.yaml
diff --git a/puppet/services/tacker.yaml b/puppet/services/tacker.yaml
new file mode 100644 (file)
index 0000000..5cf09a6
--- /dev/null
@@ -0,0 +1,91 @@
+heat_template_version: ocata
+
+description: >
+  OpenStack Tacker service configured with Puppet
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  TackerPassword:
+    description: The password for the tacker service account.
+    type: string
+    hidden: true
+  Debug:
+    type: string
+    default: ''
+  KeystoneRegion:
+    type: string
+    default: 'regionOne'
+    description: Keystone region for endpoint
+  RabbitPassword:
+    description: The password for RabbitMQ
+    type: string
+    hidden: true
+  RabbitUserName:
+    default: guest
+    description: The username for RabbitMQ
+    type: string
+  RabbitClientUseSSL:
+    default: false
+    description: >
+        Rabbit client subscriber parameter to specify
+        an SSL connection to the RabbitMQ host.
+    type: string
+  RabbitClientPort:
+    default: 5672
+    description: Set rabbit subscriber port, change this if using SSL
+    type: number
+
+outputs:
+  role_data:
+    description: Role data for the Tacker role.
+    value:
+      service_name: tacker
+      config_settings:
+        tacker_password: {get_param: TackerPassword}
+        tacker::db::database_connection:
+          list_join:
+            - ''
+            - - {get_param: [EndpointMap, MysqlInternal, protocol]}
+              - '://tacker:'
+              - {get_param: TackerPassword}
+              - '@'
+              - {get_param: [EndpointMap, MysqlInternal, host]}
+              - '/tacker'
+              - '?bind_address='
+              - "%{hiera('tripleo::profile::base::database::mysql::client_bind_address')}"
+
+        tacker::keystone::auth::tenant: 'service'
+        tacker::keystone::auth::password: {get_param: TackerPassword}
+        tacker::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri]}
+        tacker::debug: {get_param: Debug}
+        tacker::rpc_backend: rabbit
+        tacker::rabbit_userid: {get_param: RabbitUserName}
+        tacker::rabbit_password: {get_param: RabbitPassword}
+        tacker::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
+        tacker::rabbit_port: {get_param: RabbitClientPort}
+        tacker::server::bind_host: {get_param: [ServiceNetMap, TackerApiNetwork]}
+
+        tacker::db::mysql::password: {get_param: TackerPassword}
+        tacker::db::mysql::user: tacker
+        tacker::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
+        tacker::db::mysql::dbname: tacker
+        tacker::db::mysql::allowed_hosts:
+          - '%'
+          - {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
+
+
+      step_config: |
+        include ::tripleo::profile::base::tacker
index 542e866..4edefce 100644 (file)
     - OS::TripleO::Services::Collectd
     - OS::TripleO::Services::BarbicanApi
     - OS::TripleO::Services::PankoApi
+    - OS::TripleO::Services::Tacker
     - OS::TripleO::Services::Zaqar
     - OS::TripleO::Services::OVNDBs
     - OS::TripleO::Services::NeutronML2FujitsuCfab