Skip to content

WIP: Add Application Load Balancer Controller Manager#879

Open
kamilprzybyl wants to merge 20 commits intomainfrom
feat/kp/add-alb-ingress-controller
Open

WIP: Add Application Load Balancer Controller Manager#879
kamilprzybyl wants to merge 20 commits intomainfrom
feat/kp/add-alb-ingress-controller

Conversation

@kamilprzybyl
Copy link

How to categorize this PR?

What this PR does / why we need it:

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Breaking changes:

@ske-prow
Copy link

ske-prow bot commented Mar 17, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign timebertt for approval. For more information see the Code Review Process.

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

Details 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

@ske-prow ske-prow bot added do-not-merge/needs-kind Indicates a PR lacks a `kind/foo` label and requires one. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 17, 2026
@kamilprzybyl kamilprzybyl changed the title Add Application Load Balancer Controller Manager WIP: Add Application Load Balancer Controller Manager Mar 17, 2026
@ske-prow ske-prow bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 17, 2026
@kamilprzybyl kamilprzybyl force-pushed the feat/kp/add-alb-ingress-controller branch from 7ecc416 to 86bdf1d Compare March 17, 2026 09:37
// generate self-signed certificates for the metrics server. While convenient for development and testing,
// this setup is not recommended for production.
//
// TODO(user): If you enable certManager, uncomment the following lines:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be good to create separate examples for that

certOpts = append(certOpts, sdkconfig.WithEndpoint(certURL))
}

fmt.Printf("Create ALB SDK client\n")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please remove fmt.Printf or use setupLog instead

)

const (
// externalIPAnnotation references an OpenStack floating IP that should be used by the application load balancer.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to reference openstack here as its deprecated?

if err != nil {
log.Printf("failed to load tls certificates: %v", err)
//nolint:gocritic // TODO: Rework error handling.
// return nil, fmt.Errorf("failed to load tls certificates: %w", err)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this commented out?

sort.SliceStable(ruleMetadataList, func(i, j int) bool {
a, b := ruleMetadataList[i], ruleMetadataList[j]
// 1. Host name (lexicographically)
if a.host != b.host {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this work with * host matcher?

}

// cleanupCerts deletes the certificates from the Certificates API that are no longer associated with any Ingress in the IngressClass
func (r *IngressClassReconciler) cleanupCerts(ctx context.Context, ingressClass *networkingv1.IngressClass, ingresses []*networkingv1.Ingress) error {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we really want to delete certificates? That could be very dangerous as users might just not associate the certificate anymore and want to keep it.


// isCertValid checks if the certificate chain is complete. It is used for checking if
// the cert-manager's ACME challenge is completed, or if it's sill ongoing.
func isCertValid(secret *corev1.Secret) (bool, error) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't that already handled by the certificate api?

acme:
server: https://acme-v02.api.letsencrypt.org/directory
# server: https://acme-staging-v02.api.letsencrypt.org/directory
email: kamil.przybyl@stackit.cloud
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't use a developers mail address in the examples

@ske-prow ske-prow bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 19, 2026
@ske-prow
Copy link

ske-prow bot commented Mar 19, 2026

PR needs rebase.

Details

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.

}

if len(albIngressList) < 1 {
err := r.handleIngressClassWithoutIngresses(ctx, albIngressList, ingressClass)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't make sense to pass albIngressList if it is always empty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/needs-kind Indicates a PR lacks a `kind/foo` label and requires one. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants