You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are many kinds of resources not covered beyond the StatefulSet and Deployment currently canonicalized. Because of this, changing the API versions of other kinds of resources fails, e.g.: ingresses, statefulsets, networkpolicies, etc.
Errors & Logs
Pulumi both warns that old versions of resources are out of date:
203 ~ kubernetes:extensions:Ingress stack-foo/some-resource refresh warning: extensions/v1beta1/Ingress is not supported by Kubernetes 1.16+ clusters. Use networking/v1beta1/Ingress instead.
...
230 Diagnostics:
...
237 kubernetes:extensions:Ingress (stack-foo/some-resource):
238 warning: extensions/v1beta1/Ingress is not supported by Kubernetes 1.16+ clusters. Use networking/v1beta1/Ingress instead.
And then fails when said resource is changed:
336 + kubernetes:networking.k8s.io:Ingress stack-foo/some-resource creating
338 + kubernetes:networking.k8s.io:Ingress stack-foo/some-resource creating Retry #0; creation failed: ingresses.networking.k8s.io "chronicler" already exists
339 + kubernetes:networking.k8s.io:Ingress stack-foo/some-resource creating error: resource stack-foo/some-resource was not successfully created by the Kubernetes API server : ingresses.networking.k8s.io "chronicler" already exists
340 + kubernetes:networking.k8s.io:Ingress stack-foo/some-resource **creating failed** error: resource stack-foo/some-resource was not successfully created by the Kubernetes API server : ingresses.networking.k8s.io "chronicler" already exists
Affected product version(s)
All versions
Reproducing the issue
Deploy a extensions/v1beta1 Ingress then upgrade it to a networking/v1beta1 Ingress.
Suggestions for a fix
I went through and labeled all of the deprecations and removals I could. Here's how to read the table:
Implemented: the minimum version of k8s required to perform this canonicalization
Deprecated: the release that marked the API as deprecated, but the API is reachable
Removed: the release that removed access to the API by default
The table below might be useful for passing an optional argument to the canonicalizer with the current k8s API version, one could imagine if (version >= deprecated) { return newApi } else { return oldApi }
I think the implemented version is not terribly necessary, and since those versions are quite old and only early adopters switched API versions right away, it's probably best to compare the current k8s cluster version to the version an API was deprecated in, in which the official release notes suggest moving to a new API. This list may not be complete.
The issue description isn't quite right, but I fixed the underlying problems in #921 and #918
The provider should now properly warn for all deprecated APIs, and provide an error if the API has been removed in the targeted cluster version.
lblackstone
changed the title
API Version canonicalization is not complete and not versioned
Missing aliases and deprecation warnings for some API resources
Dec 17, 2019
Problem description
There are many kinds of resources not covered beyond the StatefulSet and Deployment currently canonicalized. Because of this, changing the API versions of other kinds of resources fails, e.g.: ingresses, statefulsets, networkpolicies, etc.
Errors & Logs
Pulumi both warns that old versions of resources are out of date:
And then fails when said resource is changed:
Affected product version(s)
All versions
Reproducing the issue
Deploy a
extensions/v1beta1
Ingress then upgrade it to anetworking/v1beta1
Ingress.Suggestions for a fix
I went through and labeled all of the deprecations and removals I could. Here's how to read the table:
The table below might be useful for passing an optional argument to the canonicalizer with the current k8s API version, one could imagine
if (version >= deprecated) { return newApi } else { return oldApi }
I think the implemented version is not terribly necessary, and since those versions are quite old and only early adopters switched API versions right away, it's probably best to compare the current k8s cluster version to the version an API was deprecated in, in which the official release notes suggest moving to a new API. This list may not be complete.
1.9 Deprecations
1.10 Deprecations
1.11 Deprecations
1.12 Deprecations
1.13 Deprecations
1.14 Deprecations
1.15 Deprecations
1.16 Deprecations
1.17 Deprecations
This table would also be helpful if Pulumi maintained it because combing over Kubernetes release notes is a pain!
The text was updated successfully, but these errors were encountered: