github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/templates/addons/external-dns-addon.yaml (about) 1 apiVersion: extensions.kubeblocks.io/v1alpha1 2 kind: Addon 3 metadata: 4 name: external-dns 5 labels: 6 {{- include "kubeblocks.labels" . | nindent 4 }} 7 {{- if .Values.keepAddons }} 8 annotations: 9 helm.sh/resource-policy: keep 10 {{- end }} 11 spec: 12 description: >- 13 ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers. 14 15 {{- if (.Capabilities.KubeVersion.GitVersion | contains "-eks") }} 16 Before enabling this addon, you should enable the aws-load-balancer-controller addon and create the hosted zone {{ index .Values "external-dns" "domain" }} in the Route53 first. 17 18 Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md 19 20 Finally, you can enable this addon by executing the following command, please note replacing the variables. 21 22 kbcli addon enable external-dns --set provider=aws \ 23 --set source=service \ 24 --set policy=sync \ 25 --set triggerLoopOnEvent=true \ 26 --set interval=5m \ 27 --set registry=txt \ 28 --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \ 29 --set domainFilters={{ index .Values "external-dns" "domain" }} \ 30 --set aws.credentials.accessKey=${accessKey} \ 31 --set aws.credentials.secretKey=${secretKey} \ 32 --set aws.region=${region} 33 34 {{- else if (.Capabilities.KubeVersion.GitVersion | contains "-ack") }} 35 Before enabling this addon, you should create the domain {{ index .Values "external-dns" "domain" }} in the Cloud DNS service or Private Zone service first. 36 37 Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/alibabacloud.md 38 39 Finally, you can enable this addon by executing the following command, please note replacing the variables. 40 41 kbcli addon enable external-dns --set provider=alibabacloud \ 42 --set source=service \ 43 --set policy=sync \ 44 --set triggerLoopOnEvent=true \ 45 --set interval=5m \ 46 --set registry=txt \ 47 --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \ 48 --set domainFilters={{ index .Values "external-dns" "domain" }} \ 49 --set alibabacloud.accessKeyId=${accessKeyId} \ 50 --set alibabacloud.accessKeySecret=${accessKeySecret} \ 51 --set alibabacloud.vpcId=${vpcId} 52 53 {{- else if (.Capabilities.KubeVersion.GitVersion | contains "-gke") }} 54 Before enabling this addon, you should create the zone {{ index .Values "external-dns" "domain" }} in the Cloud DNS service first. 55 56 Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/gke.md 57 58 Finally, you can enable this addon by executing the following command, please note replacing the variables. 59 60 kbcli addon enable external-dns --set provider=google \ 61 --set source=service \ 62 --set policy=sync \ 63 --set triggerLoopOnEvent=true \ 64 --set interval=5m \ 65 --set registry=txt \ 66 --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \ 67 --set domainFilters={{ index .Values "external-dns" "domain" }} \ 68 --set google.project=${project} \ 69 --set google.serviceAccountSecret=${serviceAccountSecret} \ 70 --set google.serviceAccountSecretKey=${serviceAccountSecretKey} \ 71 --set google.serviceAccountKey=${serviceAccountKey} 72 73 {{/* FIXME: Azure AKS does not have unique identifier in the git version, we should use other method to identify AKS */}} 74 {{- else if (.Capabilities.KubeVersion.GitVersion | contains "-aks") }} 75 Before enabling this addon, you should create the zone {{ index .Values "external-dns" "domain" }} in the Azure DNS or Azure Private Zone service first. 76 77 Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to these guides: 78 https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md 79 https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure-private-dns.md 80 81 If it's a zone in Azure Private Zone service, you can enable this addon by executing the following command, please note replacing the variables. 82 83 kbcli addon enable external-dns --set provider=azure-private-dns \ 84 --set source=service \ 85 --set policy=sync \ 86 --set triggerLoopOnEvent=true \ 87 --set interval=5m \ 88 --set registry=txt \ 89 --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \ 90 --set domainFilters={{ index .Values "external-dns" "domain" }} \ 91 --set azure.subscriptionId=${subscriptionId} \ 92 --set azure.resourceGroup=${resourceGroup} 93 94 If it's a zone in Azure DNS, please follow the command below. 95 96 kbcli addon enable external-dns --set provider=azure \ 97 --set source=service \ 98 --set policy=sync \ 99 --set triggerLoopOnEvent=true \ 100 --set interval=5m \ 101 --set registry=txt \ 102 --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \ 103 --set domainFilters={{ index .Values "external-dns" "domain" }} \ 104 --set azure.subscriptionId=${subscriptionId} \ 105 --set azure.resourceGroup=${resourceGroup} 106 107 {{- end }} 108 109 type: Helm 110 111 helm: 112 {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "external-dns" "version" "6.20.4" "values" .Values) | indent 4 }} 113 {{- include "kubeblocks.addonChartsImage" . | indent 4 }} 114 115 installOptions: 116 {{- if hasPrefix "oci://" .Values.addonChartLocationBase }} 117 version: 6.20.4 118 {{- end }} 119 120 installValues: 121 configMapRefs: 122 - name: external-dns-chart-kubeblocks-values 123 key: values-kubeblocks-override.yaml 124 125 valuesMapping: 126 valueMap: 127 replicaCount: replicaCount 128 129 jsonMap: 130 tolerations: tolerations 131 132 resources: 133 cpu: 134 requests: resources.requests.cpu 135 limits: resources.limits.cpu 136 memory: 137 requests: resources.requests.memory 138 limits: resources.limits.memory 139 140 defaultInstallValues: 141 - replicas: 1 142 {{- with .Values.tolerations }} 143 tolerations: {{ toJson . | quote }} 144 {{- end }} 145 146 installable: 147 autoInstall: {{ index .Values "external-dns" "enabled" }}