mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-03-09 13:39:30 -02:30
Create admin credential kubeconfig (#1647)
New files: /etc/kubernetes/admin.conf
/root/.kube/config
$GITDIR/artifacts/{kubectl,admin.conf}
Optional method to download kubectl and admin.conf if
kubeconfig_lcoalhost is set to true (default false)
This commit is contained in:
66
roles/kubernetes/client/tasks/main.yml
Normal file
66
roles/kubernetes/client/tasks/main.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
- name: Set first kube master
|
||||
set_fact:
|
||||
first_kube_master: "{{ hostvars[groups['kube-master'][0]]['access_ip'] | default(hostvars[groups['kube-master'][0]]['ip'] | default(hostvars[groups['kube-master'][0]]['ansible_default_ipv4']['address'])) }}"
|
||||
|
||||
- name: Set external kube-apiserver endpoint
|
||||
set_fact:
|
||||
external_apiserver_endpoint: >-
|
||||
{%- if loadbalancer_apiserver is defined and loadbalancer_apiserver.port is defined -%}
|
||||
https://{{ apiserver_loadbalancer_domain_name|default('lb-apiserver.kubernetes.local') }}:{{ loadbalancer_apiserver.port|default(kube_apiserver_port) }}
|
||||
{%- else -%}
|
||||
https://{{ first_kube_master }}:{{ kube_apiserver_port }}
|
||||
{%- endif -%}
|
||||
tags: facts
|
||||
|
||||
- name: Gather certs for admin kubeconfig
|
||||
slurp:
|
||||
src: "{{ item }}"
|
||||
delegate_to: "{{ groups['kube-master'][0] }}"
|
||||
delegate_facts: no
|
||||
register: admin_certs
|
||||
with_items:
|
||||
- "{{ kube_cert_dir }}/ca.pem"
|
||||
- "{{ kube_cert_dir }}/admin-{{ inventory_hostname }}.pem"
|
||||
- "{{ kube_cert_dir }}/admin-{{ inventory_hostname }}-key.pem"
|
||||
when: not kubeadm_enabled|d(false)|bool
|
||||
|
||||
- name: Write admin kubeconfig
|
||||
template:
|
||||
src: admin.conf.j2
|
||||
dest: "{{ kube_config_dir }}/admin.conf"
|
||||
when: not kubeadm_enabled|d(false)|bool
|
||||
|
||||
- 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
|
||||
mode: "0700"
|
||||
backup: yes
|
||||
|
||||
- name: Copy admin kubeconfig to ansible host
|
||||
fetch:
|
||||
src: "{{ kube_config_dir }}/admin.conf"
|
||||
dest: "{{ artifacts_dir }}/admin.conf"
|
||||
flat: yes
|
||||
validate_checksum: no
|
||||
become: no
|
||||
run_once: yes
|
||||
when: kubeconfig_localhost|default(false)
|
||||
|
||||
- name: Copy kubectl binary to ansible host
|
||||
fetch:
|
||||
src: "{{ bin_dir }}/kubectl"
|
||||
dest: "{{ artifacts_dir }}/kubectl"
|
||||
flat: yes
|
||||
validate_checksum: no
|
||||
become: no
|
||||
run_once: yes
|
||||
when: kubectl_localhost|default(false)
|
||||
Reference in New Issue
Block a user