Browse Source

Fix the nodeName of the OpenShift nodes on OpenStack

Lénaïc Huard 8 years ago
parent
commit
aaaf82ba60

+ 1 - 1
playbooks/openstack/openshift-cluster/dns.yml

@@ -48,5 +48,5 @@
 
     - { role: dns,
         dns_forwarders: "{{ openstack_network_dns }}",
-        dns_zones: [ novalocal, openstacklocal ],
+        dns_zones: [ example.com ],
         dns_all_hosts: "{{ g_all_hosts }}" }

+ 50 - 37
playbooks/openstack/openshift-cluster/files/heat_stack.yaml

@@ -637,41 +637,54 @@ resources:
       port_id: { get_resource: dns-port }
 
   dns-config:
-    type: OS::Heat::MultipartMime
+    type: OS::Heat::CloudConfig
     properties:
-      parts:
-        - config:
-            str_replace:
-              template: |
-                #cloud-config
-                disable_root: true
-
-                system_info:
-                  default_user:
-                    name: openshift
-                    sudo: ["ALL=(ALL) NOPASSWD: ALL"]
-
-                write_files:
-                  - path: /etc/sudoers.d/00-openshift-no-requiretty
-                    permissions: 440
-                    content: |
-                      Defaults:openshift !requiretty
-                  - path: /etc/sysconfig/network-scripts/ifcfg-eth0
-                    content: |
-                      DEVICE="eth0"
-                      BOOTPROTO="dhcp"
-                      DNS1="$dns1"
-                      DNS2="$dns2"
-                      PEERDNS="no"
-                      ONBOOT="yes"
-                runcmd:
-                  - [ "/usr/bin/systemctl", "restart", "network" ]
-              params:
-                $dns1:
-                  get_param:
-                    - dns_nameservers
-                    - 0
-                $dns2:
-                  get_param:
-                    - dns_nameservers
-                    - 1
+      cloud_config:
+        disable_root: true
+
+        hostname:
+          str_replace:
+            template: cluster_id-dns
+            params:
+              cluster_id: { get_param: cluster_id }
+        fqdn:
+          str_replace:
+            template: cluster_id-dns.example.com
+            params:
+              cluster_id: { get_param: cluster_id }
+
+        system_info:
+          default_user:
+            name: openshift
+            sudo: ["ALL=(ALL) NOPASSWD: ALL"]
+
+        write_files:
+          - path: /etc/sudoers.d/00-openshift-no-requiretty
+            permissions: 440
+            # content: Defaults:openshift !requiretty
+            # Encoded in base64 to be sure that we do not forget the trailing newline or
+            # sudo will not be able to parse that file
+            encoding: b64
+            content: RGVmYXVsdHM6b3BlbnNoaWZ0ICFyZXF1aXJldHR5Cg==
+          - path: /etc/sysconfig/network-scripts/ifcfg-eth0
+            content:
+              str_replace:
+                template: |
+                  DEVICE="eth0"
+                  BOOTPROTO="dhcp"
+                  DNS1="$dns1"
+                  DNS2="$dns2"
+                  PEERDNS="no"
+                  ONBOOT="yes"
+                params:
+                  $dns1:
+                    get_param:
+                      - dns_nameservers
+                      - 0
+                  $dns2:
+                    get_param:
+                      - dns_nameservers
+                      - 1
+
+        runcmd:
+          - [ "/usr/bin/systemctl", "restart", "network" ]

+ 28 - 1
playbooks/openstack/openshift-cluster/files/heat_stack_server.yaml

@@ -107,7 +107,7 @@ resources:
       flavor:    { get_param: flavor }
       networks:
         - port:  { get_resource: port }
-      user_data: { get_file: user-data }
+      user_data: { get_resource: config }
       user_data_format: RAW
       metadata:
         environment: { get_param: cluster_env }
@@ -128,3 +128,30 @@ resources:
     properties:
       floating_network: { get_param: floating_network }
       port_id: { get_resource: port }
+
+  config:
+    type: OS::Heat::CloudConfig
+    properties:
+      cloud_config:
+        disable_root: true
+
+        hostname: { get_param: name }
+        fqdn:
+          str_replace:
+            template: name.example.com
+            params:
+              name: { get_param: name }
+
+        system_info:
+          default_user:
+            name: openshift
+            sudo: ["ALL=(ALL) NOPASSWD: ALL"]
+
+        write_files:
+          - path: /etc/sudoers.d/00-openshift-no-requiretty
+            permissions: 440
+            # content: Defaults:openshift !requiretty
+            # Encoded in base64 to be sure that we do not forget the trailing newline or
+            # sudo will not be able to parse that file
+            encoding: b64
+            content: RGVmYXVsdHM6b3BlbnNoaWZ0ICFyZXF1aXJldHR5Cg==

+ 0 - 13
playbooks/openstack/openshift-cluster/files/user-data

@@ -1,13 +0,0 @@
-#cloud-config
-disable_root: true
-
-system_info:
-  default_user:
-    name: openshift
-    sudo: ["ALL=(ALL) NOPASSWD: ALL"]
-
-write_files:
-  - path: /etc/sudoers.d/00-openshift-no-requiretty
-    permissions: 440
-    content: |
-      Defaults:openshift !requiretty

+ 1 - 1
roles/openshift_facts/library/openshift_facts.py

@@ -1214,7 +1214,7 @@ def apply_provider_facts(facts, provider_facts):
 
         facts['common'][h_var] = choose_hostname(
             [provider_facts['network'].get(h_var)],
-            facts['common'][ip_var]
+            facts['common'][h_var]
         )
 
     facts['provider'] = provider_facts