Kong / gateway-operator

Kubernetes Operator for Kong Gateways
Apache License 2.0
50 stars 11 forks source link

Migrate Project layout to Kubebuilder v4 #130

Open pmalek opened 7 months ago

pmalek commented 7 months ago

Problem statement

This project has used Kubebuilder's v3 layout for quite some time now.

There already exists a new version of that: v4 which has several benefits (described e.g. in Kong/gateway-operator-archive#1455).

The biggest one is that it makes the controller code be placed in internal/ and hence precluding OSS users from relying on our implementation. This would most definitely save some headaches in the future.

Kong/gateway-operator#1455 has been merged with the above in mind (and more, see PR description for more details) but has proven to be disruptive to 1.2 work.

This issue tries to capture the effort to migrate to Kubebuilder v4 layout in a better time frame. Potentially after Kong/gateway-operator-enterprise#68 and Kong/gateway-operator-enterprise#70 (and its potential sub-issues) are complete and all the EE work has also been completed.

Adding nice-to-have label as that's what this issue is. Ideally, targeting 1.2 release.

Proposed solution

Important notes

This change will incur a breaking change for Go API consumers and has to be properly communicated and coordinated for internal users, specifically CG dataplane-controller (see: https://github.com/search?q=repo%3AKong%2Fdataplane-controller%20github.com%2Fkong%2Fgateway-operator%2Fapis&type=code)

Acceptance criteria

pmalek commented 5 months ago

I've updated the acceptance criteria in this issue.

This is a breaking change for Go API consumers and needs to be documented as such.

Most importantly CG dataplane controller code has to be updated to include this change (https://github.com/search?q=repo%3AKong%2Fdataplane-controller%20github.com%2Fkong%2Fgateway-operator%2Fapis&type=code)

cc: @programmer04

programmer04 commented 5 months ago

PR for CG dataplane has been created https://github.com/Kong/dataplane-controller/pull/554

pmalek commented 4 months ago

To be done after release:

randmonkey commented 3 months ago

@pmalek I see the acceptance criteria are all met in the issue. Should we close this?

pmalek commented 3 months ago

The comment above captures what needs to be done in dataplane controller. The intention was to leave this open until that is done.

Wie can also move this part of the task to team-K8s repo and close those one here

programmer04 commented 3 months ago

I'm on it, just after the Monday release I'll make https://github.com/Kong/dataplane-controller/pull/554 ready to merge

lahabana commented 2 months ago

@programmer04 should we push for the PR to be merged?

programmer04 commented 2 months ago

Yes, I think sooner is better