2017-09-18 20:30:57 +08:00
|
|
|
---
|
|
|
|
- name: Set external kube-apiserver endpoint
|
|
|
|
set_fact:
|
2019-01-16 21:30:50 +08:00
|
|
|
external_apiserver_address: >-
|
2019-01-21 17:27:42 +08:00
|
|
|
{%- if loadbalancer_apiserver is defined and loadbalancer_apiserver.address is defined -%}
|
|
|
|
{{ loadbalancer_apiserver.address }}
|
2017-09-18 20:30:57 +08:00
|
|
|
{%- else -%}
|
2019-01-16 21:30:50 +08:00
|
|
|
{{ kube_apiserver_access_address }}
|
|
|
|
{%- endif -%}
|
|
|
|
external_apiserver_port: >-
|
2019-01-21 19:43:27 +08:00
|
|
|
{%- if loadbalancer_apiserver is defined and loadbalancer_apiserver.address is defined and loadbalancer_apiserver.port is defined -%}
|
2019-01-16 21:30:50 +08:00
|
|
|
{{ loadbalancer_apiserver.port|default(kube_apiserver_port) }}
|
|
|
|
{%- else -%}
|
|
|
|
{{ kube_apiserver_port }}
|
2017-09-18 20:30:57 +08:00
|
|
|
{%- endif -%}
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- facts
|
2017-09-18 20:30:57 +08:00
|
|
|
|
|
|
|
- name: Create kube config dir
|
|
|
|
file:
|
|
|
|
path: "/root/.kube"
|
|
|
|
mode: "0700"
|
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: Copy admin kubeconfig to root user home
|
|
|
|
copy:
|
|
|
|
src: "{{ kube_config_dir }}/admin.conf"
|
|
|
|
dest: "/root/.kube/config"
|
|
|
|
remote_src: yes
|
2018-05-14 17:29:48 +08:00
|
|
|
mode: "0600"
|
2017-09-18 20:30:57 +08:00
|
|
|
backup: yes
|
|
|
|
|
2019-01-28 17:59:15 +08:00
|
|
|
- name: Create kube artifacts dir
|
|
|
|
file:
|
|
|
|
path: "{{ artifacts_dir }}"
|
|
|
|
mode: "0750"
|
|
|
|
state: directory
|
|
|
|
delegate_to: localhost
|
|
|
|
become: no
|
|
|
|
run_once: yes
|
|
|
|
when: kubeconfig_localhost|default(false)
|
|
|
|
|
2019-01-16 21:30:50 +08:00
|
|
|
- name: Generate admin kubeconfig with external api endpoint
|
|
|
|
shell: >-
|
|
|
|
{{ bin_dir }}/kubeadm alpha
|
|
|
|
{% if kubeadm_version is version('v1.13.0', '<') %}
|
|
|
|
phase
|
|
|
|
{% endif %}
|
|
|
|
kubeconfig user
|
|
|
|
--client-name kubernetes-admin
|
|
|
|
--org system:masters
|
2019-03-20 20:56:57 +08:00
|
|
|
--cert-dir {{ kube_config_dir }}/ssl
|
2019-01-16 21:30:50 +08:00
|
|
|
--apiserver-advertise-address {{ external_apiserver_address }}
|
|
|
|
--apiserver-bind-port {{ external_apiserver_port }}
|
2019-03-26 18:03:19 +08:00
|
|
|
environment: "{{ proxy_env }}"
|
2019-01-16 21:30:50 +08:00
|
|
|
run_once: yes
|
|
|
|
register: admin_kubeconfig
|
|
|
|
|
|
|
|
- name: Write admin kubeconfig on ansible host
|
|
|
|
copy:
|
|
|
|
content: "{{ admin_kubeconfig.stdout }}"
|
2017-09-18 20:30:57 +08:00
|
|
|
dest: "{{ artifacts_dir }}/admin.conf"
|
2019-01-16 21:30:50 +08:00
|
|
|
mode: 0640
|
|
|
|
delegate_to: localhost
|
|
|
|
become: no
|
2017-09-18 20:30:57 +08:00
|
|
|
run_once: yes
|
|
|
|
when: kubeconfig_localhost|default(false)
|
|
|
|
|
|
|
|
- name: Copy kubectl binary to ansible host
|
|
|
|
fetch:
|
|
|
|
src: "{{ bin_dir }}/kubectl"
|
2018-04-09 18:19:26 +08:00
|
|
|
dest: "{{ artifacts_dir }}/kubectl"
|
2017-09-18 20:30:57 +08:00
|
|
|
flat: yes
|
|
|
|
validate_checksum: no
|
|
|
|
become: no
|
|
|
|
run_once: yes
|
|
|
|
when: kubectl_localhost|default(false)
|
2018-02-16 20:53:35 +08:00
|
|
|
|
|
|
|
- name: create helper script kubectl.sh on ansible host
|
|
|
|
copy:
|
|
|
|
content: |
|
|
|
|
#!/bin/bash
|
2018-11-20 10:28:51 +08:00
|
|
|
kubectl --kubeconfig=${BASH_SOURCE%/*}/admin.conf $@
|
2018-02-16 20:53:35 +08:00
|
|
|
dest: "{{ artifacts_dir }}/kubectl.sh"
|
|
|
|
mode: 0755
|
|
|
|
become: no
|
|
|
|
run_once: yes
|
|
|
|
delegate_to: localhost
|
|
|
|
when: kubectl_localhost|default(false) and kubeconfig_localhost|default(false)
|