Replies: 3 comments
-
Beta Was this translation helpful? Give feedback.
0 replies
-
|
@NomadXD we will rename it to |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
+1 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
When using both the Kubernetes Gateway API and the WSO2 API Platform Gateway Operator in the same cluster, there is a CRD naming conflict that creates a confusing user experience. Both Kubernetes Gateway API and WSO2 API Platform Gateway Operator define a resource named Gateway.
gateways.gateway.networking.k8s.iogateways.gateway.api-platform.wso2.comWhen users run
kubectl get gateways, they only see one of these resources. Due to alphabetical ordering of API groups,gateway.api-platform.wso2.comis typically resolved beforegateway.networking.k8s.io, meaning users see the API Platform gateways instead of the standard Kubernetes Gateway API resources. This forces users to use fully qualified names:# Users must specify the full API group to disambiguate kubectl get gateways.gateway.networking.k8s.io -A kubectl get gateways.gateway.api-platform.wso2.com -AThe Kubernetes API Conventions emphasize choosing resource names carefully. While different API groups can technically have the same resource name (due to the full
<resource>.<group>namespacing), this creates bad user experience.A key best practice for Custom Resource Definitions is to avoid naming conflicts with standard Kubernetes APIs. The Kubernetes Gateway API (
gateway.networking.k8s.io) is a standard API maintained by the Kubernetes SIG-Network and has reached GA status.Impact of This Naming Conflict
This naming conflict creates several significant issues:
1. Forced Use of Fully Qualified Names
Users and tools must always use fully qualified resource names to avoid ambiguity, which increases complexity and cognitive load:
2. Broken Ecosystem Tools (Scripts and Automation)
The Kubernetes Gateway API is a standard with widespread adoption. Many shell scripts, CI/CD pipelines, and automation tools use shorthand kubectl commands that expect
gatewaysto refer to the standard Gateway API. Examples include:kubectl get gateways,kubectl describe gateway <name>,kubectl delete gateway <name>kubectl get gatewayskubectl get gatewaysThese scripts and automation will either:
gateways.gateway.networking.k8s.io)Note: Kubernetes operators and controllers are not affected since they specify the full Group/Version/Kind in their resource watches.
Proposed Solution: Rename WSO2 API Platform Gateway CRD
We propose renaming the WSO2 API Platform Gateway CRD to avoid conflict with the standard Kubernetes Gateway API. Here are suggested alternative names:
Option 1: APIGateway (Recommended)
apigateways.api-platform.wso2.comAPIGatewayPros:
Cons:
Example usage:
Option 2: GatewayRuntime
gatewayruntimes.api-platform.wso2.comGatewayRuntimePros:
Cons:
Example usage:
Option 3: GatewayProxy
gatewayproxies.api-platform.wso2.comGatewayProxyPros:
Cons:
Example usage:
Beta Was this translation helpful? Give feedback.
All reactions