Kaynağa Gözat

ddns-updater - update listen address variable and add new providers (#2140)

* ddns-updater - update listen address variable

* bump image

* add 2 providers

* easydns

* go ip

* hetzner

* name.com

* last 3

* typo

* another typo

* fix easydns

* update ip providers

* fix goip

* fix goip domain

* another fix for goip

* fix hetzner

* formatting

* typo
Stavros Kois 1 yıl önce
ebeveyn
işleme
d2a3e6c89f
24 değiştirilmiş dosya ile 542 ekleme ve 24 silme
  1. 2 2
      library/ix-dev/community/ddns-updater/Chart.yaml
  2. 10 9
      library/ix-dev/community/ddns-updater/ci/config-values.yaml
  3. 18 0
      library/ix-dev/community/ddns-updater/ci/desec-values.yaml
  4. 19 0
      library/ix-dev/community/ddns-updater/ci/easydns-values.yaml
  5. 19 0
      library/ix-dev/community/ddns-updater/ci/goip-values.yaml
  6. 20 0
      library/ix-dev/community/ddns-updater/ci/hetzner-values.yaml
  7. 18 0
      library/ix-dev/community/ddns-updater/ci/ionos-values.yaml
  8. 20 0
      library/ix-dev/community/ddns-updater/ci/namecom-values.yaml
  9. 20 0
      library/ix-dev/community/ddns-updater/ci/netcup-values.yaml
  10. 19 0
      library/ix-dev/community/ddns-updater/ci/nowdns-values.yaml
  11. 19 0
      library/ix-dev/community/ddns-updater/ci/zoneedit-values.yaml
  12. 208 10
      library/ix-dev/community/ddns-updater/questions.yaml
  13. 2 1
      library/ix-dev/community/ddns-updater/templates/_configuration.tpl
  14. 1 1
      library/ix-dev/community/ddns-updater/templates/_ddns.tpl
  15. 14 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_desec.tpl
  16. 16 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_easydns.tpl
  17. 16 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_goipde.tpl
  18. 18 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_hetzner.tpl
  19. 14 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_ionos.tpl
  20. 18 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_namecom.tpl
  21. 18 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_netcup.tpl
  22. 16 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_nowdns.tpl
  23. 16 0
      library/ix-dev/community/ddns-updater/templates/dnsProviders/_zoneedit.tpl
  24. 1 1
      library/ix-dev/community/ddns-updater/values.yaml

+ 2 - 2
library/ix-dev/community/ddns-updater/Chart.yaml

@@ -3,9 +3,9 @@ description: Lightweight universal DDNS Updater with web UI
 annotations:
   title: DDNS Updater
 type: application
-version: 1.0.26
+version: 1.0.27
 apiVersion: v2
-appVersion: 'v2.5.0'
+appVersion: 2.6.0
 kubeVersion: '>=1.16.0-0'
 maintainers:
   - name: truenas

+ 10 - 9
library/ix-dev/community/ddns-updater/ci/config-values.yaml

@@ -35,15 +35,16 @@ ddnsConfig:
     - gotify://gotify-host/token
   publicIpDnsProviders:
     - provider: all
-  publicIpHttpProviders:
-    - provider: custom
-      custom: https://ifconfig.io/ip
-  publicIpv4HttpProviders:
-    - provider: custom
-      custom: https://api.ipify.org
-  publicIpv6HttpProviders:
-    - provider: custom
-      custom: https://api6.ipify.org
+  # FIXME: Custom providers stopped working on 2.6.0
+  # publicIpHttpProviders:
+  #   - provider: custom
+  #     custom: https://ifconfig.io/ip
+  # publicIpv4HttpProviders:
+  #   - provider: custom
+  #     custom: https://api.ipify.org
+  # publicIpv6HttpProviders:
+  #   - provider: custom
+  #     custom: https://api6.ipify.org
 
   additionalEnvs:
     - name: LOG_LEVEL

+ 18 - 0
library/ix-dev/community/ddns-updater/ci/desec-values.yaml

@@ -0,0 +1,18 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: desec
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      desecToken: password

+ 19 - 0
library/ix-dev/community/ddns-updater/ci/easydns-values.yaml

@@ -0,0 +1,19 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: easydns
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      easyDnsUsername: user
+      easyDnsToken: password

+ 19 - 0
library/ix-dev/community/ddns-updater/ci/goip-values.yaml

@@ -0,0 +1,19 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: goip
+      host: "subdomain"
+      domain: goip.de
+      ipVersion: ""
+      goipUsername: someuser
+      goipPassword: password

+ 20 - 0
library/ix-dev/community/ddns-updater/ci/hetzner-values.yaml

@@ -0,0 +1,20 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: hetzner
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      hetznerToken: password
+      hetznerZoneIdentifier: zoneid
+      hetznerTtl: 60

+ 18 - 0
library/ix-dev/community/ddns-updater/ci/ionos-values.yaml

@@ -0,0 +1,18 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: ionos
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      ionosApiKey: password

+ 20 - 0
library/ix-dev/community/ddns-updater/ci/namecom-values.yaml

@@ -0,0 +1,20 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: name.com
+      host: subdomain
+      domain: example.com
+      ipVersion: ""
+      namecomUsername: "abcdef123456abcdef123456abcdef12"
+      namecomToken: "abcdef123456abcdef123456abcdef12"
+      namecomTtl: 300

+ 20 - 0
library/ix-dev/community/ddns-updater/ci/netcup-values.yaml

@@ -0,0 +1,20 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: netcup
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      netcupApiKey: apikey
+      netcupPassword: password
+      netcupCustomerNumber: customer

+ 19 - 0
library/ix-dev/community/ddns-updater/ci/nowdns-values.yaml

@@ -0,0 +1,19 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: nowdns
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      nowdnsUsername: user
+      nowdnsPassword: password

+ 19 - 0
library/ix-dev/community/ddns-updater/ci/zoneedit-values.yaml

@@ -0,0 +1,19 @@
+ddnsStorage:
+  data:
+    type: hostPath
+    hostPath: /mnt/{{ .Release.Name }}/data
+
+# This disables probes.
+# As we can't have for each provider
+# an api key, we just run through CI
+# for the linting.
+ci: true
+
+ddnsConfig:
+  config:
+    - provider: zoneedit
+      host: "@"
+      domain: example.com
+      ipVersion: ""
+      zoneeditUsername: user
+      zoneeditToken: password

+ 208 - 10
library/ix-dev/community/ddns-updater/questions.yaml

@@ -71,6 +71,8 @@ questions:
                             description: DD24
                           - value: ddnss
                             description: DDNSS
+                          - value: desec
+                            description: Desec
                           - value: digitalocean
                             description: Digital Ocean
                           - value: dnsomatic
@@ -89,6 +91,8 @@ questions:
                             description: Dynu
                           - value: dynv6
                             description: DynV6
+                          - value: easydns
+                            description: EasyDNS
                           - value: freedns
                             description: FreeDNS
                           - value: gandi
@@ -97,20 +101,32 @@ questions:
                             description: GCP
                           - value: godaddy
                             description: GoDaddy
+                          - value: goip
+                            description: GoIP.de
                           - value: google
                             description: Google
                           - value: he
                             description: He.net
+                          - value: hetzner
+                            description: Hetzner
                           - value: infomaniak
                             description: Infomaniak
                           - value: inwx
                             description: INWX
+                          - value: ionos
+                            description: Ionos
                           - value: linode
                             description: Linode
                           - value: luadns
                             description: LuaDNS
                           - value: namecheap
                             description: Namecheap
+                          - value: name.com
+                            description: Name.com
+                          - value: netcup
+                            description: Netcup
+                          - value: nowdns
+                            description: NowDNS
                           - value: njalla
                             description: Njalla
                           - value: noip
@@ -131,6 +147,8 @@ questions:
                             description: Strato
                           - value: variomedia
                             description: Variomedia
+                          - value: zoneedit
+                            description: ZoneEdit
                     # Common to all providers
                     - variable: domain
                       label: Domain
@@ -310,6 +328,17 @@ questions:
                         show_if: [["provider", "=", "ddnss"]]
                         default: false
 
+                    # Desec
+                    - variable: desecToken
+                      label: Desec Token
+                      description: Desec Token.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "desec"]]
+                        required: true
+                        private: true
+                        empty: false
+
                     # Digital Ocean
                     - variable: digitalOceanToken
                       label: Digital Ocean Token
