ngrok / kubernetes-ingress-controller

The official ngrok Ingress Controller for Kubernetes
https://ngrok.com
MIT License
183 stars 20 forks source link

migrate to multigroup #327

Closed Abdiramen closed 5 months ago

Abdiramen commented 6 months ago

What

Migrate to multi-group configurations so that ingress and gateway will have directories specifically scoped to them.

How

Followed kubebuilder's migration guide for single to multi-group: https://book.kubebuilder.io/migration/multi-group

Breaking Changes

Nope!

Abdiramen commented 6 months ago

Current dependencies on/for this PR:

This stack of pull requests is managed by Graphite.

alex-bezek commented 5 months ago

Functionally, the grouping seems fine. Thanks for linking the kubebuilder docs about what the multi-group stuff is as I hadn't heard of it.

My only confusion about their docs vs what we have here is if its about k8s standard domains/groups vs custom domains/groups.

Their example, they are talking about the CronJob example which uses the group batch.tutorial.kubebuilder.io which would be custom. In this PR we moved all the API CRD types and all the controllerso to be grouped under the folder ingress. Our group is ingress.k8s.ngrok.com but maybe we just peal off the ingress part and are using that?

But for the controllers the ingress_controller is also under this now, and we are creating a gateway controller soon. These use the group networking.k8s.io

I don't really know how its supposed to be structured, just some of these seem a little confusing based on my understanding of groups and the docs linked. I'm curious if you have a better understanding of how these k8s standard groups vs custom crd groups play into this multi-group refactor.

That being said, if at the end of the day its just an organization thing and they can be moved easily, we don't need to bikeshed this forever and can move forward and iterate. Thanks for the change/upgrade!