Skip to content
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

Gateway API: Revert Gateway and HTTPRoute objects from v1 to v1beta1 #4610

Merged
merged 3 commits into from
Jul 27, 2024

Conversation

abursavich
Copy link
Contributor

@abursavich abursavich commented Jul 13, 2024

Description

This reverts Kubernetes API interactions for Gateway and HTTPRoute objects from APIVersion v1 to v1beta1.

Fixes #4366

Checklist

  • Unit tests updated
  • End user documentation updated

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 13, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @abursavich. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jul 13, 2024
@mloiseleur
Copy link
Contributor

mloiseleur commented Jul 22, 2024

Thanks for this PR @abursavich
I'm wondering: why should we revert ?
Gateway API is still a WIP and, eventually, GKE will upgrade to it.

Maybe I missed something: so far, I understand that if we merge this PR, users using v1 for Gateway and HTTPRoute will be impacted and won't be able to use this version anymore.

@abursavich
Copy link
Contributor Author

abursavich commented Jul 22, 2024

@mloiseleur, it's all rather confusing. This is the best way to support the most users, including v1 users.

There are two different release channels (Experimental and Standard). I tried to cover them a bit in the added documentation. The Experimental channel includes alpha, beta, and stable CRD versions. The Standard channel only includes beta and stable CRD versions. They matter for other details, but the channels aren't relevant to the main vbeta1 vs v1 issue here. That's mostly down to the fact that there are different versions released in each channel over time. Older releases in both channels are missing the v1 API.

The problem with GKE is that their Gateway API CRDs are pinned to the GKE cluster version. In order to get updates to GWAPI CRDs, users need to upgrade their GKE clusters. Some external-dns users are unable or unwilling to do that. So they're stuck with GWAPI CRDs that only contain v1beta1, from before v1 was released.

All versions of GWAPI CRD releases that contain the v1 API also contain the v1beta1 API. If you have v1 and v1beta1 installed the apiserver will transparently convert v1beta1 resources to v1 and back again, where the Kinds exist in both versions. Where the Kind exists in the v1beta1 API, it's safe to use v1beta1 instead of v1. If you only have v1beta1 installed you must use it instead of v1. So v1beta1 covers everyone for most cases.

GRPCRoute is an outlier. It's the reason for the "where the Kinds exist" caveats above. It has existed for longer in v1alpha2 (Experimental channel only) and now also exists in v1 (both channels). If we use v1alpha2 for GRPCRoute, we only support users on the Experimental channel. If we use v1 for GRPCRoute, then we don't support users of the older Experimental releases but we do support users of newer Experimental and Standard releases. We use v1 for GRPCRoute.

@mloiseleur
Copy link
Contributor

mloiseleur commented Jul 23, 2024

Thanks, it's starting to become less blurry. I have a few comments.

The problem with GKE is that their Gateway API CRDs are pinned to the GKE cluster version. In order to get updates to GWAPI CRDs, users need to upgrade their GKE clusters. Some external-dns users are unable or unwilling to do that. So they're stuck with GWAPI CRDs that only contain v1beta1, from before v1 was released.

external-dns is maintained by very few people on their free time. When user does not / cannot upgrade its cluster, he can also use a previous version of external-dns. That's also what a user need to do when a specific regression has been introduced in the latest version for its infrastructure.

All versions of GWAPI CRD releases that contain the v1 API also contain the v1beta1 API.

I'm not sure of that. I'm aware of at least recent Traefik Proxy v3.1 coming with complete support of stable Gateway API v1. There is no v1beta1 in the recommended CRDs.

Instead of reverting now, and re-reverting in a few months, wdyt of (just) improving documentation about current situation and current known issues with Gateway API ?

@abursavich
Copy link
Contributor Author

Regarding Traefik Proxy: Traefik & Kubernetes with Gateway API

This provider supports version v1.1.0 of the Gateway API specification.

It fully supports all HTTP core and some extended features, as well as the TCPRoute and TLSRoute resources from the Experimental channel.

The v1.1.0 referenced is a GWAPI release version and not an API version. The Experimental and Standard channels both contain the v1beta1 API at v1.1.0. You can see the CRD manifests here: https://github.com/kubernetes-sigs/gateway-api/tree/v1.1.0/config/crd

Here's more GWAPI docs on versioning: https://gateway-api.sigs.k8s.io/concepts/versioning/

