Create entries for overcloud VIPs in /etc/hosts
authorJuan Antonio Osorio Robles <jaosorior@redhat.com>
Fri, 19 Aug 2016 10:49:09 +0000 (13:49 +0300)
committerEmilien Macchi <emilien@redhat.com>
Wed, 7 Sep 2016 03:06:39 +0000 (03:06 +0000)
This will aid us in using FQDNs instead of IPs if DNS is not set. If
the deployer already has DNS set up, they can easily disable this
profile by adding the use-dns-for-vips.yaml environment file.

bp tls-via-certmonger
Change-Id: I8c1b3f253d0149d575171c208f9a1342a7b26450
Depends-On: I1bdb2701dfb3e7ef072e674c9882d3be5af7296c

environments/use-dns-for-vips.yaml [new file with mode: 0644]
overcloud-resource-registry-puppet.yaml
overcloud.yaml
puppet/services/vip-hosts.yaml [new file with mode: 0644]

diff --git a/environments/use-dns-for-vips.yaml b/environments/use-dns-for-vips.yaml
new file mode 100644 (file)
index 0000000..daf07bc
--- /dev/null
@@ -0,0 +1,5 @@
+# A Heat environment file which can be used to disable the writing of the VIPs
+# to the /etc/hosts file in the overcloud. Use this in case you have a working
+# DNS server that you will provide for the overcloud.
+resource_registry:
+  OS::TripleO::Services::VipHosts: OS::Heat::None
index b0a9c10..a6d09ac 100644 (file)
@@ -201,6 +201,7 @@ resource_registry:
   OS::TripleO::Services::GnocchiApi: puppet/services/gnocchi-api.yaml
   OS::TripleO::Services::GnocchiMetricd: puppet/services/gnocchi-metricd.yaml
   OS::TripleO::Services::GnocchiStatsd: puppet/services/gnocchi-statsd.yaml
+  OS::TripleO::Services::VipHosts: puppet/services/vip-hosts.yaml
   # Services that are disabled by default (use relevant environment files):
   OS::Tripleo::Services::ManilaApi: OS::Heat::None
   OS::Tripleo::Services::ManilaScheduler: OS::Heat::None
index 38b7b6e..2a02fda 100644 (file)
@@ -200,6 +200,7 @@ parameters:
       - OS::TripleO::Services::TripleoFirewall
       - OS::TripleO::Services::OpenDaylight
       - OS::TripleO::Services::SensuClient
+      - OS::TripleO::Services::VipHosts
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Controllers.
@@ -226,6 +227,7 @@ parameters:
       - OS::TripleO::Services::NeutronSriovAgent
       - OS::TripleO::Services::OpenDaylightOvs
       - OS::TripleO::Services::SensuClient
+      - OS::TripleO::Services::VipHosts
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Compute Nodes.
@@ -252,6 +254,7 @@ parameters:
       - OS::TripleO::Services::TripleoPackages
       - OS::TripleO::Services::TripleoFirewall
       - OS::TripleO::Services::SensuClient
+      - OS::TripleO::Services::VipHosts
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the BlockStorage nodes.
@@ -279,6 +282,7 @@ parameters:
       - OS::TripleO::Services::TripleoPackages
       - OS::TripleO::Services::TripleoFirewall
       - OS::TripleO::Services::SensuClient
+      - OS::TripleO::Services::VipHosts
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the ObjectStorage nodes.
@@ -306,6 +310,7 @@ parameters:
       - OS::TripleO::Services::TripleoPackages
       - OS::TripleO::Services::TripleoFirewall
       - OS::TripleO::Services::SensuClient
+      - OS::TripleO::Services::VipHosts
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the CephStorage nodes.
diff --git a/puppet/services/vip-hosts.yaml b/puppet/services/vip-hosts.yaml
new file mode 100644 (file)
index 0000000..445a276
--- /dev/null
@@ -0,0 +1,56 @@
+heat_template_version: 2016-04-08
+
+description: >
+  If the deployer doesn't have a DNS server for the overcloud nodes. This will
+  populate the node-names and IPs for the VIPs of the overcloud.
+
+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
+
+outputs:
+  role_data:
+    description: role data for the VIP hosts role
+    value:
+      service_name: vip_hosts
+      config_settings:
+        tripleo::vip_hosts::hosts_spec:
+          external:
+            name: "%{hiera('cloud_name_external')}"
+            ip: "%{hiera('public_virtual_ip')}"
+            ensure: present
+            comment: FQDN of the external VIP
+          internal_api:
+            name: "%{hiera('cloud_name_internal_api')}"
+            ip: "%{hiera('internal_api_virtual_ip')}"
+            ensure: present
+            comment: FQDN of the internal api VIP
+          storage:
+            name: "%{hiera('cloud_name_storage')}"
+            ip: "%{hiera('storage_virtual_ip')}"
+            ensure: present
+            comment: FQDN of the storage VIP
+          storage_mgmt:
+            name: "%{hiera('cloud_name_storage_mgmt')}"
+            ip: "%{hiera('storage_mgmt_virtual_ip')}"
+            ensure: present
+            comment: FQDN of the storage mgmt VIP
+          management:
+            name: "%{hiera('cloud_name_management')}"
+            ip: "%{hiera('controller_virtual_ip')}"
+            ensure: present
+            comment: FQDN of the management VIP
+      step_config: |
+        include ::tripleo::vip_hosts