@@ -490,6 +519,25 @@ questions:
                         show_if: [["provider", "=", "dynv6"]]
                         default: false
 
+                    # EasyDNS
+                    - variable: easyDnsUsername
+                      label: EasyDNS Username
+                      description: EasyDNS Username.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "easydns"]]
+                        required: true
+                        empty: false
+                    - variable: easyDnsToken
+                      label: EasyDNS Token
+                      description: EasyDNS Token.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "easydns"]]
+                        required: true
+                        private: true
+                        empty: false
+
                     # FreeDNS
                     - variable: freeDnsToken
                       label: FreeDNS Token
@@ -519,6 +567,25 @@ questions:
                         default: 3600
                         required: true
 
+                    # GoIP.de
+                    - variable: goipUsername
+                      label: GoIP.de Username
+                      description: GoIP.de Username.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "goip"]]
+                        required: true
+                        empty: false
+                    - variable: goipPassword
+                      label: GoIP.de Password
+                      description: GoIP.de Password.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "goip"]]
+                        required: true
+                        private: true
+                        empty: false
+
                     # GCP
                     - variable: gcpProject
                       label: GCP Project
@@ -605,6 +672,31 @@ questions:
                         show_if: [["provider", "=", "he"]]
                         default: false
 
+                    # Hetzner
+                    - variable: hetznerToken
+                      label: Hetzner Token
+                      description: Hetzner Token.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "hetzner"]]
+                        required: true
+                        private: true
+                        empty: false
+                    - variable: hetznerZoneIdentifier
+                      label: Hetzner Zone ID
+                      description: Hetzner Zone ID.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "hetzner"]]
+                        required: true
+                        empty: false
+                    - variable: hetznerTtl
+                      label: Hetzner TTL
+                      description: Hetzner TTL.
+                      schema:
+                        type: int
+                        show_if: [["provider", "=", "hetzner"]]
+
                     # Infomaniak
                     - variable: infomaniakUsername
                       label: Infomaniak Username
