Skip to content
This repository has been archived by the owner on Feb 22, 2022. It is now read-only.

Commit

Permalink
[stable/external-dns] Add support for Dyn
Browse files Browse the repository at this point in the history
Signed-off-by: Devin Carlen <devin.carlen@gmail.com>
  • Loading branch information
devcamcar committed Mar 13, 2019
1 parent 8e4282c commit f3cf3c7
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 3 deletions.
2 changes: 1 addition & 1 deletion stable/external-dns/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: |
Configure external DNS servers (AWS Route53, Google CloudDNS and others)
for Kubernetes Ingresses and Services
name: external-dns
version: 1.7.0
version: 1.7.1
appVersion: 0.5.9
home: https://github.com/kubernetes-incubator/external-dns
sources:
Expand Down
3 changes: 3 additions & 0 deletions stable/external-dns/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ The following table lists the configurable parameters of the external-dns chart
| `domainFilters` | Limit possible target zones by domain suffixes (optional). | `[]` |
| `digitalocean.apiToken` | When using the DigitalOcean provider, sets `DO_TOKEN` in the environment (optional). | `""` |
| `dryRun` | When enabled, prints DNS record changes rather than actually performing them (optional). | `false` |
| `dyn.customerName` | When using Dyn provider, specify the Dyn Customer Name. | `""` |
| `dyn.username` | When using Dyn provider, specify the Dyn Username. | `""` |
| `dyn.password` | When using Dyn provider, specify the Dyn Password. | `""` |
| `extraArgs` | Optional object of extra args, as `name`: `value` pairs. Where the name is the command line arg to external-dns. | `{}` |
| `extraEnv` | Optional array of extra environment variables. Supply a `name` property and either `value` of `valueFrom` for each. | `[]` |
| `google.project` | When using the Google provider, specify the Google project (required when provider=google). | `""` |
Expand Down
21 changes: 21 additions & 0 deletions stable/external-dns/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,27 @@ spec:
name: {{ template "external-dns.fullname" . }}
key: digitalocean_api_token
{{- end }}
{{- if .Values.dyn.customerName }}
- name: EXTERNAL_DNS_DYN_CUSTOMER_NAME
valueFrom:
secretKeyRef:
name: {{ template "external-dns.fullname" . }}
key: dyn_customer_name
{{- end }}
{{- if .Values.dyn.username }}
- name: EXTERNAL_DNS_DYN_USERNAME
valueFrom:
secretKeyRef:
name: {{ template "external-dns.fullname" . }}
key: dyn_username
{{- end }}
{{- if .Values.dyn.password }}
- name: EXTERNAL_DNS_DYN_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "external-dns.fullname" . }}
key: dyn_password
{{- end }}
{{- if .Values.infoblox.wapiConnectionPoolSize }}
- name: EXTERNAL_DNS_INFOBLOX_HTTP_POOL_CONNECTIONS
value: "{{ .Values.infoblox.wapiConnectionPoolSize }}"
Expand Down
11 changes: 10 additions & 1 deletion stable/external-dns/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{{- if or (and .Values.aws.secretKey .Values.aws.accessKey) .Values.cloudflare.apiKey .Values.digitalocean.apiToken (and .Values.infoblox.wapiUsername .Values.infoblox.wapiPassword) .Values.rfc2136.tsigSecret .Values.extraEnv .Values.google.serviceAccountKey -}}
{{- if or (and .Values.aws.secretKey .Values.aws.accessKey) .Values.cloudflare.apiKey .Values.digitalocean.apiToken (and .Values.dyn.customerName .Values.dyn.username .Values.dyn.password) (and .Values.infoblox.wapiUsername .Values.infoblox.wapiPassword) .Values.rfc2136.tsigSecret .Values.extraEnv .Values.google.serviceAccountKey -}}
apiVersion: v1
kind: Secret
metadata:
Expand All @@ -20,6 +20,15 @@ data:
{{- if .Values.digitalocean.apiToken }}
digitalocean_api_token: {{ .Values.digitalocean.apiToken | b64enc | quote }}
{{- end }}
{{ if .Values.dyn.customerName }}
dyn_customer_name: {{ .Values.dyn.customerName | b64enc | quote }}
{{- end }}
{{ if .Values.dyn.username }}
dyn_username: {{ .Values.dyn.username | b64enc | quote }}
{{- end }}
{{ if .Values.dyn.password }}
dyn_password: {{ .Values.dyn.password | b64enc | quote }}
{{- end }}
{{- if and .Values.infoblox.wapiUsername .Values.infoblox.wapiPassword }}
infoblox_wapi_username: {{ .Values.infoblox.wapiUsername | b64enc | quote }}
infoblox_wapi_password: {{ .Values.infoblox.wapiPassword | b64enc | quote }}
Expand Down
8 changes: 7 additions & 1 deletion stable/external-dns/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sources:
# Allow external-dns to publish DNS records for ClusterIP services (optional)
publishInternalServices: false

## The DNS provider where the DNS records will be created (options: aws, google, inmemory, azure, rfc2136 )
## The DNS provider where the DNS records will be created (options: aws, google, inmemory, azure, dyn, rfc2136 )
provider: aws

# AWS Access keys to inject as environment variables
Expand Down Expand Up @@ -55,6 +55,12 @@ designate:
digitalocean:
apiToken: ""

# Configuration for Dyn provider.
dyn:
customer_name: ""
username: ""
password: ""

# When using the Google provider, specify the Google project (required when provider=google)
google:
project: ""
Expand Down

0 comments on commit f3cf3c7

Please sign in to comment.