From b5f076756b0818bce295a5c8ac72b10f1ad0a526 Mon Sep 17 00:00:00 2001 From: friedrich goerz Date: Tue, 2 Nov 2021 15:13:07 +0100 Subject: [PATCH] DEV-242: added code snippet to install hetzner CCM --- kubernetes.yml | 4 +++ roles/kubernetes-ccm/tasks/main.yml | 47 +++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 kubernetes.yml create mode 100644 roles/kubernetes-ccm/tasks/main.yml diff --git a/kubernetes.yml b/kubernetes.yml new file mode 100644 index 0000000..b9464eb --- /dev/null +++ b/kubernetes.yml @@ -0,0 +1,4 @@ +--- +- hosts: k8s-cluster + roles: + - kubernetes-ccm diff --git a/roles/kubernetes-ccm/tasks/main.yml b/roles/kubernetes-ccm/tasks/main.yml new file mode 100644 index 0000000..920eaa7 --- /dev/null +++ b/roles/kubernetes-ccm/tasks/main.yml @@ -0,0 +1,47 @@ +--- +- name: K8S-CCM | install needed pip dependencies + ansible.builtin.package: + name: + - python3-pip + state: latest + when: + - inventory_hostname == groups['kube-master'][0] + +- name: K8S-CCM | install needed pip dependencies + pip: + name: kubernetes + when: + - inventory_hostname == groups['kube-master'][0] + +- name: K8S-CCM | download Hetzner CCM + ansible.builtin.get_url: + url: https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/download/v1.12.0/ccm-networks.yaml + dest: /tmp/ccm.yaml + mode: '0664' + when: + - inventory_hostname == groups['kube-master'][0] + +- name: K8S-CCM | create secret for Hetzner CCM + community.kubernetes.k8s: + definition: + api_version: v1 + kind: Secret + metadata: + namespace: kube-system + name: hcloud + label: + app: ccm + provider: hcloud + type: Opaque + data: + network: "{{ stage | string | b64encode }}" + token: "{{ hetzner_authentication_token | string | b64encode }}" + when: + - inventory_hostname == groups['kube-master'][0] + +- name: K8S-CCM | Apply Hetzner CCM manifest to the cluster. + community.kubernetes.k8s: + state: present + src: /tmp/ccm.yaml + when: + - inventory_hostname == groups['kube-master'][0]