Skip to content
New issue

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

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

Already on GitHub? # to your account

NE-1112: Add Security Policy for Gateway API #1741

Merged
merged 1 commit into from
Mar 24, 2025

Conversation

gcs278
Copy link
Contributor

@gcs278 gcs278 commented Jan 23, 2025

Update the Gateway API proposal to include the security policy as well as a new section on Gateway Topology.

Update the Gateway API proposal to include the security policy as well
as a new section on Gateway Topology.
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 23, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 23, 2025

@gcs278: This pull request references NE-1112 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 epic to target the "4.19.0" version, but no target version was set.

In response to this:

Update the Gateway API proposal to include the security policy as well as a new section on Gateway Topology.

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 alebedev87 and miheer January 23, 2025 01:12
@gcs278
Copy link
Contributor Author

gcs278 commented Jan 23, 2025

/assign @shaneutt

@candita
Copy link
Contributor

candita commented Feb 5, 2025

/assign @Thealisyed
/assign

@openshift-bot
Copy link

Inactive enhancement proposals go stale after 28d of inactivity.

See https://github.com/openshift/enhancements#life-cycle for details.

Mark the proposal as fresh by commenting /remove-lifecycle stale.
Stale proposals rot after an additional 7d of inactivity and eventually close.
Exclude this proposal from closing by commenting /lifecycle frozen.

If this proposal is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 6, 2025
@Thealisyed
Copy link

/remove-lifecycle stale

@openshift-ci openshift-ci bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Mar 11, 2025
With shared gateway topology, a single load balancer type service and proxy deployment is created and serves
routes across multiple namespaces. The Gateway must allow the desired application namespaces via the
`spec.listeners.allowedRoutes.namespaces` field. This topology mirrors the existing OpenShift router topology and
is ideal for users that are cost sensitive and do not have strict performance or security requirements.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: It should probably be made clear why this is topology is potentially cheaper and/or slower or less secure. Otherwise, it leaves the question rather open-ended.

Copy link

@Thealisyed Thealisyed Mar 24, 2025

Choose a reason for hiding this comment

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

It is cost-effective as multiple users share the same infrastructure which helps distributing expenses. However, this can lead to slower performance since resources like processing power and bandwidth are divided among users potentially causing congestion. Additionally the shared gateways pose security risks as a compromise of one user’s data could affect others due to the lack of isolation in the shared environment.

Copy link
Contributor

Choose a reason for hiding this comment

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

On Gateway API gateways, which are virtual, this is not evident. Unless you have a reference, I think we need to remove the claim that this topology is cheaper, slower, or less secure.

Copy link
Contributor

Choose a reason for hiding this comment

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

I know my comment is a little late, but to clarify, most of the cost has to do with the load balancer and associated cloud resources. For example, if you're on AWS, then using a shared gateway means you pay for 1 ELB and 1 Route 53 DNS record. In contrast, if you need to create multiple gateways, you end up paying AWS for multiple ELBs and multiple DNS records. (Technically, we typically create 2 DNS records per ELB: one in the private hosted zone and one on the public hosted zone. Anyway, the point about cost stands.)

Copy link
Contributor

Choose a reason for hiding this comment

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

Adding an example like that would be fine.

Comment on lines +657 to +659
This cross-namespace topology can only be implemented using the Gateway-to-xRoute hierarchy, as Istio does not support
cross-namespace Gateway merging. Therefore, a limitation of this topology is that xRoutes lack an API for
specifying TLS certificates, requiring all application certificates to be managed within a cluster-wide Gateway.
Copy link
Contributor

Choose a reason for hiding this comment

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

Remove this paragraph. It's not clear what Gateway-to-xRoute hierarchy is, nor why we bring up cross-namespace gateway merging in this section. We can definitely specify certificates for HTTPRoutes.

Suggested change
This cross-namespace topology can only be implemented using the Gateway-to-xRoute hierarchy, as Istio does not support
cross-namespace Gateway merging. Therefore, a limitation of this topology is that xRoutes lack an API for
specifying TLS certificates, requiring all application certificates to be managed within a cluster-wide Gateway.


With a dedicated gateway topology, a load balancer type service and proxy deployment is created to serve the xRoutes
in a dedicated namespace. This approach is more suitable for multi-tenant environments or applications that require a
dedicated gateway to meet specific security or performance requirements.
Copy link
Contributor

Choose a reason for hiding this comment

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

As far as I know, we don't really have any data that says dedicated gateways are more secure or better performing, so it's best not to mention that here or in our docs.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the security comes from restricting who can use the certificates on a gateway and from having a dedicated proxy and load-balancer for each gateway.

