From b5406b752d4d4e94fad52fddcd98d22c1159dc40 Mon Sep 17 00:00:00 2001
From: andreyshestakov <ashestakov@mirantis.com>
Date: Mon, 24 Jun 2019 09:19:56 +0300
Subject: [PATCH] Add kube_override_hostname to kubeadm certs. (#4903)

---
 roles/kubernetes/master/tasks/kubeadm-setup.yml                | 3 ++-
 .../master/templates/kubeadm-controlplane.v1beta1.yaml.j2      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/roles/kubernetes/master/tasks/kubeadm-setup.yml b/roles/kubernetes/master/tasks/kubeadm-setup.yml
index d9ee06f44..bf72821fe 100644
--- a/roles/kubernetes/master/tasks/kubeadm-setup.yml
+++ b/roles/kubernetes/master/tasks/kubeadm-setup.yml
@@ -55,7 +55,7 @@
 
 - name: kubeadm | aggregate all SANs
   set_fact:
-    apiserver_sans: "{{ (sans_base + groups['kube-master'] + sans_lb + sans_lb_ip + sans_supp + sans_access_ip + sans_ip + sans_address) | unique }}"
+    apiserver_sans: "{{ (sans_base + groups['kube-master'] + sans_lb + sans_lb_ip + sans_supp + sans_access_ip + sans_ip + sans_address + sans_override) | unique }}"
   vars:
     sans_base:
       - "kubernetes"
@@ -71,6 +71,7 @@
     sans_access_ip: "{{ groups['kube-master'] | map('extract', hostvars, 'access_ip') | list | select('defined') | list }}"
     sans_ip: "{{ groups['kube-master'] | map('extract', hostvars, 'ip') | list | select('defined') | list }}"
     sans_address: "{{ groups['kube-master'] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | list | select('defined') | list }}"
+    sans_override: "{{ [kube_override_hostname] if kube_override_hostname is defined else [] }}"
   tags: facts
 
 - name: Create audit-policy directory
diff --git a/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
index bee9c1716..6442eab66 100644
--- a/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
@@ -16,7 +16,7 @@ controlPlane:
     advertiseAddress: {{ kube_apiserver_address }}
     bindPort: {{ kube_apiserver_port }}
 nodeRegistration:
-  name: {{ inventory_hostname  }}
+  name: {{ kube_override_hostname|default(inventory_hostname) }}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
 {% else %}
-- 
GitLab