Hello Pulumi team - we are faced with some “older”...
# general
f
Hello Pulumi team - we are faced with some “older” or “non-standard” (compared with vanilla) Kubernetes installations, i.e. with Kubernetes v1.11 provided by OpenShift 3.11. Are any possibilities in Pulumi to 1. support this versions (in terms of k8s resource versions) and 2. support specific extensions (CRD)?
w
On 1 - that’s a good question for @gorgeous-egg-16927. On 2 - you should be able to work with any CRD - though by default these will be loosely typed. https://github.com/pulumi/pulumi-kubernetes/issues/219 is tracking one approach that we could take to provide strongly typed wrappers over arbitrary CRDs.
g
For 1 — we don’t have first-class support for any OpenShift-specific stuff. As Luke mentioned, CRDs are fully supported, but loosely typed. As for apiVersion support, we currently support the full API surface, including deprecated resources such as
apps/v1beta1:Deployment
, but can’t guarantee that will be true in the future. We follow the upstream model with first-class support for N-2 versions, which currently means 1.14-1.16. Short answer: standard k8s 1.11 stuff will most likely work as expected
f
Thanks @white-balloon-205 and @gorgeous-egg-16927 for explanation. For point 2 I’ll have a deeper look into this direction. For point 1 - this question was “driven” by more and more warnings like:
Copy code
warning: extensions/v1beta1/Ingress is not supported by Kubernetes 1.16+ clusters. Use networking/v1beta1/Ingress instead.
But I can’t follow the advice because the k8s cluster behind is on v1.13 which doesn’t know anything about `networking/v1beta1/Ingress`… One workaround we have in mind is going back to older versions of k8s plugin. But we are not sure whether that’s a good idea - or not 😉
g
You can suppress those warnings with a flag on a resource provider:
Copy code
const k8sProvider = new k8s.Provider("k8s-provider", {
  suppressDeprecationWarnings: true,
});
f
That would be helpful -> I’ll try it, Thnx @gorgeous-egg-16927