934 Commits

Author SHA1 Message Date
Michael Shen
0b4c0e8ecd
Add tutorial for AWS-SD AAAA record support
Signed-off-by: Michael Shen <mishen@umich.edu>
2024-10-22 10:52:58 -04:00
Kubernetes Prow Robot
b834fef2b7
Merge pull request #4745 from github-vincent-miszczak/aws-sd-tags
feat(aws-sd): tag services
2024-10-19 22:33:04 +01:00
tanujd11
55839f5bcb addressed review comments
Signed-off-by: tanujd11 <dwiveditanuj41@gmail.com>
2024-10-18 11:59:36 +05:30
tanujd11
faced93ba2 feature: add azure zone list cache
Signed-off-by: tanujd11 <dwiveditanuj41@gmail.com>
2024-10-16 16:48:42 +05:30
Kubernetes Prow Robot
2b93938cab
Merge pull request #4761 from n-Arno/master
source node: Skip unschedulable nodes
2024-10-10 15:20:31 +01:00
claycooper
aab109aa81
Update godaddy.md spelling and reference to NS1
Standardized spellings of GoDaddy.
Replaced instance of NS1 from copying NS1 docs to GoDaddy.
2024-10-07 19:35:21 -04:00
Vincent Miszczak
ad744bda83
Merge branch 'kubernetes-sigs:master' into aws-sd-tags 2024-10-07 10:20:22 +02:00
Vincent Miszczak
5ac7afa50c
Update docs/tutorials/aws-sd.md
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-10-07 10:17:26 +02:00
Vincent Miszczak
f2c376c6e8
Update docs/tutorials/aws-sd.md
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-10-04 18:51:02 +02:00
Raffaele Di Fazio
59fe374d79 removes deprecated rdns provider
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2024-10-03 18:48:29 +02:00
Kubernetes Prow Robot
25b44e5c4e
Merge pull request #4648 from saravanan30erd/fix-mx-srv
Add support for MX and SRV records in pdns provider
2024-10-03 09:44:27 +01:00
Kubernetes Prow Robot
45257fb303
Merge pull request #4690 from amoniacou/mx-and-txt-records-for-do
feat(digitalocean): add mx and txt records support
2024-09-30 09:54:03 +01:00
n-Arno
326ee0be69 source node: Skip unschedulable nodes 2024-09-20 21:17:01 +02:00
romeroalx
1a909b871d pdns provider: added optional argument to make server_id configurable 2024-09-17 20:43:45 +02:00
Vincent Miszczak
7664cea905 feat: aws-sd tags 2024-09-16 14:56:43 +02:00
Kubernetes Prow Robot
a087c87ba1
Merge pull request #4691 from neticdk/webhook-api-change
Do not risk exposing unauthenticated webhook port on container
2024-09-10 20:21:26 +01:00
Oleksandr Simonov
dd19bedc37 fix typos 2024-09-06 13:32:41 +03:00
Oleksandr Simonov
5d7f75bb72 documentation 2024-09-06 13:32:39 +03:00
Raffaele Di Fazio
4117398643 Merge branch 'master' into raffo/docs-v0.15.0 2024-09-06 12:10:29 +02:00
Raffaele Di Fazio
c2117b9713
Update docs/release.md
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-09-06 12:00:53 +02:00
Kubernetes Prow Robot
7bdb0f6070
Merge pull request #4726 from mloiseleur/docs/fix-title
docs: refactor title and organisation
2024-09-05 19:03:44 +01:00
Raffaele Di Fazio
2313af8bd2 update the docs to v0.15.0
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2024-09-05 19:37:57 +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
Michel Loiseleur
50a53c8868
add deprecation notice on coredns tutorial 2024-09-05 09:15:49 +02:00
Michel Loiseleur
7ae03cdfc7
docs: refactor title and organisation 2024-09-05 09:09:48 +02:00
Michel Loiseleur
9ceca8fa81
review with Raffo 2024-09-04 13:51:29 +02:00
Michel Loiseleur
74a8cdad85
chore: remove unmaintained providers 2024-09-03 08:53:23 +02: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
Kubernetes Prow Robot
cb89c0efdd
Merge pull request #4698 from mloiseleur/chore/go1.23
chore: upgrade ExternalDNS to go 1.23
2024-08-26 13:59:08 +01:00
Michel Loiseleur
50672d66b9
chore: upgrade ExternalDNS to go 1.23 2024-08-22 09:10:10 +02:00
Michael Shen
3ee7771195
Emphasize the dynamodb registry in the rate limits doc
Signed-off-by: Michael Shen <mishen@umich.edu>
2024-08-21 19:36:41 -04:00
Michael Shen
b43ad1c432
Add tutorial to DynamoDB registry docs
The existing docs described how to configure the DynamoDB registry, but
didn't have a tutorial for someone to walk through.

