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

NE-1946: ingress: Add CRD Lifecycle Management for Gateway API #1756

Conversation

shaneutt
Copy link
Member

@shaneutt shaneutt commented Feb 14, 2025

This proposes the mechanisms by which we will deliver Gateway API as a "core-like" API on the platform going forward.

This covers all the work being done in the NE-1898 epic and is a hard requirement for delivering Gateway API support in 4.19.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 14, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 14, 2025

@shaneutt: This pull request references NE-1946 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.19.0" version, but no target version was set.

In response to this:

This proposes the mechanisms by which we will deliver Gateway API as a "core-like" API on the platform going forward.

This covers the work in NE-1898 and is a hard requirement for delivering Gateway API support in 4.19.

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested review from gcs278 and Miciah February 14, 2025 19:31
@shaneutt
Copy link
Member Author

/cc @knobunc @JoelSpeed @dgn

@openshift-ci openshift-ci bot requested review from dgn, JoelSpeed and knobunc February 14, 2025 19:33
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 14, 2025

@shaneutt: This pull request references NE-1946 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.19.0" version, but no target version was set.

In response to this:

This proposes the mechanisms by which we will deliver Gateway API as a "core-like" API on the platform going forward.

This covers all the work being done in the NE-1898 epic and is a hard requirement for delivering Gateway API support in 4.19.

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 openshift-eng/jira-lifecycle-plugin repository.

@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch 5 times, most recently from 7af99b6 to a4db666 Compare February 17, 2025 19:36
@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch 3 times, most recently from 50fcb98 to 7fa4c25 Compare February 18, 2025 14:35
@shaneutt shaneutt requested a review from alebedev87 February 18, 2025 14:37
@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch 3 times, most recently from e66cab0 to 8db12e8 Compare February 18, 2025 20:56
@candita
Copy link
Contributor

candita commented Feb 26, 2025

Replaces #1740

@candita
Copy link
Contributor

candita commented Feb 26, 2025

/assign

@candita
Copy link
Contributor

candita commented Feb 26, 2025

/assign @alebedev87
/assign @Thealisyed

@alebedev87 thank you for agreeing to lead the review and be the final approver.

Copy link
Contributor

@JoelSpeed JoelSpeed left a comment

Choose a reason for hiding this comment

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

I think it might be useful to explain a bit more about the protection VAP, it's mentioned a few times but not really explained what it will be doing or why we've made that decision, what benefits it gives us

#### Single-node Deployments or MicroShift

The CRDs themselves use minimal resources. Creating a GatewayClass CR can cause
the Ingress Operator to install OpenShift Service Mesh, which in turn installs
Copy link
Contributor

Choose a reason for hiding this comment

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

You could create a VAP set to WARN that would notify a user that their action implicitly enables service mesh, and give them some feedback there, might be a useful addition

Copy link
Member Author

Choose a reason for hiding this comment

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

Interestingly we don't enable service mesh. It's kinda weird, but we're literally just using Istio for it's ingress Gateway capabilities (i.e. we don't deploy istio-cni, or allow any use of service mesh features, etc). We're wanting more distinctive support for this use case in the future, which the OSSM team has been helping us with. For the deployment of OSSM we'll be doing, the Gateway API resources are the only API surface we will be supporting (in fact we want to soft block someone trying going around this). All that said, we recently split the feature gates for the gateway API CRDs and the OSSM implementation, so OSSM is no longer a part of this and the EP was a bit out of date. This is now updated to remove references to OSSM, LMKWYT

Copy link
Contributor

Choose a reason for hiding this comment

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

Point still stands about the implicit installation of Istio, you could provide a warning, maybe that's relevant for a different EP now though?

Copy link
Member Author

Choose a reason for hiding this comment

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

We intend to make the service mesh components of OSSM inaccessible in this deployment, could you help me to better understand what you envision this warning saying, and what explicit action would trigger it?

@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch from 00bbe2d to 492ab0c Compare March 11, 2025 16:32
Copy link
Contributor

@alebedev87 alebedev87 left a comment

Choose a reason for hiding this comment

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

Just a few final remarks regarding the latest Slack discussions. Apart from that, LGTM.

@shaneutt shaneutt requested a review from alebedev87 March 14, 2025 17:25
@alebedev87
Copy link
Contributor

/lgtm
/hold

@JoelSpeed: unhold if you are fine with this EP.

@openshift-ci openshift-ci bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. lgtm Indicates that a PR is ready to be merged. labels Mar 14, 2025
@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch from 7d8ca43 to 5b825a9 Compare March 14, 2025 19:22
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 14, 2025
@alebedev87
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 14, 2025
Comment on lines +339 to +340
- Install incompatible CRDs; verify that the operator reports `Degraded`
- Install experimental CRDs; verify that the operator reports `Degraded`
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this correct, or is the operator removing these now?

Copy link
Member Author

Choose a reason for hiding this comment

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

This is correct, specifically this is for the tests: if the experimental APIs somehow become present we go degraded. We want to make experimental available in a later release, but for initial release we're being very strict about it not being present because it can cause some issues. We are considering a very deliberate way to enable Experimental later, where the cluster gets set to TechPreviewNoUpgrade and then the user can do what they like with Experimental, but that's expected to be a future enhancement proposal and for now 🔒.

@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 17, 2025
@shaneutt shaneutt requested a review from JoelSpeed March 17, 2025 19:57
Miciah and others added 5 commits March 17, 2025 15:57
* enhancements/ingress/gateway-api-crd-life-cycle-management.md: New file.
* enhancements/ingress/gateway-api-with-cluster-ingress-operator.md: Add
cross-reference to the new file.
Signed-off-by: Shane Utt <shaneutt@linux.com>
Signed-off-by: Shane Utt <shaneutt@linux.com>
Signed-off-by: Shane Utt <shaneutt@linux.com>
Signed-off-by: Shane Utt <shaneutt@linux.com>
@shaneutt shaneutt force-pushed the ingress-add-gateway-api-crd-lifecycle-management-enhancement branch from 83c5c3e to 18baca0 Compare March 17, 2025 19:58
@JoelSpeed
Copy link
Contributor

/lgtm
/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 18, 2025
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 18, 2025
Copy link
Contributor

openshift-ci bot commented Mar 18, 2025

@shaneutt: all tests passed!

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot bot merged commit 16ec2e8 into openshift:master Mar 18, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. tide/merge-method-rebase Denotes a PR that should be rebased by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants