Skip to content

Upgrade External DNS to v0.16.1, add DNSEndpoint CRD support #358

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

drGrove
Copy link
Member

@drGrove drGrove commented Apr 24, 2025

No description provided.

Copy link

Infro diff for 1d18f89

argocd.hashbang.sh > external-dns (2 files changed)

time="2025-04-24T07:22:29Z" level=warning msg="Failed to invoke grpc call. Use flag --grpc-web in grpc calls. To avoid this warning message, use flag --grpc-web."
time="2025-04-24T07:22:32Z" level=warning msg="Failed to invoke grpc call. Use flag --grpc-web in grpc calls. To avoid this warning message, use flag --grpc-web."

===== /Service external-dns/external-dns ======
--- /tmp/argocd-diff849186079/external-dns-live.yaml
+++ /tmp/argocd-diff849186079/external-dns
@@ -2,9 +2,11 @@
 kind: Service
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:/Service:external-dns/external-dns
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns","namespace":"external-dns"},"spec":{"ports":[{"name":"metrics","port":7979,"targetPort":7979}],"selector":{"app.kubernetes.io/name":"external-dns"}}}
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   name: external-dns
   namespace: external-dns

===== /ServiceAccount external-dns/external-dns ======
--- /tmp/argocd-diff1598992185/external-dns-live.yaml
+++ /tmp/argocd-diff1598992185/external-dns
@@ -2,9 +2,11 @@
 kind: ServiceAccount
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:/ServiceAccount:external-dns/external-dns
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns","namespace":"external-dns"}}
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   name: external-dns
   namespace: external-dns

===== apps/Deployment external-dns/external-dns ======
--- /tmp/argocd-diff590728874/external-dns-live.yaml
+++ /tmp/argocd-diff590728874/external-dns
@@ -2,11 +2,13 @@
 kind: Deployment
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:apps/Deployment:external-dns/external-dns
     deployment.kubernetes.io/revision: "11"
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns","namespace":"external-dns"},"spec":{"selector":{"matchLabels":{"app.kubernetes.io/name":"external-dns"}},"strategy":{"type":"Recreate"},"template":{"metadata":{"labels":{"app.kubernetes.io/name":"external-dns"}},"spec":{"containers":[{"args":["--source=service","--source=ingress","--registry=txt","--provider=aws","--txt-owner-id=digitalocean-hashbang","--txt-prefix=_owner.","--source=crd","--domain-filter=hashbang.sh","--managed-record-types=A","--managed-record-types=CNAME","--managed-record-types=TXT"],"env":[{"name":"AWS_REGION","value":"us-west-2"},{"name":"AWS_ACCESS_KEY_ID","value":"AKIAR7CEWFK35SZX5S66"},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"key","name":"external-dns-iam"}}}],"image":"registry.k8s.io/external-dns/external-dns:v0.16.1@sha256:37d3a7a05c4638b8177382b80a627c223bd84a53c1a91be137245bd3cfdf9986","name":"external-dns","ports":[{"containerPort":7979,"name":"metrics"}]}],"securityContext":{"fsGroup":65534},"serviceAccountName":"external-dns"}}}}
   generation: 11
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   managedFields:
   - apiVersion: apps/v1

===== cilium.io/CiliumNetworkPolicy external-dns/external-dns ======
--- /tmp/argocd-diff2652592612/external-dns-live.yaml
+++ /tmp/argocd-diff2652592612/external-dns
@@ -2,10 +2,12 @@
 kind: CiliumNetworkPolicy
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:cilium.io/CiliumNetworkPolicy:external-dns/external-dns
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"cilium.io/v2","kind":"CiliumNetworkPolicy","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns","namespace":"external-dns"},"spec":{"egress":[{"toEntities":["cluster"]},{"toEntities":["cluster"],"toPorts":[{"ports":[{"port":"53","protocol":"ANY"}],"rules":{"dns":[{"matchPattern":"*.amazonaws.com"}]}}]},{"toEntities":["world"],"toPorts":[{"ports":[{"port":"443","protocol":"TCP"}]}]}],"endpointSelector":{"matchLabels":{"k8s:app":"external-dns"}},"ingress":[{"fromEntities":["cluster"],"toPorts":[{"ports":[{"port":"7979","protocol":"TCP"}],"rules":{"http":[{"method":"GET","path":"/metrics"}]}}]}]}}
   generation: 32
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   name: external-dns
   namespace: external-dns

