diff --git a/playbooks/common/openshift-cluster/upgrades/init.yml b/playbooks/common/openshift-cluster/upgrades/init.yml index fdc7720724d..238d0048a0e 100644 --- a/playbooks/common/openshift-cluster/upgrades/init.yml +++ b/playbooks/common/openshift-cluster/upgrades/init.yml @@ -8,6 +8,8 @@ - import_playbook: ../../../init/basic_facts.yml - import_playbook: ../../../init/base_packages.yml - import_playbook: ../../../init/cluster_facts.yml + vars: + l_check_nodename: True - name: Ensure essential node configmaps are present hosts: oo_first_master diff --git a/playbooks/init/cluster_facts.yml b/playbooks/init/cluster_facts.yml index e593523dbff..8cc2ce96a30 100644 --- a/playbooks/init/cluster_facts.yml +++ b/playbooks/init/cluster_facts.yml @@ -64,6 +64,31 @@ sdn_mtu: "{{ openshift_node_sdn_mtu | default(None) }}" bootstrapped: "{{ openshift_is_bootstrapped }}" + - when: + # l_check_nodename is passed in during upgrades. + - l_check_nodename | default(False) + - inventory_hostname in groups['oo_nodes_to_config'] + block: + - name: Read node config + slurp: + src: "{{ openshift.common.config_base }}/node/node-config.yaml" + register: node_config_slurp + + # if using openshift_kubelet_name_override, l_kubelet_node_name will be + # set to that value. + - name: Fail when nodeName is wrong + fail: + msg: > + nodeName mismatch from node's config; existing name in config: {{ l_nodeconfig_name }}; + discovered nodename from openshift_facts: {{ l_kubelet_node_name }} + vars: + l_nodeconfig_yaml: "{{ node_config_slurp.content | b64decode| from_yaml }}" + # existing 3.10+ configs might not have nodeName defined. + l_nodeconfig_nodename: "{{ l_nodeconfig_yaml['nodeName'] | default('') }}" + when: + - l_nodeconfig_nodename != '' + - l_nodeconfig_nodename != l_kubelet_node_name + - name: Initialize etcd host variables hosts: oo_masters_to_config roles: