Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to v1.2.0 of gateway API #680

Merged
merged 6 commits into from
Dec 12, 2024
Merged

Conversation

erikfuller
Copy link
Contributor

What type of PR is this?
Feature

Which issue does this PR fix:
#638

What does this PR do / Why do we need it:
Updates the controller to use the v1.2.0 gateway API. GRPCRoutes must be upgraded from v1alpha2. This change will enable running the controller within environments using the gateway v1.1+ API. Apologies for the large diff, due to versioning issues I wasn't able to split it up at all.

Does not (should not) include any logic updates. Changes include:

  1. Update gateway API to v1.2
  2. Update dependencies
  3. Update go version
  4. Remove packaging/inclusion of 3rd party GA CRDs

DOES NOT include documentation updates. This will be done as a separate PR. Recommend next controller release to be v1.1.0 given it's not a direct upgrade. Note that, like most CRD version upgrades, touching an object will advance it to the latest API version. This means other resources touched by the controller (e.g. HTTPRoute) will automatically be upgraded to v1 from beta versions.

Recommended upgrade steps (from controller v1.0.X):

  1. Back up configuration, especially GRPCRoute objects
  2. Disable v1.0.x controller (e.g. scale to zero)
  3. Update to GW API v1.1.0 - this includes deprecated v1alpha2 version, can also just update GRPCRoute CRD
  4. Save GRPCRoute objects as YAML, modify API version to v1
  5. Apply changes to GRPCRoute objects (now on v1)
  6. Update to GW API v1.2.0 (optional)
  7. Deploy and launch new controller version (v1.1.0 - not yet released)

Testing done on this change:
Ran e2e tests. Ran docker build. Created and eyeballed Helm chart.

Manual tests involved:

  • Confirming the above upgrade process
  • Doing a GRPCRoute v1 downgrade to v1alpha2 (wasn't pretty but all Lattice resources remained intact and traffic continued to flow uninterrupted)
  • Confirmed HTTPRoute was unaffected by this change, other than API version upgrade

Automation added to e2e:
No additional tests

Will this PR introduce any new dependencies?:
No

Will this break upgrades or downgrades. Has updating a running cluster been tested?:
I have tested updating a running cluster with the above process.

Does this PR introduce any user-facing change?:

ACTION REQUIRED: Upgrades to Gateway API v1.2.0. GRPCRoute objects MUST be upgraded from v1alpha2 to v1.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@erikfuller erikfuller marked this pull request as ready for review December 9, 2024 23:48
@erikfuller erikfuller enabled auto-merge (squash) December 12, 2024 20:20
@erikfuller erikfuller disabled auto-merge December 12, 2024 20:20
@erikfuller erikfuller merged commit 3004ea9 into aws:main Dec 12, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants