pulumi-kubernetes icon indicating copy to clipboard operation
pulumi-kubernetes copied to clipboard

Add support for GA/1.0.0 release of the Kubernetes Gateway API - gateway.networking.k8s.io/v1

Open tedvanderveen opened this issue 1 year ago • 5 comments

Hello!

  • Vote on this issue by adding a 👍 reaction
  • If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details

The first GA version of the k8s Gateway API was released 4 months ago: https://github.com/kubernetes-sigs/gateway-api/releases/tag/v1.0.0. Sounds like the right time to add support for this API.

At the moment, when using the k8s @pulumi/kubernetes/apiextensions/customResource class, there is no means of accessing for example the status field of the Gateway, or the FQDN assigned by the implementation (available via .status.addresses[0].value).

Affected area/feature

tedvanderveen avatar Feb 29 '24 07:02 tedvanderveen

Thanks for pointing this out @tedvanderveen; we'll try to get this on the roadmap.

mjeffryes avatar Mar 01 '24 00:03 mjeffryes

Thanks for putting it on the roadmap @mjeffryes. Please be aware that this missing k8s API support is currently blocking effective usage of quite a few implementation already using it: see https://gateway-api.sigs.k8s.io/implementations ATM my customer is using the new Azure Application Gateway for Containers in a PoC, it's on the list of implementations I mentioned above, that depend on the k8s Gateway API. AWS has similar implementation that also depends on k8s Gateway API: https://github.com/aws/aws-application-networking-k8s?tab=readme-ov-file#aws-gateway-api-controller-for-vpc-lattice

tedvanderveen avatar Mar 01 '24 06:03 tedvanderveen

@tedvanderveen As we consider incorporating these add-on resources into the Pulumi Kubernetes provider, you have the option to utilize crd2pulumi for generating typed resources corresponding to the desired Gateway API CRDs. This approach would enable you to access the status subresources of the Gateway API CRs as a workaround.

rquitales avatar Mar 06 '24 23:03 rquitales

Thanks for the hint, @rquitales . Unfortunately, when I run the command crd2pulumi -n gateway-api-crd-v1.yaml I get

panic: fatal: error An assertion has failed: could not parse Pulumi package. source error: could not import spec: <nil>: #/types/kubernetes:gateway.networking.k8s.io%2Fv1:GatewaySpecListenersAllowedRoutes/properties/namespaces/default: type kubernetes:gateway.networking.k8s.io/v1:GatewaySpecListenersAllowedRoutesNamespaces cannot have a constant value; only booleans, integers, numbers and strings may have constant values; , and 43 other diagnostic(s)

Am I using the tool wrong? The YAML file is the one from https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml.

bjornbugge avatar May 08 '24 06:05 bjornbugge

OK, I see there's an issue for it https://github.com/pulumi/crd2pulumi/issues/61

bjornbugge avatar May 08 '24 06:05 bjornbugge