===== monitoring.coreos.com/ServiceMonitor external-dns/external-dns-server-metrics ======
--- /tmp/argocd-diff762024736/external-dns-server-metrics-live.yaml
+++ /tmp/argocd-diff762024736/external-dns-server-metrics
@@ -3,10 +3,12 @@
 metadata:
   annotations:
     argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
+    argocd.argoproj.io/tracking-id: external-dns:monitoring.coreos.com/ServiceMonitor:external-dns/external-dns-server-metrics
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"monitoring.coreos.com/v1","kind":"ServiceMonitor","metadata":{"annotations":{"argocd.argoproj.io/sync-options":"SkipDryRunOnMissingResource=true"},"labels":{"app.kubernetes.io/name":"external-dns","prometheusInstance":"default"},"name":"external-dns-server-metrics","namespace":"external-dns"},"spec":{"endpoints":[{"port":"metrics"}],"selector":{"matchLabels":{"app.kubernetes.io/name":"external-dns"}}}}
   generation: 1
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
     prometheusInstance: default
   managedFields:

===== rbac.authorization.k8s.io/ClusterRole /external-dns ======
--- /tmp/argocd-diff3618136868/external-dns-live.yaml
+++ /tmp/argocd-diff3618136868/external-dns
@@ -2,9 +2,11 @@
 kind: ClusterRole
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:rbac.authorization.k8s.io/ClusterRole:external-dns/external-dns
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRole","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns"},"rules":[{"apiGroups":[""],"resources":["endpoints","pods","services"],"verbs":["get","watch","list"]},{"apiGroups":["extensions"],"resources":["ingresses"],"verbs":["get","watch","list"]},{"apiGroups":["networking.k8s.io"],"resources":["ingresses"],"verbs":["get","watch","list"]},{"apiGroups":[""],"resources":["nodes"],"verbs":["watch","list"]},{"apiGroups":["externaldns.k8s.io"],"resources":["dnsendpoints"],"verbs":["get","watch","list"]},{"apiGroups":["externaldns.k8s.io"],"resources":["dnsendpoints/status"],"verbs":["*"]}]}
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   name: external-dns
   resourceVersion: "710536737"

===== rbac.authorization.k8s.io/ClusterRoleBinding /external-dns-viewer ======
--- /tmp/argocd-diff1036182106/external-dns-viewer-live.yaml
+++ /tmp/argocd-diff1036182106/external-dns-viewer
@@ -2,9 +2,11 @@
 kind: ClusterRoleBinding
 metadata:
   annotations:
+    argocd.argoproj.io/tracking-id: external-dns:rbac.authorization.k8s.io/ClusterRoleBinding:external-dns/external-dns-viewer
     kubectl.kubernetes.io/last-applied-configuration: |
       {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"external-dns"},"name":"external-dns-viewer"},"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"external-dns"},"subjects":[{"kind":"ServiceAccount","name":"external-dns","namespace":"external-dns"}]}
   labels:
+    app.kubernetes.io/instance: external-dns
     app.kubernetes.io/name: external-dns
   name: external-dns-viewer
   resourceVersion: "710536742"