Signed-off-by: Michael Shen <mishen@umich.edu>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-08-21 19:36:31 -04:00
Kim Sondrup
cc4439f624
doc: Update webhook-provider API to fix K8s probe 2024-08-20 12:09:23 +02:00
Johann Wagner
1b4843aa02 Added documentation for NAT64 prefix rewriting 2024-08-19 08:00:25 +02:00
Michael Shen
4595e0d5ef
Annotation key/value pairs must be strings
As-is, following the docs results in the following error:

```
json: cannot unmarshal number into Go struct field ObjectMeta.metadata.annotations of type string
```

Signed-off-by: Michael Shen <mishen@umich.edu>
2024-08-15 22:39:29 -04:00
Thibault Jamet
a6ab2badce
Update docs/tutorials/aws.md 2024-08-14 11:36:47 +02:00
Thibault Jamet
ef0dd29cf5
Apply suggestions from code review
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-08-14 10:21:00 +02:00
Thibault Jamet
309f34f4f5
Add an advanced topic about rate limits 2024-08-14 10:21:00 +02:00
Thibault Jamet
2955e5d456
Apply suggestions from code review
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2024-08-14 10:21:00 +02:00
Thibault Jamet
089744c6ff
Add cache at provider level
**Description**

In the current implementation, DNS providers are called to list all
records on every loop. This is expensive in terms of number of requests
to the provider and may result in being rate limited, as reported in 1293
and 3397.

In our case, we have approximately 20,000 records in our AWS Hosted Zone.
The ListResourceRecordSets API call allows a maximum of 300 items per call.
That requires 67 API calls per external-dns deployment during every sync period

With this, we introduce an optional generic caching mechanism at the provider
level, that re-uses the latest known list of records for a given time.

This prevents from expensive Provider calls to list all records for each
object modification that does not change the actual record (annotations,
statuses, ingress routing, ...)

This introduces 2 trade-offs:

1. Any changes or corruption directly on the provider side will be
longer to detect and to resolve, up to the cache time

2. Any conflicting records in the DNS provider (such as a different
external-dns instance) injected during the cache validity will cause
the first iteration of the next reconcile loop to fail, and hence add a
delay until the next retry

**Checklist**

- [X] Unit tests updated
- [X] End user documentation updated

Change-Id: I0bdcfa994ac1b76acedb05d458a97c080284c5aa
2024-08-14 10:20:56 +02:00
Kubernetes Prow Robot
c875e65d8d
Merge pull request #3400 from tjamet/min-event-sync
Improve MinEventInterval compliance with docs
2024-08-13 06:22:13 -07:00
Kubernetes Prow Robot
852087e21c
Merge pull request #4577 from pier-oliviert/helm-route-53-docs
AWS: Change documentation to use Helm values
2024-08-09 02:57:44 -07:00
Kubernetes Prow Robot
1ceaf798ae
Merge pull request #4663 from orgads/patch-1
azure-private-dns: Fix LoadBalancer example
2024-08-07 07:48:53 -07:00
Orgad Shaneh
f7e8ca19b3
azure-private-dns: Fix LoadBalancer example
annotations should be inside the metadata object.
2024-08-07 08:05:06 +03:00
Massimiliano Donini
53f4465823
Nit: Fix hyperlink
PR #4365 changed the anchor in the readme, this change fixes few outdated links
2024-08-07 06:53:56 +02:00
Thibault Jamet
1b5ed44e48
Improve documentation 2024-08-06 08:52:30 +02:00
Saravanan Palanisamy
f4eeeae7f7 update pdns tutorial documentation 2024-08-02 16:20:03 +04:00
Kubernetes Prow Robot
4da484b7e4
Merge pull request #4610 from abursavich/gateway-api
Gateway API: Revert Gateway and HTTPRoute objects from v1 to v1beta1
2024-07-27 01:33:34 -07:00
Andy Bursavich
2daa842eb7 docs/gateway-api: update supported API versions 2024-07-14 09:07:17 -07:00