Comment on lines +677 to +678
Gateway[Gateway] -.-> ProxyDeployment(Proxy Deployment)
Gateway[Gateway] -.-> LBService(LB Service)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same issue as the other diagram.

Comment on lines +651 to +652
Gateway[Gateway] -.-> ProxyDeployment(Proxy Deployment)
Gateway[Gateway] -.-> LBService(LB Service)
Copy link
Contributor

Choose a reason for hiding this comment

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

This diagram is also a little murky, as it breaks the abstraction at the Proxy Deployment and LB Service level. These two objects can be replaced by Service, as the Deployment is not a user-managed object. There can also be multiple Services.

Suggested change
Gateway[Gateway] -.-> ProxyDeployment(Proxy Deployment)
Gateway[Gateway] -.-> LBService(LB Service)
Gateway[Gateway] -.-> Service(Service)

Comment on lines +729 to +730
Gateway API upstream is still defining guidelines for DNS record management (see
[kubernetes-sigs/gateway-api#2627](https://github.com/kubernetes-sigs/gateway-api/issues/2627)).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Gateway API upstream is still defining guidelines for DNS record management (see
[kubernetes-sigs/gateway-api#2627](https://github.com/kubernetes-sigs/gateway-api/issues/2627)).
Gateway API upstream has no standard for DNS record management (see
[kubernetes-sigs/gateway-api#2627](https://github.com/kubernetes-sigs/gateway-api/issues/2627)).

field is [restricted](https://github.com/istio/istio/blob/915ac2bf05dbc7a08ae61a8bc39fcd6ea1f3d11a/pilot/pkg/config/kube/gateway/context.go#L78)
to Gateways in the same namespace. Work is underway to develop a mechanism for
[Gateway merging](https://docs.google.com/document/d/1qj7Xog2t2fWRuzOeTsWkabUaVeOF7_2t_7appe8EXwA/edit?usp=sharing),
and it is important to review the outcome for any potential security implications.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
and it is important to review the outcome for any potential security implications.
and it is important to review the outcome for any potential security implications or updates needed in this design.

|-----------------------|--------------|----------------------|----------------------|----------------|
| cluster-admin | All | All | All | All |
| admin | None | **Get, List, Watch** | **All** | None |
| edit | None | **Get, List, Watch** | **All** | None |
Copy link
Contributor

Choose a reason for hiding this comment

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

If there's no difference between the admin and edit cluster roles, we should combine them.

implement one of these security models. To support this, the Ingress Operator will add additional RBAC
permissions for the following default ClusterRoles:

| OpenShift ClusterRole | GatewayClass | Gateway | xRoute Types | ReferenceGrant |
Copy link
Contributor

Choose a reason for hiding this comment

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

ReferenceGrant is the only way an application developer (or admin) can allow xRoute access to a Service they own/manage in a different namespace. I think we need to re-consider allowing only cluster-admin access to ReferenceGrants.

From the docs: "A ReferenceGrant can be used to enable cross namespace references within Gateway API. In particular, Routes may forward traffic to backends in other namespaces, or Gateways may refer to Secrets in another namespace". Routes being able to forward traffic to backends in other namespaces may be useful to application developers trying to grant access to their applications.

Copy link
Member

Choose a reason for hiding this comment

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

If this becomes a sticking point we should consider pulling ReferenceGrant support out for GA so we can make an iteration specifically about it. We need to ensure that we don't allow cross namespace references by default as a consequence of such a thing, however.

Copy link
Contributor

Choose a reason for hiding this comment

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

No, I don't think it would be necessary to add more work by removing the ReferenceGrant CRD. Let's discuss the merits of allowing app developers and admins access to ReferenceGrant. If it's easier to bar it in the beginning and open it up later, let's do that.

Copy link
Contributor

Choose a reason for hiding this comment

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

To be clear, we're talking about whether the default RBAC policy will allow creating referencegrants, right? That is, the CRD will be there in any case, and the cluster-admin could define RBAC to allow broader use of referencegrants, right?

(e.g., Istio), installing the Gateway API CRDs, and creating the GatewayClass. However, since the Ingress Operator
handles the installation of OSSM and the CRDs, the Infrastructure Operator is only responsible for creating
and managing the GatewayClass. Cluster Operators create and manage the Gateways, while Application Developers create
and manage the routes.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
and manage the routes.
and manage the routes and referenceGrants.

Copy link
Contributor

Choose a reason for hiding this comment

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

This depends on the outcome of #1741 (comment)

Copy link
Member

@shaneutt shaneutt left a comment

Choose a reason for hiding this comment

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

Needs several updates regarding Gateway merging and topologies, we need to trim things down to the smallest, safest deliverable for the initial release.

Since Grant wont have capacity to finish this EP, I recommend we take care of all the current comments and suggestions, close this, and re-open labeling it as tide/merge-method-rebase (as this will help maintain Grant's attribution).

Comment on lines +625 to +662
#### Gateway Topology

Users have the option to deploy their Gateways using two distinct topologies: shared gateways or dedicated gateways.
Each topology addresses specific customer requirements, comes with different security implications (see [Security Policy](#security-policy)),
and will be supported in OpenShift.

##### Shared Gateway Topology

With shared gateway topology, a single load balancer type service and proxy deployment is created and serves
routes across multiple namespaces. The Gateway must allow the desired application namespaces via the
`spec.listeners.allowedRoutes.namespaces` field. This topology mirrors the existing OpenShift router topology and
is ideal for users that are cost sensitive and do not have strict performance or security requirements.

```mermaid
flowchart TD
subgraph foo-app namespace
xRoute
end
subgraph bar-app namespace
xRoute2
end
subgraph openshift-ingress namespace
Gateway
ProxyDeployment
LBService
end
Gateway[Gateway] -.-> ProxyDeployment(Proxy Deployment)
Gateway[Gateway] -.-> LBService(LB Service)
xRoute[xRoute] --> Gateway[Gateway]
xRoute2[xRoute] --> Gateway[Gateway]
```

TBD.
This cross-namespace topology can only be implemented using the Gateway-to-xRoute hierarchy, as Istio does not support
cross-namespace Gateway merging. Therefore, a limitation of this topology is that xRoutes lack an API for
specifying TLS certificates, requiring all application certificates to be managed within a cluster-wide Gateway.

Users can have multiple shared Gateways, similar to the concept of [sharding](https://docs.openshift.com/container-platform/latest/networking/configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-ingress-controller.html#nw-ingress-sharding_configuring-ingress-cluster-traffic-ingress-controller) in OpenShift.

Copy link
Member

@shaneutt shaneutt Mar 21, 2025

Choose a reason for hiding this comment

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

The shared Gateways topology will not be available for GA (we expect the upcoming listenersets feature to be part of our solution). I suggest we still refer to it, but instead of having a whole section about it as if it were something we can do today, we should make a special note that it's anticipated for a later release and provide some context, including a link to https://gateway-api.sigs.k8s.io/geps/gep-1713/.

Copy link
Contributor

Choose a reason for hiding this comment

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

We won't be using ListenerSets for quite some time to come, so keeping the idea of Shared Gateways, as described here, should be fine.

Copy link
Member

Choose a reason for hiding this comment

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

There might be a misunderstanding, I was not trying to suggest we remove it but rather than we caveat it.

##### Dedicated Gateway Topology

With a dedicated gateway topology, a load balancer type service and proxy deployment is created to serve the xRoutes
in a dedicated namespace. This approach is more suitable for multi-tenant environments or applications that require a
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
in a dedicated namespace. This approach is more suitable for multi-tenant environments or applications that require a
in a dedicated namespace. This approach is suitable for multi-tenant environments or applications that require a

Comment on lines -631 to 711
OpenShift Service Mesh and Istio have a feature called [automated deployment](https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment)
Istio has a feature called [automated deployment](https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/#automated-deployment)
that creates an Envoy deployment and service in the same namespace for each Gateway
if the Gateway's `spec.addresses` field is left unset. This enables users to seamlessly
create a "shard" per Gateway, much like how each IngressController object is a shard
for routes. It is enabled via the `PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER`
env variable.
if the Gateway's `spec.addresses` field is left unset. It is enabled via the
`PILOT_ENABLE_GATEWAY_API_DEPLOYMENT_CONTROLLER` env variable.

Conversely, with [manual deployments](https://istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/#manual-deployment),
if the Gateway has the `spec.addresses` field set, then it must manually link
to an [ingress gateway](https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/#configuring-ingress-using-a-gateway).
The user needs to make their own ingress gateway service and deployment in the same
namespace to manually link to, or they need to use the default ingress gateway (if enabled).

If the ServiceMeshControlPlane's `spec.gateways.ingress.enabled` field is set to `true`,
Istio creates an `istio-ingressgateway` service, in the same namespace as the control plane,
that is a ready-to-use proxy which gateways can be manually linked to. Istio [discourages](https://istio.io/latest/docs/setup/additional-setup/gateway/)
the use of this ingress gateway as it couples the gateway to the control plane.

_To summarize, there are four ways a user could link Gateways to Ingress Gateways:_
1. Use automated deployments
2. Use a manual deployment, manually create a new ingress gateway service and deployment, and link to this service
3. Use a manual deployment and link to the existing `istio-ingressgateway` ingress gateway
4. Use a manual deployment and link to a previously created automated deployment ingress gateway
Users can also link a Gateway to a previously created automated deployment belonging to another
Gateway.

OpenShift will not inhibit or alter the functionality of automated deployments, except
restricting creation of Gateways to specific users (_see the automated deployment section
in Risks and Mitigations_).
restricting creation of Gateways to specific users (see [RBAC](#rbac)).

Nor will OpenShift inhibit or alter the functionality of manual deployments. Users
are responsible for understanding and creating links to manual deployments when creating
Gateways.

The choice between these two features depends on the user's desired sharding scheme. Manual
The choice between automated and manual deployments depends on whether a user prefers control
over creating their own ingress gateway deployments and services, and whether they want
multiple Gateway objects to share a single ingress gateway deployment and service. Manual
linking, being more expressive, can establish a many-to-one Gateway-to-Gateway-Deployment
relationship, while automated deployments strictly establish a one-to-one
Gateway-to-Gateway-Deployment relationship. Arguably, automated deployments are more portable
among Gateway API implementations due to the fact manually deployments require linking an
Istio-specific service address.
Copy link
Member

Choose a reason for hiding this comment

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

Because manual deployments mode is a holdover from a much earlier time in Istio, and since we will not be supporting it (again in favor of listenersets), we should remove this section and document that we will not be supporting gateway merging at this time (because upstream doesn't support it, but we're working on that in https://gateway-api.sigs.k8s.io/geps/gep-1713/).

Copy link
Contributor

Choose a reason for hiding this comment

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

How can we prevent using the solution Istio/OSSM provides for gateway merging? It's outside our purview.

Copy link
Member

Choose a reason for hiding this comment

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

It was done in a combination of upstream Istio and OSSM, and is already released in OSSM 3.0.0:

This ended up being mutual for both Gateway API and OSSM, because the OSSM team also did not want to have to support the current "manual deployments" mode which also technically enables Gateway merging.

Comment on lines +715 to +722
##### Allowing All Namespaces for Gateways

Unlike OpenShift ingress, neither Gateway API nor Istio restrict Gateway objects to specific namespaces. This design
allows for different operational groups to create and manage their own [dedicated Gateway](#dedicated-gateway-topology)
in an application namespace rather than relying on a [shared Gateway](#shared-gateway-topology) residing in another
namespace. This departs from the current OpenShift ingress approach of all router pods being confined to the
`openshift-ingress` namespace. Our design will allow Gateways to be created in any namespace, provided the user has
sufficient [RBAC](#rbac) permissions.
Copy link
Member

Choose a reason for hiding this comment

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

Slightly worried this language might cause a bit of confusion with "allowing gateways across namespaces".

Suggested change
##### Allowing All Namespaces for Gateways
Unlike OpenShift ingress, neither Gateway API nor Istio restrict Gateway objects to specific namespaces. This design
allows for different operational groups to create and manage their own [dedicated Gateway](#dedicated-gateway-topology)
in an application namespace rather than relying on a [shared Gateway](#shared-gateway-topology) residing in another
namespace. This departs from the current OpenShift ingress approach of all router pods being confined to the
`openshift-ingress` namespace. Our design will allow Gateways to be created in any namespace, provided the user has
sufficient [RBAC](#rbac) permissions.
##### Gateways in Namespaces
Unlike OpenShift ingress, neither Gateway API nor Istio restrict Gateway objects to specific namespaces. This design
allows for different operational groups to create and manage their own [dedicated Gateway](#dedicated-gateway-topology)
in an application namespace rather than relying on a [shared Gateway](#shared-gateway-topology) residing in another
namespace. This departs from the current OpenShift ingress approach of all router pods being confined to the
`openshift-ingress` namespace. Our design will allow Gateways to be created in any namespace, provided the user has
sufficient [RBAC](#rbac) permissions.

Comment on lines +732 to +740
###### Gateway Merging Across Namespaces

Allowing Gateways in all namespaces can pose a potential security risk for Gateways that merge listeners
across namespaces, as one Gateway or listener could preempt another listener in a different namespace. However,
there currently isn't a way to merge Gateways across namespaces in Istio as the `spec.addresses`
field is [restricted](https://github.com/istio/istio/blob/915ac2bf05dbc7a08ae61a8bc39fcd6ea1f3d11a/pilot/pkg/config/kube/gateway/context.go#L78)
to Gateways in the same namespace. Work is underway to develop a mechanism for
[Gateway merging](https://docs.google.com/document/d/1qj7Xog2t2fWRuzOeTsWkabUaVeOF7_2t_7appe8EXwA/edit?usp=sharing),
and it is important to review the outcome for any potential security implications.
Copy link
Member

Choose a reason for hiding this comment

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

We wont be merging listeners with Istio's current mechanism, due to it being implementation-specific and a maintenance problem:

Suggested change
###### Gateway Merging Across Namespaces
Allowing Gateways in all namespaces can pose a potential security risk for Gateways that merge listeners
across namespaces, as one Gateway or listener could preempt another listener in a different namespace. However,
there currently isn't a way to merge Gateways across namespaces in Istio as the `spec.addresses`
field is [restricted](https://github.com/istio/istio/blob/915ac2bf05dbc7a08ae61a8bc39fcd6ea1f3d11a/pilot/pkg/config/kube/gateway/context.go#L78)
to Gateways in the same namespace. Work is underway to develop a mechanism for
[Gateway merging](https://docs.google.com/document/d/1qj7Xog2t2fWRuzOeTsWkabUaVeOF7_2t_7appe8EXwA/edit?usp=sharing),
and it is important to review the outcome for any potential security implications.

We're looking to https://gateway-api.sigs.k8s.io/geps/gep-1713/ as the Gateway API native approach to this in the future.

implement one of these security models. To support this, the Ingress Operator will add additional RBAC
permissions for the following default ClusterRoles:

| OpenShift ClusterRole | GatewayClass | Gateway | xRoute Types | ReferenceGrant |
Copy link
Member

Choose a reason for hiding this comment

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

If this becomes a sticking point we should consider pulling ReferenceGrant support out for GA so we can make an iteration specifically about it. We need to ensure that we don't allow cross namespace references by default as a consequence of such a thing, however.

Comment on lines +757 to +789
For this initial RBAC implementation, write access to Gateways (other than `cluster-admin`) is not included due
to their complexity and potential security risks. However, users can still create custom roles, such as a
`Gateway Operator` role, to enable a role with the ability to write Gateways without requiring super-user privileges.

The following diagram maps the personas in Gateway API's [Simple 3 Tier Model](https://gateway-api.sigs.k8s.io/concepts/security-model/#write-permissions-for-simple-3-tier-model) to potential OpenShift ClusterRoles:
```mermaid
flowchart LR
InfraOperator[Infrastructure Operator] --> ClusterAdmin(cluster-admin)
subgraph ClusterRole
ClusterAdmin
Admin
Edit
end
subgraph Gateway API Persona
InfraOperator
ClusterOperator
AppDev
end
ClusterOperator[Cluster Operator] --> ClusterAdmin(cluster-admin)
AppDev[Application Developer] --> Admin(admin)
AppDev[Application Developer] --> Edit(edit)
```

The Infrastructure Operator is generally responsible for installing and configuring the Gateway API provider
(e.g., Istio), installing the Gateway API CRDs, and creating the GatewayClass. However, since the Ingress Operator
handles the installation of OSSM and the CRDs, the Infrastructure Operator is only responsible for creating
and managing the GatewayClass. Cluster Operators create and manage the Gateways, while Application Developers create
and manage the routes.

The [Advanced 4 Tier Model](https://gateway-api.sigs.k8s.io/concepts/security-model/#write-permissions-for-advanced-4-tier-model)
is not implementable using the default ClusterRoles. However, as mentioned above, users can create a custom
`Gateway Operator` role and bind it to a specific namespace to implement the Application Admin persona.

Copy link
Member

@shaneutt shaneutt Mar 21, 2025

Choose a reason for hiding this comment

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

We may want to simplify all this language down to "you must be a cluster admin for anything except *Routes" (edit: and ReferenceGrant) for GA.

Copy link
Contributor

Choose a reason for hiding this comment

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

And referenceGrants.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, unless we have reason to do something like this, the also ReferenceGrant for sure.

@candita
Copy link
Contributor

candita commented Mar 24, 2025

This is being approved as-is with the intention of following up in a separate PR.
/lgtm
/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 24, 2025
Copy link
Contributor

openshift-ci bot commented Mar 24, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: candita

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 24, 2025
Copy link
Contributor

openshift-ci bot commented Mar 24, 2025

@gcs278: 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 4122b6b into openshift:master Mar 24, 2025
2 checks passed
@Miciah
Copy link
Contributor

Miciah commented Mar 26, 2025

The follow-up PR has just been posted: #1771.

# for free to join this conversation on GitHub. Already have an account? # 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants