[bitnami/external-dns] add alibaba cloud configuration parameters (#2566)

* [bitnami/external-dns] add alibaba cloud configuration parameters

* [bitnami/external-dns] Update components versions

Signed-off-by: Bitnami Containers <containers@bitnami.com>

Co-authored-by: Miguel Ángel Cabrera Miñagorri <macabrera@bitnami.com>
Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
kahkeng
2020-05-13 04:30:20 -07:00
committed by GitHub
parent 1bd1e7bc77
commit 9ac254036b
7 changed files with 87 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
apiVersion: v1
name: external-dns
version: 2.22.4
version: 2.24.0
appVersion: 0.7.1
description: ExternalDNS is a Kubernetes addon that configures public DNS servers with information about exposed Kubernetes services to make them discoverable.
keywords:

View File

@@ -67,6 +67,10 @@ The following table lists the configurable parameters of the external-dns chart
| `publishInternalServices` | Whether to publish DNS records for ClusterIP services or not | `false` |
| `publishHostIP` | Allow external-dns to publish host-ip for headless services | `false` |
| `serviceTypeFilter` | The service types to take care about (default: all, options: ClusterIP, NodePort, LoadBalancer, ExternalName) | `[]` |
| `alibabacloud.accessKeyId` | When using the Alibaba Cloud provider, set `accessKeyId` in the Alibaba Cloud configuration file (optional) | `""` |
| `alibabacloud.accessKeySecret` | When using the Alibaba Cloud provider, set `accessKeySecret` in the Alibaba Cloud configuration file (optional) | `""` |
| `alibabacloud.regionId` | When using the Alibaba Cloud provider, set `regionId` in the Alibaba Cloud configuration file (optional) | `""` |
| `alibabacloud.zoneType` | When using the Alibaba Cloud provider, filter for zones of this type (optional, options: public, private) | `""` |
| `aws.credentials.accessKey` | When using the AWS provider, set `aws_access_key_id` in the AWS credentials (optional) | `""` |
| `aws.credentials.secretKey` | When using the AWS provider, set `aws_secret_access_key` in the AWS credentials (optional) | `""` |
| `aws.credentials.mountPath` | When using the AWS provider, determine `mountPath` for `credentials` secret | `"/.aws"` |

View File

@@ -114,7 +114,9 @@ imagePullSecrets:
Return true if a secret object should be created
*/}}
{{- define "external-dns.createSecret" -}}
{{- if and (eq .Values.provider "aws") .Values.aws.credentials.secretKey .Values.aws.credentials.accessKey (not .Values.aws.credentials.secretName) }}
{{- if and (eq .Values.provider "alibabacloud") .Values.alibabacloud.accessKeyId .Values.alibabacloud.accessKeySecret (not .Values.alibabacloud.secretName) }}
{{- true -}}
{{- else if and (eq .Values.provider "aws") .Values.aws.credentials.secretKey .Values.aws.credentials.accessKey (not .Values.aws.credentials.secretName) }}
{{- true -}}
{{- else if and (eq .Values.provider "azure") (or (and .Values.azure.resourceGroup .Values.azure.tenantId .Values.azure.subscriptionId .Values.azure.aadClientId .Values.azure.aadClientSecret (not .Values.azure.useManagedIdentityExtension)) (and .Values.azure.resourceGroup .Values.azure.tenantId .Values.azure.subscriptionId .Values.azure.useManagedIdentityExtension)) (not .Values.azure.secretName) -}}
{{- true -}}
@@ -148,7 +150,9 @@ Return true if a secret object should be created
Return the name of the Secret used to store the passwords
*/}}
{{- define "external-dns.secretName" -}}
{{- if and (eq .Values.provider "aws") .Values.aws.credentials.secretName }}
{{- if and (eq .Values.provider "alibabacloud") .Values.alibabacloud.secretName }}
{{- .Values.alibabacloud.secretName }}
{{- else if and (eq .Values.provider "aws") .Values.aws.credentials.secretName }}
{{- .Values.aws.credentials.secretName }}
{{- else if and (or (eq .Values.provider "azure") (eq .Values.provider "azure-private-dns")) .Values.azure.secretName }}
{{- .Values.azure.secretName }}
@@ -163,6 +167,20 @@ Return the name of the Secret used to store the passwords
{{- end -}}
{{- end -}}
{{- define "external-dns.alibabacloud-credentials" -}}
{
{{- if .Values.alibabacloud.regionId }}
"regionId": "{{ .Values.alibabacloud.regionId }}",
{{- end}}
{{- if .Values.alibabacloud.accessKeyId }}
"accessKeyId": "{{ .Values.alibabacloud.accessKeyId }}",
{{- end}}
{{- if .Values.alibabacloud.accessKeySecret }}
"accessKeySecret": "{{ .Values.alibabacloud.accessKeySecret }}"
{{- end}}
}
{{ end }}
{{- define "external-dns.aws-credentials" }}
[default]
aws_access_key_id = {{ .Values.aws.credentials.accessKey }}

View File

