From e0c9152bd4cc39a552cde7badef9b9cc87417ff7 Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Sat, 9 Nov 2024 15:55:34 +0100 Subject: [PATCH] Convert CoreDNS primary to kubectl_apply_stdin --- .../kubernetes-apps/ansible/tasks/coredns.yml | 28 ------------------- roles/kubernetes-apps/ansible/tasks/main.yml | 22 +++++++++------ roles/kubernetes-apps/ansible/vars/main.yml | 16 +++++++++++ 3 files changed, 29 insertions(+), 37 deletions(-) create mode 100644 roles/kubernetes-apps/ansible/vars/main.yml diff --git a/roles/kubernetes-apps/ansible/tasks/coredns.yml b/roles/kubernetes-apps/ansible/tasks/coredns.yml index 46e2006b9..1f73dabf1 100644 --- a/roles/kubernetes-apps/ansible/tasks/coredns.yml +++ b/roles/kubernetes-apps/ansible/tasks/coredns.yml @@ -1,32 +1,4 @@ --- -- name: Kubernetes Apps | Lay Down CoreDNS templates - template: - src: "{{ item.file }}.j2" - dest: "{{ kube_config_dir }}/{{ item.file }}" - mode: "0644" - loop: - - { name: coredns, file: coredns-clusterrole.yml, type: clusterrole } - - { name: coredns, file: coredns-clusterrolebinding.yml, type: clusterrolebinding } - - { name: coredns, file: coredns-config.yml, type: configmap } - - { name: coredns, file: coredns-deployment.yml, type: deployment } - - { name: coredns, file: coredns-sa.yml, type: sa } - - { name: coredns, file: coredns-svc.yml, type: svc } - - { name: dns-autoscaler, file: dns-autoscaler.yml, type: deployment } - - { name: dns-autoscaler, file: dns-autoscaler-clusterrole.yml, type: clusterrole } - - { name: dns-autoscaler, file: dns-autoscaler-clusterrolebinding.yml, type: clusterrolebinding } - - { name: coredns, file: coredns-poddisruptionbudget.yml, type: poddisruptionbudget, condition: coredns_pod_disruption_budget } - - { name: dns-autoscaler, file: dns-autoscaler-sa.yml, type: sa } - register: coredns_manifests - vars: - clusterIP: "{{ skydns_server }}" - when: - - dns_mode in ['coredns', 'coredns_dual'] - - inventory_hostname == groups['kube_control_plane'][0] - - enable_dns_autoscaler or item.name != 'dns-autoscaler' - - item.condition | default(True) - tags: - - coredns - - name: Kubernetes Apps | Lay Down Secondary CoreDNS Template template: src: "{{ item.src }}.j2" diff --git a/roles/kubernetes-apps/ansible/tasks/main.yml b/roles/kubernetes-apps/ansible/tasks/main.yml index 75df86a25..02c44c7e3 100644 --- a/roles/kubernetes-apps/ansible/tasks/main.yml +++ b/roles/kubernetes-apps/ansible/tasks/main.yml @@ -11,14 +11,6 @@ delay: 1 when: inventory_hostname == groups['kube_control_plane'][0] -- name: Kubernetes Apps | CoreDNS - import_tasks: "coredns.yml" - when: - - dns_mode in ['coredns', 'coredns_dual'] - - inventory_hostname == groups['kube_control_plane'][0] - tags: - - coredns - - name: Kubernetes Apps | nodelocalDNS import_tasks: "nodelocaldns.yml" when: @@ -27,6 +19,19 @@ tags: - nodelocaldns +- name: Kubernetes Apps | CoreDNS + command: + cmd: "{{ kubectl_apply_stdin }}" + stdin: "{{ lookup('template', item) }}" + delegate_to: "{{ groups['kube_control_plane'][0] }}" + run_once: true + loop: "{{ coredns_manifests | flatten }}" + tags: + - coredns + vars: + clusterIP: "{{ skydns_server }}" + when: dns_mode in ['coredns', 'coredns_dual'] + - name: Kubernetes Apps | Start Resources kube: name: "{{ item.item.name }}" @@ -36,7 +41,6 @@ filename: "{{ kube_config_dir }}/{{ item.item.file }}" state: "latest" with_items: - - "{{ coredns_manifests.results | default({}) }}" - "{{ coredns_secondary_manifests.results | default({}) }}" - "{{ nodelocaldns_manifests.results | default({}) }}" - "{{ nodelocaldns_second_manifests.results | default({}) }}" diff --git a/roles/kubernetes-apps/ansible/vars/main.yml b/roles/kubernetes-apps/ansible/vars/main.yml new file mode 100644 index 000000000..80eeaaad9 --- /dev/null +++ b/roles/kubernetes-apps/ansible/vars/main.yml @@ -0,0 +1,16 @@ +--- +dns_autoscaler_manifests: +- dns-autoscaler-sa.yml.j2 +- dns-autoscaler.yml.j2 +- dns-autoscaler-clusterrole.yml.j2 +- dns-autoscaler-clusterrolebinding.yml.j2 + +coredns_manifests: +- coredns-clusterrole.yml.j2 +- coredns-clusterrolebinding.yml.j2 +- coredns-config.yml.j2 +- coredns-deployment.yml.j2 +- coredns-sa.yml.j2 +- coredns-svc.yml.j2 +- "{{ dns_autoscaler_manifests if enable_dns_autoscaler else [] }}" +- "{{ coredns-poddisruptionbudget.yml.j2 if coredns_pod_disruption_budget else [] }}"