@@ -650,6 +742,17 @@ questions:
                         required: true
                         empty: false
 
+                    # Ionos
+                    - variable: ionosApiKey
+                      label: Ionos API Key
+                      description: Ionos API Key.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "ionos"]]
+                        required: true
+                        private: true
+                        empty: false
+
                     # Linode
                     - variable: linodeToken
                       label: Linode Token
@@ -698,6 +801,80 @@ questions:
                         show_if: [["provider", "=", "namecheap"]]
                         default: false
 
+                    # Name.com
+                    - variable: namecomUsername
+                      label: Name.com Username
+                      description: Name.com Username.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "name.com"]]
+                        required: true
+                        empty: false
+                    - variable: namecomToken
+                      label: Name.com Token
+                      description: Name.com Token.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "name.com"]]
+                        required: true
+                        private: true
+                        empty: false
+                    - variable: namecomTtl
+                      label: Name.com TTL
+                      description: Name.com TTL.
+                      schema:
+                        type: int
+                        show_if: [["provider", "=", "name.com"]]
+                        default: 300
+                        required: true
+
+                    # Netcup
+                    - variable: netcupApiKey
+                      label: Netcup API Key
+                      description: Netcup API Key.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "netcup"]]
+                        required: true
+                        private: true
+                        empty: false
+                    - variable: netcupPassword
+                      label: Netcup Password
+                      description: Netcup Password.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "netcup"]]
+                        required: true
+                        private: true
+                        empty: false
+                    - variable: netcupCustomerNumber
+                      label: Netcup Customer Number
+                      description: Netcup Customer Number.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "netcup"]]
+                        required: true
+                        empty: false
+
+                    # NowDNS
+                    - variable: nowdnsUsername
+                      label: NowDNS Username
+                      description: NowDNS Username.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "nowdns"]]
+                        required: true
+                        empty: false
+                    - variable: nowdnsPassword
+                      label: NowDNS Password
+                      description: NowDNS Password.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "nowdns"]]
+                        required: true
+                        private: true
+                        empty: false
+
                     # Njalla
                     - variable: njallaKey
                       label: Njalla Key
