Commit Graph

541 Commits

Author SHA1 Message Date
Steven Kreitzer
724b86b8b8
feat(source): fitler by gateway name (#5160)
* feat: filter by gateway name

Signed-off-by: Steven Kreitzer <skre@skre.me>

* address comments

* address comments

* address comments

---------

Signed-off-by: Steven Kreitzer <skre@skre.me>
2025-03-12 01:51:47 -07:00
Rich
7c23e01e31
feat(aws): always create AAAA alias records in route53 (#5111)
* First pass based on existing PR, what is currently on master and some
extra tests.

* Try to resolve AWS service documentation

* Add documentation on how to opt-out of AAAA record creation

* Address documentation concerns

* Add some IPv6 tests to sources

* Make recommended changes to documentation
2025-03-03 00:21:00 -08:00
Kubernetes Prow Robot
e665a734bf
Merge pull request #5087 from conduitxyz/mrozentsvayg/cloudflare-custom-hostname
feat(cloudflare): custom hostname and fix apex
2025-02-19 07:12:27 -08:00
Mikhail Rozentsvayg
739d34d7c0 cover source.go getProviderSpecificAnnotations() with unit tests 2025-02-18 21:28:59 -08:00
Mikhail Rozentsvayg
799ec6d2c9 review suggestions 2025-02-18 14:54:13 -08:00
Kubernetes Prow Robot
4182600b6c
Merge pull request #5096 from drcapulet/alexc-fix-debug-log
fix(source): debug log on gateway target detection
2025-02-18 14:00:27 -08:00
Alex Coomans
e6d03edd68
fix(source): debug log on gateway target detection
This code referenced the endpoints variable which was updated with each
resource leading to confusing debug messages - this sets up a new array
each iteration to log just the records from the relevant Gateway resource.
2025-02-18 13:31:57 -06:00
Mikhail Rozentsvayg
b8c09b89cb merge upstream 2025-02-18 08:54:35 -08:00
Dan Markhasin
caaf22e60d
Merge branch 'kubernetes-sigs:master' into endpoints-informer 2025-02-18 18:42:21 +02:00
Ivan Ka
99b9d0d3db
chore(formatting): fix infected files with correct formatting (#5099)
* chore(format): fix go formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(format): linter check configuration

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(formatting): fix infected files with correct formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(formatting): fix infected files with correct formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(formatting): fix infected files with correct formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(formatting): fix infected files with correct formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(formatting): fix infected files with correct formatting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-02-18 01:40:12 -08:00
Mikhail Rozentsvayg
147df48ff5 Merge remote-tracking branch 'upstream/master' into mrozentsvayg/cloudflare-custom-hostname 2025-02-17 09:39:41 -08:00
Dan Markhasin
5d53d7ceda
Merge branch 'kubernetes-sigs:master' into endpoints-informer 2025-02-15 16:33:13 +02:00
Kubernetes Prow Robot
ce2833cb5e
Merge pull request #4889 from jtszalay/fix/4888
fix(dedup): records with different type are not duplicates
2025-02-15 01:00:21 -08:00
Kubernetes Prow Robot
ba98af860d
Merge pull request #4522 from plentymarkets/informer-gateways
fix: use informer for istio gateways
2025-02-14 08:58:23 -08:00
Dan Markhasin
b0bbe5142d update service.md, service.go 2025-02-11 15:30:50 +02:00
Mikhail Rozentsvayg
88fd2aa3a7 initial custom hostnames support 2025-02-09 10:01:35 -08:00
James Szalay
5461d9f305 Address PR comments
* Add nil check
* strings.Join
* Add test case
2025-02-09 15:34:55 +00:00
Dan Markhasin
87464189b3 Enable reconcile on endpoint events 2025-02-02 23:42:50 +02:00
Kubernetes Prow Robot
a61780280d
Merge pull request #4782 from foyerunix/reverse-for-all-pods
feat(source): allow to register all pods and their associated PTR record
2025-01-28 07:51:24 -08:00
Vivian Ta
5c14cd23fd fix: add mikejoh's commit changes (a70d5d0, #4996) for when TSServer is not ready 2025-01-21 11:25:42 -08:00
visokoo
429400ac66
Merge branch 'kubernetes-sigs:master' into add-f5-transport-server-source 2025-01-21 10:06:54 -08:00
Michel Loiseleur
5561d916b1 refactor test following review 2025-01-19 12:16:41 +01:00
Michel Loiseleur
cc546820dc chore(ci): fix failing test, upgrade to go 1.23.5 and linter to v1.63 2025-01-17 21:05:08 +01:00
Kubernetes Prow Robot
36478f1fc5
Merge pull request #4856 from dtuck9/avoid-merging-cname-records
fix:  do not merge CNAME with multiple targets
2025-01-14 09:06:33 -08:00
foyerunix
bf8c4c0ba6 Allow to register all pods and their associated PTR record
Add two new options:
- --ignore-non-host-network-pods
- --pod-source-domain

Combined toghether, they can be used to register the IPs
of all pods with their associated PTR record.

Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-01-14 07:23:38 +00:00
Diana Tuck
fe420f43e5 Move block outside of parent if/else 2025-01-13 12:37:25 -08:00
Diana Tuck
c3225c7cf1 Add debug logging for CNAME with multiple targets 2025-01-13 12:14:38 -08:00
Mikael Johansson
9368a24a75
fix(f5-virtualserver): skip endpoint creation when VirtualServer is not ready (#4996)
* Skip endpoint creation if VirtualServer is not considered ready

Signed-off-by: Mikael Johansson <mik.json@gmail.com>

* Change to warning instead

Signed-off-by: Mikael Johansson <mik.json@gmail.com>

* Earlier return

---------

Signed-off-by: Mikael Johansson <mik.json@gmail.com>
2025-01-13 07:56:33 -08:00
visokoo
deac6f916e
Merge branch 'kubernetes-sigs:master' into add-f5-transport-server-source 2024-12-30 13:47:11 -08:00
Vivian Ta
6907ced44b fix: Update documentation for f5-transportserver with examples 2024-12-25 01:07:09 -08:00
Steven Kreitzer
449d27b00e
fix: allow ipv4-mapped ipv6 addresses
Signed-off-by: Steven Kreitzer <skre@skre.me>
2024-12-21 14:16:23 -06:00
Vivian Ta
2ea4a15075 feat: Add F5 TransportServer source 2024-11-28 22:51:18 -08:00
James Szalay
adb4a4fbb2 Fixes issue #4888. Include record type in dedupe key. 2024-11-20 02:27:46 +00:00
Diana Tuck
7e10c80323
Do not merge CNAME targets into one endpoint per RFC-1034 2024-11-07 11:23:50 -08:00
n-Arno
326ee0be69 source node: Skip unschedulable nodes 2024-09-20 21:17:01 +02:00
Kubernetes Prow Robot
848e309ad4
Merge pull request #4593 from johannwagner/feature/nat64
feat: NAT64 network source
2024-09-05 14:34:29 +01:00
Kubernetes Prow Robot
ccab9a95c5
Merge pull request #4469 from thameezb/feat-support-dual-stack-gateway-api
feat: support dual stack for gateway api
2024-09-01 18:40:45 +01:00
Kyle
38178940a3
feat: add annotation and label filters to Ambassador Host Source (#2633)
* Add annotation filter to Ambassador Host Source

This change makes the Ambassador Host source respect the External-DNS annotationFilter allowing for an Ambassador Host resource to specify what External-DNS deployment to use when there are multiple External-DNS deployments within the same cluster. Before this change if you had two External-DNS deployments within the cluster and used the Ambassador Host source the first External-DNS to process the resource will create the record and not the one that was specified in the filter annotation.

I added the `filterByAnnotations` function so that it matched the same way the other sources have implemented annotation filtering. I didn't add the controller check only because I wanted to keep this change to implementing the annotationFilter.

Example: Create two External-DNS deployments 1 public and 1 private and set the Ambassador Host to use the public External-DNS using the annotation filter.

```
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: external-dns-private
spec:
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: external-dns-private
  template:
    metadata:
      labels:
        app: external-dns-private
      annotations:
        iam.amazonaws.com/role: {ARN} # AWS ARN role
    spec:
      serviceAccountName: external-dns
      containers:
      - name: external-dns
        image: k8s.gcr.io/external-dns/external-dns:latest
        args:
        - --source=ambassador-host
        - --domain-filter=example.net # will make ExternalDNS see only the hosted zones matching provided domain, omit to process all available hosted zones
        - --provider=aws
        - --policy=upsert-only # would prevent ExternalDNS from deleting any records, omit to enable full synchronization
        - --aws-zone-type=private # only look at public hosted zones (valid values are public, private or no value for both)
        - --registry=txt
        - --txt-owner-id= {Hosted Zone ID} # Insert Route53 Hosted Zone ID here
        - --annotation-filter=kubernetes.io/ingress.class in (private)
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: external-dns-public
spec:
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: external-dns-public
  template:
    metadata:
      labels:
        app: external-dns-public
      annotations:
        iam.amazonaws.com/role: {ARN} # AWS ARN role
    spec:
      serviceAccountName: external-dns
      containers:
      - name: external-dns
        image: k8s.gcr.io/external-dns/external-dns:latest
        args:
        - --source=ambassador-host
        - --domain-filter=example.net # will make ExternalDNS see only the hosted zones matching provided domain, omit to process all available hosted zones
        - --provider=aws
        - --policy=upsert-only # would prevent ExternalDNS from deleting any records, omit to enable full synchronization
        - --aws-zone-type= # only look at public hosted zones (valid values are public, private or no value for both)
        - --registry=txt
        - --txt-owner-id= {Hosted Zone ID} # Insert Route53 Hosted Zone ID here
        - --annotation-filter=kubernetes.io/ingress.class in (public)
---
apiVersion: getambassador.io/v3alpha1
  kind: Host
  metadata:
    name: your-hostname
    annotations:
      external-dns.ambassador-service: emissary-ingress/emissary
      kubernetes.io/ingress.class: public
  spec:
		acmeProvider:
      authority: none
		hostname: your-hostname.example.com
```

Fixes kubernetes-sigs/external-dns#2632

* Add Label filltering for Ambassador Host source

Currently the `--label-filter` flag can only be used to filter CRDs, Ingress, Service and Openshift Route objects which match the label selector passed through that flag. This change extends the functionality to the Ambassador Host type object.

When the flag is not specified the default value is `labels.Everything()` which is an empty string, the same as before. An annotation based filter is inefficient because the filtering has to be done in the controller instead of the API server like with label filtering. The Annotation based filtering has been left in for legacy reasons so the Ambassador Host source can be used inconjunction with the other sources that don't yet support label filltering.

It is possible to use label based filltering with annotation based filltering so you can initially filter by label then filter the returned hosts by annotation. This is not recomended

* Update Ambassador Host source docs

Add that the Ambassador Host source now supports both annotation and label filltering.
2024-08-28 18:02:57 +01:00
Johann Wagner
b8e018caaf Introduced NAT64 prefix rewriting 2024-08-19 08:00:18 +02:00
Andy Bursavich
29f1f3a19d source/gateway-api: revert v1.HTTPRoute to v1beta1.HTTPRoute 2024-07-14 09:06:35 -07:00
Andy Bursavich
0100b6637a source/gateway-api: revert v1.Gateway to v1beta1.Gateway 2024-07-14 09:06:35 -07:00
ThameezBo
ea1ff95711
feat: update GRPCRoute client to stable 2024-06-20 13:30:18 +02:00
Kubernetes Prow Robot
8245b89891
Merge pull request #4283 from angeloxx/feature/rfc-2136-ptr
feat(rfc2136): add PTR optional support
2024-06-20 00:44:17 -07:00
Lukas Wöhrl
25eac69705 fix: use informer for istio gateways
Signed-off-by: Lukas Wöhrl <lukas.woehrl@plentymarkets.com>
2024-06-03 11:44:38 +02:00
Kris Budde
865f177561
fix(traefik): Nil pointer exception if legacy traefik is disabled 2024-05-25 11:07:49 +02:00
Kubernetes Prow Robot
b4eea99efe
Merge pull request #4458 from Raffo/webhook-annotations
feat(webhooks): pass webhook-* annotations to webhook providers
2024-05-24 08:51:11 -07:00
Michel Loiseleur
971c91d2cf review with Raffo 2024-05-16 10:51:13 +02:00
Michel Loiseleur
9597d257a7 fix: linter on unused parameter 2024-05-16 08:44:06 +02:00
Michel Loiseleur
ae2978527a fix: Gateway API upgrade 2024-05-16 08:37:41 +02:00
ThameezBo
4fcc726863
fix: do not expose vars 2024-05-15 14:25:03 +02:00