kubernetes-sigs / cluster-api-provider-aws

Kubernetes Cluster API Provider AWS provides consistent deployment and day 2 operations of "self-managed" and EKS Kubernetes clusters on AWS.
http://cluster-api-aws.sigs.k8s.io/
Apache License 2.0
636 stars 561 forks source link

๐Ÿ› Reconcile target groups and listeners as their own entities #5004

Closed nrb closed 3 months ago

nrb commented 3 months ago

Signed-off-by: Nolan Brubaker nolan@nbrubaker.com

What type of PR is this?

/kind bug

What this PR does / why we need it:

If a load balancer is created but the calls to create a target group or listener fails (for example, due to a rate limit), creating the group or listener is never retried. This results in a load balancer that's created, but there is nothing attached to it, making it useless.

This change reconciles the target groups and listeners as their own entities, so that even if they fail to create initially, we'll keep retrying.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): Fixes #5002

Special notes for your reviewer:

Checklist:

Release note:

    Reconcile target groups and listeners independently of load balancers to handle failures more gracefully.
k8s-ci-robot commented 3 months ago

Skipping CI for Draft Pull Request. If you want CI signal for your change, please convert it to an actual PR. You can still manually trigger a test run with /test all

nrb commented 3 months ago

/test ?

k8s-ci-robot commented 3 months ago

@nrb: The following commands are available to trigger required jobs:

The following commands are available to trigger optional jobs:

Use /test all to run the following jobs that were automatically triggered:

In response to [this](https://github.com/kubernetes-sigs/cluster-api-provider-aws/pull/5004#issuecomment-2153175917): >/test ? Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
nrb commented 3 months ago

/test pull-cluster-api-provider-aws-e2e /test pull-cluster-api-provider-aws-e2e-blocking /test pull-cluster-api-provider-aws-e2e-clusterclass

nrb commented 3 months ago

/retitle ๐Ÿ› Reconcile target groups and listeners as their own entities

nrb commented 3 months ago

/assign @damdo

nrb commented 3 months ago

/test pull-cluster-api-provider-aws-e2e /test pull-cluster-api-provider-aws-e2e-blocking /test pull-cluster-api-provider-aws-e2e-clusterclass

nrb commented 3 months ago

/test pull-cluster-api-provider-aws-e2e /test pull-cluster-api-provider-aws-e2e-blocking /test pull-cluster-api-provider-aws-e2e-clusterclass

@r4f4 I clarified some of the variables and updated the arguments for reconcileTargetGroupsAndListeners. ๐Ÿคž that e2es are happy again.

r4f4 commented 3 months ago

LGTM. I'll give it a try again.

r4f4 commented 3 months ago

Got a successful install this time. /lgtm

k8s-ci-robot commented 3 months ago

@r4f4: changing LGTM is restricted to collaborators

In response to [this](https://github.com/kubernetes-sigs/cluster-api-provider-aws/pull/5004#issuecomment-2155307998): >Got a successful install this time. >/lgtm Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
dlipovetsky commented 3 months ago

/milestone v2.5.1

dlipovetsky commented 3 months ago

/approve

k8s-ci-robot commented 3 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dlipovetsky

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: - ~~[OWNERS](https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/main/OWNERS)~~ [dlipovetsky] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
dlipovetsky commented 3 months ago

/milestone v2.6.0 /milestone v2.5.1

nrb commented 3 months ago

/test pull-cluster-api-provider-aws-e2e /test pull-cluster-api-provider-aws-e2e-blocking /test pull-cluster-api-provider-aws-e2e-clusterclass

nrb commented 3 months ago

/unhold