Of interest:

Release Channels
[...]
image

Supported Versions
This project aims to provide support for a wide range of Kubernetes versions with consistent upgrade experiences across versions. To accomplish that, we commit to:
[...]
2. Ensure that all Standard Channel changes between v1beta1 and v1 are fully compatible and convertible.

The beta API will continue to exist for a long time, but it's being phased out functionally. Resources that already exist in v1beta1 will continue to be synced with their v1 counterparts, but new resources will jump from alpha to v1 skipping beta like GRPCRoute did.

external-dns is maintained by very few people on their free time.

Agreed! I implemented 99% of the Gateway API features in external-dns in my free time. Some others have added to it.

When user does not / cannot upgrade its cluster, he can also use a previous version of external-dns. That's also what a user need to do when a specific regression has been introduced in the latest version for its infrastructure. [...] Instead of reverting now, and re-reverting in a few months, wdyt of (just) improving documentation about current situation and current known issues with Gateway API ?

Personally, I would rather use v1 and be done with it. However, since I'm the de facto maintainer of GWAPI in external-dns, I try to check in occasionally and fix reasonable issues that people raise. I think using v1beta1 is reasonable since GKE is such a large provider and it's causing significant user friction. Dropping v1beta1 support and moving fully to v1 in external-dns will probably happen at some point, but it'll be at least a year from now.

@mloiseleur
Copy link
Contributor

Wow. You are more than convincing 🙇.
If you want to join current maintainers, it's possible.
/ok-to-test
/lgtm

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 23, 2024
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 23, 2024
@abursavich
Copy link
Contributor Author

The robot told me to:

/assign @johngmyers

@Raffo
Copy link
Contributor

Raffo commented Jul 27, 2024

Thank you for the explanation @abursavich . I agree with your assessment and thankful for your thorough explanation.

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Raffo

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 27, 2024
@k8s-ci-robot k8s-ci-robot merged commit 4da484b into kubernetes-sigs:master Jul 27, 2024
14 checks passed
@abursavich abursavich deleted the gateway-api branch July 28, 2024 04:00
@alexstojda
Copy link

Thank you for this @abursavich 🙏🏼