@@ -996,6 +1173,25 @@ questions:
                         show_if: [["provider", "=", "variomedia"]]
                         default: false
 
+                    # ZoneEdit
+                    - variable: zoneeditUsername
+                      label: ZoneEdit Username
+                      description: ZoneEdit Username.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "zoneedit"]]
+                        required: true
+                        empty: false
+                    - variable: zoneeditToken
+                      label: ZoneEdit Token
+                      description: ZoneEdit Token.
+                      schema:
+                        type: string
+                        show_if: [["provider", "=", "zoneedit"]]
+                        required: true
+                        private: true
+                        empty: false
+
         - variable: period
           label: Update Period
           description: |
@@ -1092,8 +1288,8 @@ questions:
                         enum:
                           - value: all
                             description: All providers
-                          - value: google
-                            description: Google
+                          - value: opendns
+                            description: opendns
                           - value: cloudflare
                             description: Cloudflare
                     # Workaround for a UI bug that is fixed in the next release
@@ -1128,16 +1324,18 @@ questions:
                         enum:
                           - value: all
                             description: All providers
-                          - value: opendns
-                            description: opendns
+                          - value: ipify
+                            description: ipify
                           - value: ifconfig
                             description: ifconfig
                           - value: ipinfo
                             description: ipinfo
-                          - value: ddnss
-                            description: ddnss
                           - value: google
                             description: google
+                          - value: spdyn
+                            description: spdyn
+                          - value: ipleak
+                            description: ipleak
                           - value: custom
                             description: Custom Provider
                     - variable: custom
@@ -1170,10 +1368,10 @@ questions:
                         enum:
                           - value: all
                             description: All providers
+                          - value: ipleak
+                            description: iplaek
                           - value: ipify
                             description: ipify
-                          - value: noip
-                            description: noip
                           - value: custom
                             description: Custom Provider
                     - variable: custom
@@ -1206,10 +1404,10 @@ questions:
                         enum:
                           - value: all
                             description: All providers
+                          - value: ipleak
+                            description: ipleak
                           - value: ipify
                             description: ipify
-                          - value: noip
-                            description: noip
                           - value: custom
                             description: Custom Provider
                     - variable: custom

+ 2 - 1
library/ix-dev/community/ddns-updater/templates/_configuration.tpl

@@ -48,7 +48,8 @@ configmap:
                         "dynu" "dynv6" "freedns" "gandi" "gcp" "godaddy" "google" "he"
                         "infomaniak" "inwx" "linode" "luadns" "namecheap" "njalla" "noip"
                         "opendns" "ovh" "porkbun" "selfhost.de" "servercow" "spdyn"
-                        "strato" "variomedia") }}
+                        "strato" "variomedia" "ionos" "desec" "easydns" "goip" "hetzner"
+                        "name.com" "netcup" "nowdns" "zoneedit") }}
 settings:
   {{- range $item := .Values.ddnsConfig.config -}}
     {{- if not (mustHas $item.provider $providers) -}}

+ 1 - 1
library/ix-dev/community/ddns-updater/templates/_ddns.tpl