===== apiextensions.k8s.io/CustomResourceDefinition /dnsendpoints.externaldns.k8s.io ======
--- /tmp/argocd-diff3829729/dnsendpoints.externaldns.k8s.io-live.yaml
+++ /tmp/argocd-diff3829729/dnsendpoints.externaldns.k8s.io
@@ -0,0 +1,101 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    api-approved.kubernetes.io: https://github.com/kubernetes-sigs/external-dns/pull/2007
+    controller-gen.kubebuilder.io/version: v0.15.0
+  labels:
+    app.kubernetes.io/name: external-dns
+  name: dnsendpoints.externaldns.k8s.io
+spec:
+  group: externaldns.k8s.io
+  names:
+    kind: DNSEndpoint
+    listKind: DNSEndpointList
+    plural: dnsendpoints
+    singular: dnsendpoint
+  scope: Namespaced
+  versions:
+  - name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        properties:
+          apiVersion:
+            description: |-
+              APIVersion defines the versioned schema of this representation of an object.
+              Servers should convert recognized schemas to the latest internal value, and
+              may reject unrecognized values.
+              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+            type: string
+          kind:
+            description: |-
+              Kind is a string value representing the REST resource this object represents.
+              Servers may infer this from the endpoint the client submits requests to.
+              Cannot be updated.
+              In CamelCase.
+              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+            type: string
+          metadata:
+            type: object
+          spec:
+            description: DNSEndpointSpec defines the desired state of DNSEndpoint
+            properties:
+              endpoints:
+                items:
+                  description: Endpoint is a high-level way of a connection between
+                    a service and an IP
+                  properties:
+                    dnsName:
+                      description: The hostname of the DNS record
+                      type: string
+                    labels:
+                      additionalProperties:
+                        type: string
+                      description: Labels stores labels defined for the Endpoint
+                      type: object
+                    providerSpecific:
+                      description: ProviderSpecific stores provider specific config
+                      items:
+                        description: ProviderSpecificProperty holds the name and value
+                          of a configuration which is specific to individual DNS providers
+                        properties:
+                          name:
+                            type: string
+                          value:
+                            type: string
+                        type: object
+                      type: array
+                    recordTTL:
+                      description: TTL for the record
+                      format: int64
+                      type: integer
+                    recordType:
+                      description: RecordType type of record, e.g. CNAME, A, AAAA,
+                        SRV, TXT etc
+                      type: string
+                    setIdentifier:
+                      description: Identifier to distinguish multiple records with
+                        the same name and type (e.g. Route53 records with routing
+                        policies other than 'simple')
+                      type: string
+                    targets:
+                      description: The targets the DNS record points to
+                      items:
+                        type: string
+                      type: array
+                  type: object
+                type: array
+            type: object
+          status:
+            description: DNSEndpointStatus defines the observed state of DNSEndpoint
+            properties:
+              observedGeneration:
+                description: The generation observed by the external-dns controller.
+                format: int64
+                type: integer
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}

argocd.hashbang.sh > ircd (0 files changed)

time="2025-04-24T07:22:38Z" level=warning msg="Failed to invoke grpc call. Use flag --grpc-web in grpc calls. To avoid this warning message, use flag --grpc-web."
time="2025-04-24T07:22:42Z" level=warning msg="Failed to invoke grpc call. Use flag --grpc-web in grpc calls. To avoid this warning message, use flag --grpc-web."

===== apps/Deployment ircd/irc-deployment ======
--- /tmp/argocd-diff1447508533/irc-deployment-live.yaml
+++ /tmp/argocd-diff1447508533/irc-deployment
@@ -30,7 +30,7 @@
         app: irc
     spec:
       containers:
-      - image: ghcr.io/ergochat/ergo:v2.14.0@sha256:ef4040d18044a53c8c995defb3159018cf2e83030e5db068c3976d9343c826a5
+      - image: ghcr.io/ergochat/ergo:v2.15.0@sha256:135cd42c6300d957e0045ee53fbe886e43e1c04bb621391ed7b8940c174d68f3
         imagePullPolicy: IfNotPresent
         livenessProbe:
           failureThreshold: 3
@@ -78,7 +78,7 @@
           echo "Exiting.";
         command:
         - /bin/sh
-        image: ghcr.io/ergochat/ergo:v2.14.0@sha256:ef4040d18044a53c8c995defb3159018cf2e83030e5db068c3976d9343c826a5
+        image: ghcr.io/ergochat/ergo:v2.15.0@sha256:135cd42c6300d957e0045ee53fbe886e43e1c04bb621391ed7b8940c174d68f3
         imagePullPolicy: IfNotPresent
         name: config-reloader
         resources: {}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant