From 03c07a185184bcee9f85b77d03a70d24c49bcfc4 Mon Sep 17 00:00:00 2001 From: Adrien Reslinger Date: Tue, 18 Jul 2023 19:32:02 +0200 Subject: [PATCH] Update external-dns deployment --- defaults/main.yml | 5 +++++ tasks/main.yml | 16 +++++++++++----- templates/helm-values.yaml.j2 | 31 +++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 templates/helm-values.yaml.j2 diff --git a/defaults/main.yml b/defaults/main.yml index 0876ab1..9060139 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,3 +2,8 @@ my_context: minikube externaldns_namespace: "external-dns" externaldns_version: "v0.13.5" externaldns_chart_version: "1.13.0" + +externaldns_provider: "cloudflare" +# externaldns_cloudflare_email: "toto@example.org" +# externaldns_cloudflare_apikey: "12345" +# externaldns_cloudflare_token: diff --git a/tasks/main.yml b/tasks/main.yml index e61267f..66d07a0 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,6 +5,16 @@ kubernetes.core.helm_repository: name: external-dns repo_url: "https://kubernetes-sigs.github.io/external-dns" + + - name: Install DNSEndpoint CRD + kubernetes.core.k8s: + state: "present" + context: "{{ my_context }}" + namespace: '{{ externaldns_namespace }}' +# merge_type: merge + apply: true + resource_definition: "{{ lookup('url', 'https://github.com/kubernetes-sigs/external-dns/raw/master/docs/contributing/crd-source/crd-manifest.yaml', split_lines=False) | from_yaml_all }}" + - name: Deploy latest version of Kubernetes External DNS kubernetes.core.helm: context: "{{ my_context }}" @@ -13,10 +23,6 @@ create_namespace: true chart_ref: external-dns/external-dns chart_version: "{{ externaldns_chart_version }}" - values: -# image: -# tag: "{{ externaldns_version }}" - env: [] - provider: aws + values: "{{ lookup('template', 'helm-values.yaml.j2') | from_yaml }}" tags: - externaldns diff --git a/templates/helm-values.yaml.j2 b/templates/helm-values.yaml.j2 new file mode 100644 index 0000000..5ee380f --- /dev/null +++ b/templates/helm-values.yaml.j2 @@ -0,0 +1,31 @@ +{% if externaldns_version is defined %} +image: + tag: "{{ externaldns_version }}" +{% endif %} +env: +{% if externaldns_provider == "cloudflare" %} +{% if externaldns_cloudflare_email is defined and externaldns_cloudflare_apikey is defined %} + - name: "CF_API_KEY" + value: "{{ externaldns_cloudflare_apikey }}" + - name: "CF_API_EMAIL" + value: "{{ externaldns_cloudflare_email }}" +{% elif externaldns_cloudflare_token is defined%} + - name: "CF_API_TOKEN" + value: "{{ externaldns_cloudflare_token }}" +{% endif %} +{% endif %} +provider: {{ externaldns_provider }} +txtOwnerId: "{{ my_context }}" +serviceMonitor: + enabled: false +sources: +# - traefik-proxy + - service + - ingress + - node + - crd +# policy: upsert-only # default +# policy: sync +extraArgs: + - --crd-source-apiversion="externaldns.k8s.io/v1alpha1" + - --crd-source-kind="DNSEndpoint"