@@ -15,7 +15,7 @@ workload:
             runAsUser: {{ .Values.ddnsRunAs.user }}
             runAsGroup: {{ .Values.ddnsRunAs.group }}
           env:
-            LISTENING_PORT: {{ .Values.ddnsNetwork.webPort }}
+            LISTENING_ADDRESS: {{ printf ":%v" .Values.ddnsNetwork.webPort }}
             DATADIR: /updater/data
             BACKUP_DIRECTORY: /updater/data
           envFrom:

+ 14 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_desec.tpl

@@ -0,0 +1,14 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/desec.md */}}
+{{- define "ddns.config.desec" -}}
+  {{- $item := .item }}
+token: {{ $item.desecToken | required "DDNS Updater - Expected non-empty [Token] for desec provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: desec           - Required
+      domain: "example.com"     - Required
+      host: "@"                 - Required - Valid value ("@" or subdomain)
+      ipVersion: ""             - Required - Valid values (ipv4/ipv6/"")
+      desecToken: pass          - Required
+*/}}

+ 16 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_easydns.tpl

@@ -0,0 +1,16 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/easydns.md */}}
+{{- define "ddns.config.easydns" -}}
+  {{- $item := .item }}
+username: {{ $item.easyDnsUsername | required "DDNS Updater - Expected non-empty [Username] for EasyDNS provider" }}
+token: {{ $item.easyDnsToken | required "DDNS Updater - Expected non-empty [Token] for EasyDNS provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: easydns         - Required
+      domain: "example.com"     - Required
+      host: "@"                 - Required - Valid value ("@" or subdomain)
+      ipVersion: ""             - Required - Valid values (ipv4/ipv6/"")
+      easyDnsUsername: user     - Required
+      easyDnsToken: pass        - Required
+*/}}

+ 16 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_goipde.tpl

@@ -0,0 +1,16 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/goip.md */}}
+{{- define "ddns.config.goip" -}}
+  {{- $item := .item }}
+username: {{ $item.goipUsername | required "DDNS Updater - Expected non-empty [Username] for GoIP.de provider" }}
+password: {{ $item.goipPassword | required "DDNS Updater - Expected non-empty [Password] for GoIP.de provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: goip           - Required
+      domain: "example.com"     - Required
+      host: "@"                 - Required - Valid value ("@" or subdomain)
+      ipVersion: ""             - Required - Valid values (ipv4/ipv6/"")
+      goipDeUsername: user      - Required
+      goipDePassword: pass      - Required
+*/}}

+ 18 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_hetzner.tpl

@@ -0,0 +1,18 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/hetzner.md */}}
+{{- define "ddns.config.hetzner" -}}
+  {{- $item := .item }}
+token: {{ $item.hetznerToken | required "DDNS Updater - Expected non-empty [Token] for Hetzner provider" }}
+zone_identifier: {{ $item.hetznerZoneIdentifier | required "DDNS Updater - Expected non-empty [Zone Identifier] for Hetzner provider" }}
+ttl: {{ $item.hetznerTtl }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: hetzner             - Required
+      domain: "example.com"         - Required
+      host: "@"                     - Required - Valid value ("@" or subdomain)
+      ipVersion: ""                 - Required - Valid values (ipv4/ipv6/"")
+      hetznerToken: pass            - Required
+      hetznerZoneIdentifier: someid - Required
+      hetznerTtl: 60                - Optional
+*/}}

+ 14 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_ionos.tpl

@@ -0,0 +1,14 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/ionos.md */}}
+{{- define "ddns.config.ionos" -}}
+  {{- $item := .item }}
+api_key: {{ $item.ionosApiKey | required "DDNS Updater - Expected non-empty [Api Key] for ionos provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: ionos           - Required
+      domain: "example.com"     - Required
+      host: "@"                 - Required - Valid value ("@" or subdomain)
+      ipVersion: ""             - Required - Valid values (ipv4/ipv6/"")
+      ionosApiKey: pass         - Required
+*/}}

