Skip to content

CFP: Migrate Operator Ingress controller code to controller-runtime #28911

@youngnick

Description

@youngnick

When we added Gateway API support to the Cilium Operator, we did it with the controller-runtime library - which works really well for related systems of resources like Gateway API.

However, that left us with two methods of watching Kubernetes objects that both end up in the same data model - Gateway API's controller-runtime, and Ingress' more traditional Informers. On top of which, the Hive model now has shared Informers available.

After talking it over with some other Service Mesh folks, we're proposing that we move the Ingress code to controller-runtime and its associated Reconcile pattern.

We believe that it should help with avoiding issues like:

Basically, the controller-runtime patterns are designed to make it easier to ensure that owned resources are cleaned up properly, and that changes in relevant resources lead to a reconciliation. For Ingress at the moment, we have to hand-roll all of that logic, which has lots of sharp edges that are easy to miss.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions