Add scs-0219-v2: recommends Gateway API, dropping any mention of Ingress#1195
Add scs-0219-v2: recommends Gateway API, dropping any mention of Ingress#1195mbuechse wants to merge 1 commit into
Conversation
… Ingress. This is copied from https://github.com/lucasrattz/standards/blob/a9715ea0e07c07cede513fb0420676ca8c2986c6/Standards/scs-0219-v1-kaas-networking.md Thanks @lucasrattz! Signed-off-by: Matthias Büchse <matthias.buechse@alasca.cloud>
|
@jklare I'm pretty sure now that this is not quite correct. We do not indeed drop any mention of Ingress as there is a whole section on Ingress. Now I'm confused. Can you spell out the intention of the SIG Std/Cert discussion on May 7? |
| ## Design Considerations | ||
|
|
||
| The Kubernetes API can be extended arbitrarily. | ||
| Many CNI plugins will define custom resources to enable functionality that is not covered in the official [API specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/). |
There was a problem hiding this comment.
| Many CNI plugins will define custom resources to enable functionality that is not covered in the official [API specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/). | |
| Many CNI plugins will define custom resources to enable functionality that is not covered in the official [API specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/). |
There was a problem hiding this comment.
In case there is no specific reason to put 1.31 here, we could as well use 1.36
| Basic network policies are namespaced resources, and can only filter traffic to and from pods in their own namespace. | ||
| In a newly created namespace without policies the default behavior will apply, which is to not restrict traffic at all. | ||
|
|
||
| It can be desirable to automatically create default network policies in new namespaces, using a policy operator such as Kyverno. |
There was a problem hiding this comment.
| It can be desirable to automatically create default network policies in new namespaces, using a policy operator such as Kyverno. | |
| It can be desirable to automatically create default network policies in new namespaces, using a policy operator such as [Kyverno](https://kyverno.io/) or [Open Policy Agent](https://www.openpolicyagent.org/). |
| An alternative to automatically created default network policies are API extensions that allow cluster-wide networking rules. | ||
| Some CNI plugins have implemented such extensions, e.g. Calico's `GlobalNetworkPolicy` and Cilium's `CiliumClusterwideNetworkPolicy`. | ||
|
|
||
| The Kubernetes Network Special Interest Group is currently working on an [official API extension](https://network-policy-api.sigs.k8s.io/api-overview/) to cover this functionality. |
There was a problem hiding this comment.
| The Kubernetes Network Special Interest Group is currently working on an [official API extension](https://network-policy-api.sigs.k8s.io/api-overview/) to cover this functionality. | |
| The Kubernetes Network Special Interest Group is currently (as of June 2026) working on an [official API extension](https://network-policy-api.sigs.k8s.io/api-overview/) to cover this functionality. |
| This API extension introduces the new `AdminNetworkPolicy` and `BaselineAdminNetworkPolicy` resources, which represent cluster-wide network policies with respectively higher or lower precedence than namespaced network policies. | ||
|
|
||
| This API is also a good candidate for standardization because it consolidates a number of vendor-specific workarounds to limitations of the NetworkPolicy API. | ||
| It has not been stabilized yet, so currently we can at most recommend CNI plugins where there is ongoing work to support these features. |
There was a problem hiding this comment.
| It has not been stabilized yet, so currently we can at most recommend CNI plugins where there is ongoing work to support these features. | |
| It has not been stabilized yet (v1alpha2 status as of June 2026), so currently we can at most recommend CNI plugins where there is ongoing work to support these features. |
| This separation allows for safer multi-tenancy and clearer ownership boundaries, which are particularly relevant in managed Kubernetes environments. | ||
|
|
||
| The Gateway API is designed to be implementation-agnostic but requires a controller to reconcile its resources, similar to Ingress. | ||
| Support for the Gateway API is growing across multiple projects, including implementations based on Envoy, HAProxy, and CNI-integrated solutions such as Cilium. |
There was a problem hiding this comment.
| Support for the Gateway API is growing across multiple projects, including implementations based on Envoy, HAProxy, and CNI-integrated solutions such as Cilium. | |
| Support for the Gateway API is growing across multiple projects, including implementations based on Envoy, HAProxy, and CNI-integrated solutions such as Cilium. Some Ingress providers like Taefik have also implemented the needed interfaces to fully support Gateway API to enable users to migrate from one to the other. |
| CSPs SHOULD offer the option for a managed, `networking.k8s.io/v1`-compliant Ingress controller and a default `IngressClass` resource for this controller. | ||
|
|
||
| CSPs SHOULD offer support for the Gateway API (`gateway.networking.k8s.io`), including at least the `GatewayClass`, `Gateway`, and `HTTPRoute` resources, either as a managed offering or as an installable option. |
There was a problem hiding this comment.
| CSPs SHOULD offer the option for a managed, `networking.k8s.io/v1`-compliant Ingress controller and a default `IngressClass` resource for this controller. | |
| CSPs SHOULD offer support for the Gateway API (`gateway.networking.k8s.io`), including at least the `GatewayClass`, `Gateway`, and `HTTPRoute` resources, either as a managed offering or as an installable option. | |
| CSPs MUST either offer the option for a managed, `networking.k8s.io/v1`-compliant Ingress controller and a default `IngressClass` resource for this controller, or support for the Gateway API (`gateway.networking.k8s.io`), including at least the `GatewayClass`, `Gateway`, and `HTTPRoute` resources, either as a managed offering or as an installable option. They MAY also offer both of them. |
|
|
||
| ### Version history | ||
|
|
||
| This is version 2.0. It adds the recommendation of the Gateway API and drops any mention of Ingress API. |
There was a problem hiding this comment.
| This is version 2.0. It adds the recommendation of the Gateway API and drops any mention of Ingress API. | |
| This is version 2.0. It adds the recommendation of the Gateway API in addition to the Ingress API. |
| ### Version history | ||
|
|
||
| This is version 2.0. It adds the recommendation of the Gateway API and drops any mention of Ingress API. | ||
| These APIs address overlapping use cases, they will continue to coexist, and we opted to recommend Gateway only. |
There was a problem hiding this comment.
| These APIs address overlapping use cases, they will continue to coexist, and we opted to recommend Gateway only. | |
| These APIs address overlapping use cases. Although they will continue to coexist, we recommend the usage of Gateway API. |
|
@mbuechse to move this forward, I added a couple of suggestions to align with what I recall from our previous discussions. |
This is copied from https://github.com/lucasrattz/standards/blob/a9715ea0e07c07cede513fb0420676ca8c2986c6/Standards/scs-0219-v1-kaas-networking.md
Thanks @lucasrattz!
Supersedes #1166
Resolves #1097