Skip to content

[Bug]: ExternalDNS webhook provider needs an image repository #554

Description

@alexohneander

📝 Description

Hey! I'm trying to enable ExternalDNS on an existing setup, but ArgoCD won't deploy it.
Not sure how to cleanly reproduce this yet, so I included my configs below.

So far, I have found that in my generated values.yaml template, the variable external-dns.webhookImage is not set at all. The question here is what should be set in it.

🧪 Steps to Reproduce

kubara Config:

version: v1alpha4
clusters:
  - name: dev-null
    stage: dev
    type: hub
    dnsName: ske.PRIVATE_DOMAIN
    ssoOrg: none
    ssoTeam: none
    ingressClassName: traefik
    terraform:
      provider: none
      projectId: none
      kubernetesType: edge
      kubernetesVersion: "1.34"
      dns:
        name: ske.PRIVATE_DOMAIN
        email: moin@PRIVATE_DOMAIN
    argocd:
      selfManaged: enabled
      repo:
        https:
          configs:
            url: http://PRIVATE_DOMAIN/alex/kubara.git
            targetRevision: main
          components:
            url: http://PRIVATE_DOMAIN/alex/kubara.git
            targetRevision: main
    catalogs:
      - oci://ghcr.io/kubara-io/catalogs/general:1.1.0
    services:
      cert-manager:
        status: disabled
      external-dns:
        status: enabled
      external-secrets:
        status: enabled
      homer-dashboard:
        status: enabled
      kube-prometheus-stack:
        status: enabled
      kyverno:
        status: disabled
      kyverno-policies:
        status: disabled
      kyverno-policy-reporter:
        status: disabled
      loki:
        status: enabled
      longhorn:
        status: disabled
      metallb:
        status: disabled
      metrics-server:
        status: enabled
      oauth2-proxy:
        status: disabled
      reloader:
        status: disabled
      traefik:
        status: enabled
      velero:
        status: disabled

💻 Environment

  • Kubara version: v0.13.0
  • Kubernetes version: v1.36.0 (Talos v1.13.8)
  • Helm version: v4.2.2
  • Platform: Talos
  • OS/Arch: 6.18.42-talos (amd64)

📎 Additional Context / Logs

ArgoCD Logs:

Failed to load target state: failed to generate manifest for source 2 of 2: rpc error: code = Unknown desc = Manifest generation error (cached): failed to execute helm template command: failed running helm: `helm template . --name-template external-dns --namespace external-dns --kube-version 1.36.0 --values <path to cached source>/platform-components/helm/external-dns/values.yaml --values <path to cached source>/platform-configs/dev-null/helm/external-dns/values.generated.yaml <api versions removed> --include-crds` failed exit status 1: Error: execution error at (external-dns/charts/external-dns/templates/deployment.yaml:193:20): ERROR: webhook provider needs an image repository and a tag Use --debug flag to render out invalid YAML

helm template logs:

Error: execution error at (external-dns/charts/external-dns/templates/deployment.yaml:193:20): ERROR: webhook provider needs an image repository and a tag

deployment.yaml:

        - name: webhook
          image: {{ include "external-dns.webhookImage" . }}
          imagePullPolicy: {{ .image.pullPolicy }}

generated values.yaml:

---
# creates an ExternalSecret that looks for the specified remote-keys (remote secret names) to inject into webhook pod
externalSecrets: {}
namespace:
  annotations: {}
  labels: {}
external-dns:
  sources: [ingress]
  policy: sync
  serviceMonitor:
    enabled: false
  resources:
    requests:
      cpu: 10m
      memory: 100Mi
    limits:
      memory: 100Mi
  podSecurityContext:
    runAsNonRoot: true
    fsGroup: 65534
    seccompProfile:
      type: RuntimeDefault
  securityContext:
    privileged: false
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    runAsNonRoot: true
    runAsUser: 65532
    runAsGroup: 65532
    capabilities:
      drop: [ALL]
  provider:
    name: webhook
    webhook:
      resources:
        requests:
          cpu: 10m
          memory: 100Mi
        limits:
          memory: 100Mi
      securityContext:
        privileged: false
        allowPrivilegeEscalation: false
        readOnlyRootFilesystem: true
        runAsNonRoot: true
        runAsUser: 65534
        runAsGroup: 65534
        capabilities:
          drop: [ALL]
      livenessProbe:
        httpGet:
          port: http-webhook
      readinessProbe:
        httpGet:
          port: http-webhook

✅ Checklist

  • I have searched existing issues
  • I am using the latest version of Kubara
  • The issue is reproducible
  • This is not a duplicate

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions