robust handling of API server SANs (#4435)
* robust handling of API server SANs * use apiserver_loadbalancer_domain_name if it is defined, according to PR 3977
This commit is contained in:
parent
09bbdadcee
commit
f52584a715
5 changed files with 19 additions and 27 deletions
|
@ -45,29 +45,21 @@
|
|||
|
||||
- name: kubeadm | aggregate all SANs
|
||||
set_fact:
|
||||
apiserver_sans: >-
|
||||
kubernetes
|
||||
kubernetes.default
|
||||
kubernetes.default.svc
|
||||
kubernetes.default.svc.{{ dns_domain }}
|
||||
{{ kube_apiserver_ip }}
|
||||
localhost
|
||||
127.0.0.1
|
||||
{{ ' '.join(groups['kube-master']) }}
|
||||
{%- if loadbalancer_apiserver is defined %}
|
||||
{{ apiserver_loadbalancer_domain_name }}
|
||||
{% endif %}
|
||||
{% for host in groups['kube-master'] -%}
|
||||
{%- if hostvars[host]['access_ip'] is defined %}
|
||||
{{ hostvars[host]['access_ip'] }}
|
||||
{% endif %}
|
||||
{{ hostvars[host]['ip'] | default(fallback_ips[host]) }}
|
||||
{%- endfor %}
|
||||
{% if supplementary_addresses_in_ssl_keys is defined -%}
|
||||
{% for addr in supplementary_addresses_in_ssl_keys %}
|
||||
{{ addr }}
|
||||
{% endfor %}
|
||||
{%- endif %}
|
||||
apiserver_sans: "{{ (sans_base + groups['kube-master'] + sans_lb + sans_supp + sans_access_ip + sans_ip + sans_address) | unique }}"
|
||||
vars:
|
||||
sans_base:
|
||||
- "kubernetes"
|
||||
- "kubernetes.default"
|
||||
- "kubernetes.default.svc"
|
||||
- "kubernetes.default.svc.{{ dns_domain }}"
|
||||
- "{{ kube_apiserver_ip }}"
|
||||
- "localhost"
|
||||
- "127.0.0.1"
|
||||
sans_lb: "{{ [apiserver_loadbalancer_domain_name] if apiserver_loadbalancer_domain_name is defined else [] }}"
|
||||
sans_supp: "{{ supplementary_addresses_in_ssl_keys if supplementary_addresses_in_ssl_keys is defined else [] }}"
|
||||
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 }}"
|
||||
tags: facts
|
||||
|
||||
- name: kubeadm | Copy etcd cert dir under k8s cert dir
|
||||
|
|
|
@ -193,7 +193,7 @@ apiServerExtraVolumes:
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
apiServerCertSANs:
|
||||
{% for san in apiserver_sans.split() | unique %}
|
||||
{% for san in apiserver_sans %}
|
||||
- {{ san }}
|
||||
{% endfor %}
|
||||
certificatesDir: {{ kube_cert_dir }}
|
||||
|
|
|
@ -211,7 +211,7 @@ schedulerExtraArgs:
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
apiServerCertSANs:
|
||||
{% for san in apiserver_sans.split() | unique %}
|
||||
{% for san in apiserver_sans %}
|
||||
- {{ san }}
|
||||
{% endfor %}
|
||||
certificatesDir: {{ kube_cert_dir }}
|
||||
|
|
|
@ -43,7 +43,7 @@ controlPlaneEndpoint: {{ kubeadm_config_api_fqdn }}:{{ loadbalancer_apiserver.po
|
|||
controlPlaneEndpoint: {{ ip | default(fallback_ips[inventory_hostname]) }}:{{ kube_apiserver_port }}
|
||||
{% endif %}
|
||||
apiServerCertSANs:
|
||||
{% for san in apiserver_sans.split() | unique %}
|
||||
{% for san in apiserver_sans %}
|
||||
- {{ san }}
|
||||
{% endfor %}
|
||||
certificatesDir: {{ kube_cert_dir }}
|
||||
|
|
|
@ -176,7 +176,7 @@ apiServer:
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
certSANs:
|
||||
{% for san in apiserver_sans.split() | unique %}
|
||||
{% for san in apiserver_sans %}
|
||||
- {{ san }}
|
||||
{% endfor %}
|
||||
timeoutForControlPlane: 5m0s
|
||||
|
|
Loading…
Reference in a new issue