+ 18 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_namecom.tpl

@@ -0,0 +1,18 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/name.com.md */}}
+{{- define "ddns.config.name.com" -}}
+  {{- $item := .item }}
+token: {{ $item.namecomToken | required "DDNS Updater - Expected non-empty [Token] for Name.com provider" }}
+username: {{ $item.namecomUsername | required "DDNS Updater - Expected non-empty [Username] for Name.com provider" }}
+ttl: {{ $item.namecomTtl | required "DDNS Updater - Expected non-empty [TTL] for Name.com provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: name.com                - Required
+      domain: "example.com"             - Required
+      host: "@"                         - Required - Valid value ("@" or subdomain)
+      ipVersion: ""                     - Required - Valid values (ipv4/ipv6/"")
+      namecomToken: token               - Required
+      namecomUsername: username         - Required
+      namecomTtl: 300                   - Required - Min Value (300)
+*/}}

+ 18 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_netcup.tpl

@@ -0,0 +1,18 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/netcup.md */}}
+{{- define "ddns.config.netcup" -}}
+  {{- $item := .item }}
+api_key: {{ $item.netcupApiKey | required "DDNS Updater - Expected non-empty [Api Key] for netcup provider" }}
+password: {{ $item.netcupPassword | required "DDNS Updater - Expected non-empty [Password] for netcup provider" }}
+customer_number: {{ $item.netcupCustomerNumber | required "DDNS Updater - Expected non-empty [Customer Number] for netcup provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: netcup            - Required
+      domain: "example.com"       - Required
+      host: "@"                   - Required - Valid value ("@" or subdomain)
+      ipVersion: ""               - Required - Valid values (ipv4/ipv6/"")
+      netcupApiKey: pass          - Required
+      netcupPassword: pass        - Required
+      netcupCustomerNumber: 12345 - Required
+*/}}

+ 16 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_nowdns.tpl

@@ -0,0 +1,16 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/nowdns.md */}}
+{{- define "ddns.config.nowdns" -}}
+  {{- $item := .item }}
+username: {{ $item.nowdnsUsername | required "DDNS Updater - Expected non-empty [Username] for nowdns provider" }}
+password: {{ $item.nowdnsPassword | required "DDNS Updater - Expected non-empty [Api Password] for nowdns provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: nowdns         - Required
+      domain: "example.com"    - Required
+      host: "@"                - Required - Valid value ("@" or subdomain)
+      ipVersion: ""            - Required - Valid values (ipv4/ipv6/"")
+      nowdnsUsername: pass     - Required
+      nowdnsPassword: pass     - Required
+*/}}

+ 16 - 0
library/ix-dev/community/ddns-updater/templates/dnsProviders/_zoneedit.tpl

@@ -0,0 +1,16 @@
+{{/* https://github.com/qdm12/ddns-updater/blob/master/docs/zoneedit.md */}}
+{{- define "ddns.config.zoneedit" -}}
+  {{- $item := .item }}
+username: {{ $item.zoneeditUsername | required "DDNS Updater - Expected non-empty [Username] for zoneedit provider" }}
+token: {{ $item.zoneeditToken | required "DDNS Updater - Expected non-empty [Token] for zoneedit provider" }}
+{{- end -}}
+{{/*
+ddnsConfig:
+  config:
+    - provider: zoneedit       - Required
+      domain: "example.com"    - Required
+      host: "@"                - Required - Valid value ("@" or subdomain)
+      ipVersion: ""            - Required - Valid values (ipv4/ipv6/"")
+      zoneeditUsername: pass   - Required
+      zoneeditToken: pass      - Required
+*/}}

+ 1 - 1
library/ix-dev/community/ddns-updater/values.yaml

@@ -1,7 +1,7 @@
 image:
   repository: qmcgaw/ddns-updater
   pullPolicy: IfNotPresent
-  tag: v2.5.0
+  tag: v2.6.0
 
 ci: false