From 119f760bc517ca037fbbc90bc741902c75c4696c Mon Sep 17 00:00:00 2001 From: Michal Zegan Date: Tue, 23 Apr 2019 16:34:58 +0200 Subject: Add setup for kubectl and helm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the kubeconfig is copied from the cluster config directory to ~/.kube/config. Also, the playbook runs kubectl and helm roles to install tools. Change-Id: I29ee98f6502bbb7923b1ae6812dd642ca206dbce Issue-ID: OOM-1778 Signed-off-by: Petr OspalĂ˝ Signed-off-by: Michal Zegan --- ansible/rke.yml | 2 ++ ansible/roles/kubectl/defaults/main.yml | 3 --- ansible/roles/kubectl/tasks/main.yml | 10 ---------- ansible/roles/kubectl/templates/kube_config.j2 | 19 ------------------- ansible/roles/rancher/defaults/main.yml | 2 ++ ansible/roles/rancher/tasks/rancher_server.yml | 10 ++++++++++ ansible/roles/rancher/templates/kube_config.j2 | 19 +++++++++++++++++++ ansible/roles/rke/defaults/main.yml | 2 ++ ansible/roles/rke/tasks/rke_deploy.yml | 12 ++++++++++++ 9 files changed, 47 insertions(+), 32 deletions(-) delete mode 100644 ansible/roles/kubectl/templates/kube_config.j2 create mode 100644 ansible/roles/rancher/templates/kube_config.j2 (limited to 'ansible') diff --git a/ansible/rke.yml b/ansible/rke.yml index 81e964d9..e0d6dcf1 100644 --- a/ansible/rke.yml +++ b/ansible/rke.yml @@ -24,3 +24,5 @@ - role: rke vars: mode: deploy + - kubectl + - helm diff --git a/ansible/roles/kubectl/defaults/main.yml b/ansible/roles/kubectl/defaults/main.yml index 78c15c75..b922fb58 100644 --- a/ansible/roles/kubectl/defaults/main.yml +++ b/ansible/roles/kubectl/defaults/main.yml @@ -1,5 +1,2 @@ --- kubectl_bin_dir: /usr/local/bin -kube_directory: ~/.kube -# Defaulting to rancher setup -kube_server: "https://{{ ansible_host }}:8080/r/projects/{{ k8s_env_id | mandatory }}/kubernetes:6443" \ No newline at end of file diff --git a/ansible/roles/kubectl/tasks/main.yml b/ansible/roles/kubectl/tasks/main.yml index 9ecb5c44..7c77c3c5 100644 --- a/ansible/roles/kubectl/tasks/main.yml +++ b/ansible/roles/kubectl/tasks/main.yml @@ -5,13 +5,3 @@ dest: "{{ kubectl_bin_dir }}/kubectl" remote_src: true mode: 0755 - -- name: Ensure .kube directory exists - file: - path: "{{ kube_directory }}" - state: directory - -- name: Create kube config - template: - src: kube_config.j2 - dest: "{{ kube_directory }}/config" diff --git a/ansible/roles/kubectl/templates/kube_config.j2 b/ansible/roles/kubectl/templates/kube_config.j2 deleted file mode 100644 index 586c59d4..00000000 --- a/ansible/roles/kubectl/templates/kube_config.j2 +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Config -clusters: -- cluster: - api-version: v1 - insecure-skip-tls-verify: true - server: "{{ kube_server }}" - name: "{{ app_name }}" -contexts: -- context: - cluster: "{{ app_name }}" - user: "{{ app_name }}" - name: "{{ app_name }}" -current-context: "{{ app_name }}" -users: -- name: "{{ app_name }}" - user: - token: "{{ (['Basic', [key_public, key_private] | join(':') | b64encode] | join(' ')) | b64encode }}" - diff --git a/ansible/roles/rancher/defaults/main.yml b/ansible/roles/rancher/defaults/main.yml index 6d354e6e..e4e12d23 100644 --- a/ansible/roles/rancher/defaults/main.yml +++ b/ansible/roles/rancher/defaults/main.yml @@ -4,6 +4,8 @@ rancher_remove_other_env: true rancher_redeploy_k8s_env: true rancher_cluster_health_state: healthy rancher_cluster_health_check_retries: 30 +kube_directory: ~/.kube +kube_server: "https://{{ ansible_host }}:8080/r/projects/{{ k8s_env_id | mandatory }}/kubernetes:6443" rancher: # The following variables can be set via the UI under advanced/settings. # All of these affect tables in the cattle db and are uninteresting diff --git a/ansible/roles/rancher/tasks/rancher_server.yml b/ansible/roles/rancher/tasks/rancher_server.yml index a0893b0b..f467ff3f 100644 --- a/ansible/roles/rancher/tasks/rancher_server.yml +++ b/ansible/roles/rancher/tasks/rancher_server.yml @@ -93,3 +93,13 @@ data: option: audit_log.purge.after.seconds value: "{{ rancher.audit_log_purge_after_seconds }}" + +- name: Ensure .kube directory exists + file: + path: "{{ kube_directory }}" + state: directory + +- name: Create kube config + template: + src: kube_config.j2 + dest: "{{ kube_directory }}/config" diff --git a/ansible/roles/rancher/templates/kube_config.j2 b/ansible/roles/rancher/templates/kube_config.j2 new file mode 100644 index 00000000..586c59d4 --- /dev/null +++ b/ansible/roles/rancher/templates/kube_config.j2 @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Config +clusters: +- cluster: + api-version: v1 + insecure-skip-tls-verify: true + server: "{{ kube_server }}" + name: "{{ app_name }}" +contexts: +- context: + cluster: "{{ app_name }}" + user: "{{ app_name }}" + name: "{{ app_name }}" +current-context: "{{ app_name }}" +users: +- name: "{{ app_name }}" + user: + token: "{{ (['Basic', [key_public, key_private] | join(':') | b64encode] | join(' ')) | b64encode }}" + diff --git a/ansible/roles/rke/defaults/main.yml b/ansible/roles/rke/defaults/main.yml index 3e1c26a6..cbf03b74 100644 --- a/ansible/roles/rke/defaults/main.yml +++ b/ansible/roles/rke/defaults/main.yml @@ -2,8 +2,10 @@ rke_binary: rke rke_username: rke rke_bin_dir: /usr/local/bin +kube_config_dir: "{{ ansible_env.HOME }}/.kube" cluster_config_dir: "{{ app_data_path }}/cluster" rke: + # rke (rancher) images etcd: rancher/coreos-etcd:v3.2.24-rancher1 alpine: rancher/rke-tools:v0.1.27 nginx_proxy: rancher/rke-tools:v0.1.27 diff --git a/ansible/roles/rke/tasks/rke_deploy.yml b/ansible/roles/rke/tasks/rke_deploy.yml index 7b3e2510..9983d08a 100644 --- a/ansible/roles/rke/tasks/rke_deploy.yml +++ b/ansible/roles/rke/tasks/rke_deploy.yml @@ -3,3 +3,15 @@ command: "{{ rke_bin_dir }}/rke up --config cluster.yml" args: chdir: "{{ cluster_config_dir }}" + +- name: Ensure .kube directory is present + file: + path: "{{ kube_config_dir }}" + state: directory + +- name: Setup kubeconfig + copy: + src: "{{ cluster_config_dir }}/kube_config_cluster.yml" + dest: "{{ kube_config_dir }}/config" + remote_src: true + mode: 0755 -- cgit 1.2.3-korg