@@ -109,6 +109,15 @@ spec:
{{- range .Values.sources }}
- --source={{ . }}
{{- end }}
{{- if eq .Values.provider "alibabacloud" }}
# Alibaba Cloud arguments
{{- if or (and .Values.alibabacloud.accessKeyId .Values.alibabacloud.accessKeySecret) .Values.alibabacloud.secretName }}
- --alibaba-cloud-config-file=/etc/kubernetes/alibaba-cloud.json
{{- end }}
{{- if .Values.alibabacloud.zoneType }}
- --alibaba-cloud-zone-type={{ .Values.alibabacloud.zoneType }}
{{- end }}
{{- end }}
{{- if or (eq .Values.provider "aws") (eq .Values.provider "aws-sd") }}
# AWS arguments
{{- if .Values.aws.zoneType }}
@@ -433,6 +442,12 @@ spec:
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- end }}
volumeMounts:
{{- if and (eq .Values.provider "alibabacloud") (or (and .Values.alibabacloud.accessKeyId .Values.alibabacloud.accessKeySecret) .Values.alibabacloud.secretName) }}
# Alibaba Cloud mountPath(s)
- name: alibabacloud-config-file
mountPath: /etc/kubernetes/
readOnly: true
{{- end }}
{{- if and (eq .Values.provider "aws") (or (and .Values.aws.credentials.secretKey .Values.aws.credentials.accessKey) .Values.aws.credentials.secretName) }}
# AWS mountPath(s)
- name: aws-credentials
@@ -485,6 +500,12 @@ spec:
{{- toYaml .Values.extraVolumeMounts | nindent 12 }}
{{- end }}
volumes:
{{- if and (eq .Values.provider "alibabacloud") (or (and .Values.alibabacloud.accessKeyId .Values.alibabacloud.accessKeySecret) .Values.alibabacloud.secretName) }}
# Alibaba Cloud volume(s)
- name: alibabacloud-config-file
secret:
secretName: {{ template "external-dns.secretName" . }}
{{- end }}
{{- if and (eq .Values.provider "aws") (or (and .Values.aws.credentials.secretKey .Values.aws.credentials.accessKey) .Values.aws.credentials.secretName) }}
# AWS volume(s)
- name: aws-credentials

View File

@@ -6,6 +6,9 @@ metadata:
labels: {{ include "external-dns.labels" . | nindent 4 }}
type: Opaque
data:
{{- if eq .Values.provider "alibabacloud" }}
alibaba-cloud.json: {{ include "external-dns.alibabacloud-credentials" . | b64enc | quote }}
{{- end }}
{{- if eq .Values.provider "aws" }}
credentials: {{ include "external-dns.aws-credentials" . | b64enc | quote }}
{{- if .Values.aws.region }}

View File

@@ -13,7 +13,7 @@
image:
registry: docker.io
repository: bitnami/external-dns
tag: 0.7.1-debian-10-r51
tag: 0.7.1-debian-10-r53
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
@@ -40,7 +40,7 @@ sources:
- ingress
## DNS provider where the DNS records will be created. Available providers are:
## - aws, azure, cloudflare, coredns, designate, digitalocoean, google, infoblox, rfc2136, transip
## - alibabacloud, aws, azure, cloudflare, coredns, designate, digitalocoean, google, infoblox, rfc2136, transip
##
provider: aws
@@ -69,6 +69,23 @@ publishHostIP: false
##
serviceTypeFilter: []
## Alibaba cloud configuration to be set via arguments/env. variables
##
alibabacloud:
## These will be added to /etc/kubernetes/alibaba-cloud.json via secret
accessKeyId: ""
accessKeySecret: ""
regionId: ""
## Use an existing secret with key "alibaba-cloud.json" defined.
## This ignores alibabacloud.accessKeyId, and alibabacloud.accessKeySecret
##
# secretName:
## Zone Filter. Available values are: public, private, or no value for both
##
zoneType: ""
## AWS configuration to be set via arguments/env. variables
##
aws:

View File

@@ -13,7 +13,7 @@
image:
registry: docker.io
repository: bitnami/external-dns
tag: 0.7.1-debian-10-r51
tag: 0.7.1-debian-10-r53
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
@@ -40,7 +40,7 @@ sources:
- ingress
## DNS provider where the DNS records will be created. Available providers are:
## - aws, azure, azure-private-dns, cloudflare, coredns, designate, digitalocean, google, infoblox, rfc2136, transip
## - alibabacloud, aws, azure, azure-private-dns, cloudflare, coredns, designate, digitalocean, google, infoblox, rfc2136, transip
##
provider: aws
@@ -69,6 +69,23 @@ publishHostIP: false
##
serviceTypeFilter: []
## Alibaba cloud configuration to be set via arguments/env. variables
##
alibabacloud:
## These will be added to /etc/kubernetes/alibaba-cloud.json via secret
accessKeyId: ""
accessKeySecret: ""
regionId: ""
## Use an existing secret with key "alibaba-cloud.json" defined.
## This ignores alibabacloud.accessKeyId, and alibabacloud.accessKeySecret
##
# secretName:
## Zone Filter. Available values are: public, private, or no value for both
##
zoneType: ""
## AWS configuration to be set via arguments/env. variables
##
aws: