From f3ae6b8b9f6834747e42afe6f7648378463a880e Mon Sep 17 00:00:00 2001 From: OldTyT Date: Mon, 26 Feb 2024 11:20:30 +0000 Subject: [PATCH] feat: added install kubectl and helm --- defaults/main.yml | 8 ++++++++ tasks/configuration.yml | 12 ++++++++++++ tasks/installation.yml | 6 +++--- tasks/installation_helm.yml | 15 +++++++++++++++ tasks/installation_kubectl.yml | 9 +++++++++ tasks/main.yml | 24 +++++++++++++++++++++--- 6 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 tasks/installation_helm.yml create mode 100644 tasks/installation_kubectl.yml diff --git a/defaults/main.yml b/defaults/main.yml index 06a1bc9..29e29f1 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -8,3 +8,11 @@ k3s_datastore_endpoint: "" k3s_token: "" k3s_kubeconfig_mode: "600" k3s_version: "v1.28.3+k3s2" + +k3s_kubectl_force_update: false +k3s_kubectl_version: "v1.28.3" +k3s_kubectl_url: "https://dl.k8s.io/release/{{ k3s_kubectl_version }}/bin/linux/amd64/kubectl" + +k3s_helm_force_update: false +k3s_helm_version: "v3.13.1" +k3s_helm_url: "https://github.com/helm/helm/releases/download/{{ k3s_helm_version }}/helm-{{ k3s_helm_version }}-linux-amd64.tar.gz" diff --git a/tasks/configuration.yml b/tasks/configuration.yml index bd46ada..631db71 100644 --- a/tasks/configuration.yml +++ b/tasks/configuration.yml @@ -18,3 +18,15 @@ enabled: yes name: k3s when: k3s_env.changed or k3s_master.changed + +- name: Ensure the .kube directory exists + file: + path: /root/.kube + state: directory + mode: '0700' + +- name: Link /etc/rancher/k3s/k3s.yaml to /root/.kube/config + file: + src: /etc/rancher/k3s/k3s.yaml + dest: /root/.kube/config + state: link diff --git a/tasks/installation.yml b/tasks/installation.yml index f76a0fc..587174b 100644 --- a/tasks/installation.yml +++ b/tasks/installation.yml @@ -6,7 +6,7 @@ dest: "{{ k3s_binary_dir }}/{{ k3s_binary_name }}" owner: root group: root - mode: 0755 + mode: 0750 when: ansible_facts.architecture == "x86_64" - name: Download k3s binary arm64 @@ -16,7 +16,7 @@ dest: "{{ k3s_binary_dir }}/{{ k3s_binary_name }}" owner: root group: root - mode: 0755 + mode: 0750 when: - ( ansible_facts.architecture is search("arm") and ansible_facts.userspace_bits == "64" ) or @@ -29,7 +29,7 @@ dest: "{{ k3s_binary_dir }}/{{ k3s_binary_name }}" owner: root group: root - mode: 0755 + mode: 0750 when: - ansible_facts.architecture is search("arm") - ansible_facts.userspace_bits == "32" diff --git a/tasks/installation_helm.yml b/tasks/installation_helm.yml new file mode 100644 index 0000000..b055449 --- /dev/null +++ b/tasks/installation_helm.yml @@ -0,0 +1,15 @@ +--- +- name: Download helm binary + get_url: + url: "{{ k3s_helm_url }}" + dest: "/tmp/helm-{{ k3s_helm_version }}.tar.gz" + when: ansible_facts.architecture == "x86_64" + +- name: extract binary + unarchive: + src: "/tmp/helm-{{ k3s_helm_version }}.tar.gz" + dest: "{{ k3s_binary_dir }}/helm" + owner: root + group: "root" + mode: 0750 + remote_src: true diff --git a/tasks/installation_kubectl.yml b/tasks/installation_kubectl.yml new file mode 100644 index 0000000..71e412c --- /dev/null +++ b/tasks/installation_kubectl.yml @@ -0,0 +1,9 @@ +--- +- name: Download kubectl binary + get_url: + url: "{{ k3s_kubectl_url }}" + dest: "{{ k3s_binary_dir }}/kubectl" + owner: root + group: root + mode: 0750 + when: ansible_facts.architecture == "x86_64" diff --git a/tasks/main.yml b/tasks/main.yml index a7220a0..f102803 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,15 +1,33 @@ --- -- name: check if binary already exists +- name: check if binary k3s already exists stat: path: "{{ k3s_binary_dir }}/{{ k3s_binary_name }}" - register: binary_check_result + register: binary_k3s_check_result - name: install binary include_tasks: installation.yml - when: not binary_check_result.stat.exists or k3s_force_update + when: not binary_k3s_check_result.stat.exists or k3s_force_update - name: general preparation include_tasks: preparation.yml +- name: check if binary kubectl already exists + stat: + path: "{{ k3s_binary_dir }}/kubectl" + register: binary_kubectl_check_result + +- name: install binary kubectl + include_tasks: installation_kubectl.yml + when: not binary_kubectl_check_result.stat.exists or k3s_kubectl_force_update + +- name: check if binary helm already exists + stat: + path: "{{ k3s_binary_dir }}/helm" + register: binary_helm_check_result + +- name: install binary helm + include_tasks: installation_helm.yml + when: not binary_helm_check_result.stat.exists or k3s_helm_force_update + - name: configuration include_tasks: configuration.yml