truecharts-admin referenced this pull request in truecharts/public Sep 5, 2024
…rnal-dns to v0.15.0@338dd8c by renovate (#25969)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[registry.k8s.io/external-dns/external-dns](https://github.com/kubernetes-sigs/external-dns)
| minor | `v0.14.2` -> `v0.15.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes-sigs/external-dns
(registry.k8s.io/external-dns/external-dns)</summary>

###
[`v0.15.0`](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.15.0)

[Compare
Source](https://github.com/kubernetes-sigs/external-dns/compare/v0.14.2...v0.15.0)

#### Important notes

This release drops a few unmaintained providers. See
[https://github.com/kubernetes-sigs/external-dns/pull/4719](https://github.com/kubernetes-sigs/external-dns/pull/4719)
as mentioned in
[https://github.com/kubernetes-sigs/external-dns/issues/4347](https://github.com/kubernetes-sigs/external-dns/issues/4347).
If you need to use any of the previous providers, please use a previous
release of external DNS or follow the instructions to implement a
webhook provider that supports those providers.

#### What's Changed

- build(deps): bump actions/checkout from 4.1.5 to 4.1.6 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4477](https://github.com/kubernetes-sigs/external-dns/pull/4477)
- Update kustomize version for v0.14.2 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4480](https://github.com/kubernetes-sigs/external-dns/pull/4480)
- build(deps): bump the dev-dependencies group with 8 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4478](https://github.com/kubernetes-sigs/external-dns/pull/4478)
- update docs to v0.14.2 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4481](https://github.com/kubernetes-sigs/external-dns/pull/4481)
- build(deps): bump GrantBirki/json-yaml-validate from 2.7.1 to 3.0.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4489](https://github.com/kubernetes-sigs/external-dns/pull/4489)
- fix: re-add api-approved.kubernetes.io annotation by
[@&#8203;morremeyer](https://github.com/morremeyer) in
[https://github.com/kubernetes-sigs/external-dns/pull/4488](https://github.com/kubernetes-sigs/external-dns/pull/4488)
- feat(webhooks): pass webhook-\* annotations to webhook providers by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4458](https://github.com/kubernetes-sigs/external-dns/pull/4458)
- fix(traefik): Nil pointer exception if legacy traefik is disabled by
[@&#8203;kbudde](https://github.com/kbudde) in
[https://github.com/kubernetes-sigs/external-dns/pull/4502](https://github.com/kubernetes-sigs/external-dns/pull/4502)
- add unifi webhook to readme by
[@&#8203;onedr0p](https://github.com/onedr0p) in
[https://github.com/kubernetes-sigs/external-dns/pull/4504](https://github.com/kubernetes-sigs/external-dns/pull/4504)
- Drop experimental notice in webhook flags by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4507](https://github.com/kubernetes-sigs/external-dns/pull/4507)
- feat(coredns): etcd authentication by
[@&#8203;matthieugouel](https://github.com/matthieugouel) in
[https://github.com/kubernetes-sigs/external-dns/pull/4503](https://github.com/kubernetes-sigs/external-dns/pull/4503)
- Bump the dev-dependencies group across 1 directory with 13 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4514](https://github.com/kubernetes-sigs/external-dns/pull/4514)
- Add Infoblox webhook provider by
[@&#8203;k0da](https://github.com/k0da) in
[https://github.com/kubernetes-sigs/external-dns/pull/4513](https://github.com/kubernetes-sigs/external-dns/pull/4513)
- 🌱 docs(footer): Add trademark disclaimer by
[@&#8203;mariasalcedo](https://github.com/mariasalcedo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4529](https://github.com/kubernetes-sigs/external-dns/pull/4529)
- chore!: Remove infoblox in-tree provider by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4516](https://github.com/kubernetes-sigs/external-dns/pull/4516)
- Update to Go 1.22.4 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4534](https://github.com/kubernetes-sigs/external-dns/pull/4534)
- Bump the dev-dependencies group across 1 directory with 19 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4536](https://github.com/kubernetes-sigs/external-dns/pull/4536)
- Add documentation about etcd HTTPS for CoreDNS provider by
[@&#8203;AlessandroZanatta](https://github.com/AlessandroZanatta)
in
[https://github.com/kubernetes-sigs/external-dns/pull/4538](https://github.com/kubernetes-sigs/external-dns/pull/4538)
- chore(chart): Released chart for v0.14.2 by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[https://github.com/kubernetes-sigs/external-dns/pull/4541](https://github.com/kubernetes-sigs/external-dns/pull/4541)
- Bump the dev-dependencies group with 4 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4540](https://github.com/kubernetes-sigs/external-dns/pull/4540)
- feat(aws): use AWS profiles using .credentials file by
[@&#8203;roehrijn](https://github.com/roehrijn) in
[https://github.com/kubernetes-sigs/external-dns/pull/3973](https://github.com/kubernetes-sigs/external-dns/pull/3973)
- fix(cloudflare): trimSpace on token read from file by
[@&#8203;simonostendorf](https://github.com/simonostendorf) in
[https://github.com/kubernetes-sigs/external-dns/pull/4515](https://github.com/kubernetes-sigs/external-dns/pull/4515)
- docs: upgrade mkdocs and fix broken links by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4378](https://github.com/kubernetes-sigs/external-dns/pull/4378)
- chore(deps): bump github.com/vektah/gqlparser/v2 from 2.5.1 to 2.5.14
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4546](https://github.com/kubernetes-sigs/external-dns/pull/4546)
- chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity
from 1.5.2 to 1.6.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4544](https://github.com/kubernetes-sigs/external-dns/pull/4544)
- chore(deps): bump the dev-dependencies group across 1 directory with
19 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4562](https://github.com/kubernetes-sigs/external-dns/pull/4562)
- chore(deps): bump actions/checkout from 4.1.6 to 4.1.7 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4547](https://github.com/kubernetes-sigs/external-dns/pull/4547)
- feat(rfc2136): add PTR optional support by
[@&#8203;angeloxx](https://github.com/angeloxx) in
[https://github.com/kubernetes-sigs/external-dns/pull/4283](https://github.com/kubernetes-sigs/external-dns/pull/4283)
- Update cloudflare.md by
[@&#8203;tobiabocchi](https://github.com/tobiabocchi) in
[https://github.com/kubernetes-sigs/external-dns/pull/4583](https://github.com/kubernetes-sigs/external-dns/pull/4583)
- feat!: update GRPCRoute client from v1alpha2 to stable v1 by
[@&#8203;thameezb](https://github.com/thameezb) in
[https://github.com/kubernetes-sigs/external-dns/pull/4567](https://github.com/kubernetes-sigs/external-dns/pull/4567)
- docs(annotations): note how to set multiple hostnames by
[@&#8203;hopkinsth](https://github.com/hopkinsth) in
[https://github.com/kubernetes-sigs/external-dns/pull/4602](https://github.com/kubernetes-sigs/external-dns/pull/4602)
- chore(deps): bump the dev-dependencies group across 1 directory with 2
updates by [@&#8203;dependabot](https://github.com/dependabot)
in
[https://github.com/kubernetes-sigs/external-dns/pull/4604](https://github.com/kubernetes-sigs/external-dns/pull/4604)
- Gateway API: Revert Gateway and HTTPRoute objects from v1 to v1beta1
by [@&#8203;abursavich](https://github.com/abursavich) in
[https://github.com/kubernetes-sigs/external-dns/pull/4610](https://github.com/kubernetes-sigs/external-dns/pull/4610)
- chore(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4600](https://github.com/kubernetes-sigs/external-dns/pull/4600)
- chore(deps): bump the dev-dependencies group across 1 directory with
37 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4655](https://github.com/kubernetes-sigs/external-dns/pull/4655)
- docs: fix broken link by
[@&#8203;ilmax](https://github.com/ilmax) in
[https://github.com/kubernetes-sigs/external-dns/pull/4662](https://github.com/kubernetes-sigs/external-dns/pull/4662)
- azure-private-dns: Fix LoadBalancer example by
[@&#8203;orgads](https://github.com/orgads) in
[https://github.com/kubernetes-sigs/external-dns/pull/4663](https://github.com/kubernetes-sigs/external-dns/pull/4663)
- AWS: Change documentation to use Helm values by
[@&#8203;pier-oliviert](https://github.com/pier-oliviert) in
[https://github.com/kubernetes-sigs/external-dns/pull/4577](https://github.com/kubernetes-sigs/external-dns/pull/4577)
- chore(deps): bump the dev-dependencies group across 1 directory with
10 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4668](https://github.com/kubernetes-sigs/external-dns/pull/4668)
- Improve MinEventInterval compliance with docs by
[@&#8203;tjamet](https://github.com/tjamet) in
[https://github.com/kubernetes-sigs/external-dns/pull/3400](https://github.com/kubernetes-sigs/external-dns/pull/3400)
- Add provider cache by
[@&#8203;tjamet](https://github.com/tjamet) in
[https://github.com/kubernetes-sigs/external-dns/pull/4597](https://github.com/kubernetes-sigs/external-dns/pull/4597)
- chore: update maintainers by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4679](https://github.com/kubernetes-sigs/external-dns/pull/4679)
- fix(helm): make use of resource values for webhook by
[@&#8203;crutonjohn](https://github.com/crutonjohn) in
[https://github.com/kubernetes-sigs/external-dns/pull/4560](https://github.com/kubernetes-sigs/external-dns/pull/4560)
- Fix AWS Cloud Map docs: annotation key/value pairs must be strings by
[@&#8203;mjlshen](https://github.com/mjlshen) in
[https://github.com/kubernetes-sigs/external-dns/pull/4683](https://github.com/kubernetes-sigs/external-dns/pull/4683)
- Webhook provider helm chart fixes by
[@&#8203;kimsondrup](https://github.com/kimsondrup) in
[https://github.com/kubernetes-sigs/external-dns/pull/4643](https://github.com/kubernetes-sigs/external-dns/pull/4643)
- chore(deps): bump the dev-dependencies group across 1 directory with
16 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4684](https://github.com/kubernetes-sigs/external-dns/pull/4684)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.0.0 to 3.1.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4685](https://github.com/kubernetes-sigs/external-dns/pull/4685)
- Add tutorial to DynamoDB registry docs by
[@&#8203;mjlshen](https://github.com/mjlshen) in
[https://github.com/kubernetes-sigs/external-dns/pull/4686](https://github.com/kubernetes-sigs/external-dns/pull/4686)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.1.0 to 3.2.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4700](https://github.com/kubernetes-sigs/external-dns/pull/4700)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.2.0 to 3.2.1 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4702](https://github.com/kubernetes-sigs/external-dns/pull/4702)
- chore: upgrade ExternalDNS to go 1.23 by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4698](https://github.com/kubernetes-sigs/external-dns/pull/4698)
- feat: add annotation and label filters to Ambassador Host Source by
[@&#8203;KyleMartin901](https://github.com/KyleMartin901) in
[https://github.com/kubernetes-sigs/external-dns/pull/2633](https://github.com/kubernetes-sigs/external-dns/pull/2633)
- Add RouterOS provider to README.md by
[@&#8203;benfiola](https://github.com/benfiola) in
[https://github.com/kubernetes-sigs/external-dns/pull/4714](https://github.com/kubernetes-sigs/external-dns/pull/4714)
- feat: support dual stack for gateway api by
[@&#8203;thameezb](https://github.com/thameezb) in
[https://github.com/kubernetes-sigs/external-dns/pull/4469](https://github.com/kubernetes-sigs/external-dns/pull/4469)
- chore(deps): bump actions/setup-python from 5.1.1 to 5.2.0 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4712](https://github.com/kubernetes-sigs/external-dns/pull/4712)
- chore: remove unmaintained providers by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4719](https://github.com/kubernetes-sigs/external-dns/pull/4719)

#### Images

    docker pull registry.k8s.io/external-dns/external-dns:v0.15.0

#### New Contributors

- [@&#8203;kbudde](https://github.com/kbudde) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4502](https://github.com/kubernetes-sigs/external-dns/pull/4502)
- [@&#8203;matthieugouel](https://github.com/matthieugouel)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4503](https://github.com/kubernetes-sigs/external-dns/pull/4503)
- [@&#8203;mariasalcedo](https://github.com/mariasalcedo) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4529](https://github.com/kubernetes-sigs/external-dns/pull/4529)
-
[@&#8203;AlessandroZanatta](https://github.com/AlessandroZanatta)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4538](https://github.com/kubernetes-sigs/external-dns/pull/4538)
- [@&#8203;roehrijn](https://github.com/roehrijn) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/3973](https://github.com/kubernetes-sigs/external-dns/pull/3973)
- [@&#8203;simonostendorf](https://github.com/simonostendorf)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4515](https://github.com/kubernetes-sigs/external-dns/pull/4515)
- [@&#8203;angeloxx](https://github.com/angeloxx) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4283](https://github.com/kubernetes-sigs/external-dns/pull/4283)
- [@&#8203;tobiabocchi](https://github.com/tobiabocchi) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4583](https://github.com/kubernetes-sigs/external-dns/pull/4583)
- [@&#8203;thameezb](https://github.com/thameezb) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4567](https://github.com/kubernetes-sigs/external-dns/pull/4567)
- [@&#8203;hopkinsth](https://github.com/hopkinsth) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4602](https://github.com/kubernetes-sigs/external-dns/pull/4602)
- [@&#8203;ilmax](https://github.com/ilmax) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4662](https://github.com/kubernetes-sigs/external-dns/pull/4662)
- [@&#8203;orgads](https://github.com/orgads) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4663](https://github.com/kubernetes-sigs/external-dns/pull/4663)
- [@&#8203;pier-oliviert](https://github.com/pier-oliviert)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4577](https://github.com/kubernetes-sigs/external-dns/pull/4577)
- [@&#8203;crutonjohn](https://github.com/crutonjohn) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4560](https://github.com/kubernetes-sigs/external-dns/pull/4560)
- [@&#8203;mjlshen](https://github.com/mjlshen) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4683](https://github.com/kubernetes-sigs/external-dns/pull/4683)
- [@&#8203;kimsondrup](https://github.com/kimsondrup) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4643](https://github.com/kubernetes-sigs/external-dns/pull/4643)
- [@&#8203;KyleMartin901](https://github.com/KyleMartin901)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/2633](https://github.com/kubernetes-sigs/external-dns/pull/2633)
- [@&#8203;benfiola](https://github.com/benfiola) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4714](https://github.com/kubernetes-sigs/external-dns/pull/4714)

**Full Changelog**:
kubernetes-sigs/external-dns@v0.14.2...v0.15.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC42Ny41IiwidXBkYXRlZEluVmVyIjoiMzguNjcuNSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJ1cGRhdGUvZG9ja2VyL2dlbmVyYWwvbm9uLW1ham9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0.14.1 causing crash loopback related to v1.Gateway
6 participants