Closed adietish closed 3 years ago
turns out that quite some apis were deprecated:
❯ kubectl api-versions
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
caching.internal.knative.dev/v1alpha1
certificates.k8s.io/v1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
discovery.k8s.io/v1
discovery.k8s.io/v1beta1
events.k8s.io/v1
events.k8s.io/v1beta1
extensions/v1beta1
flowcontrol.apiserver.k8s.io/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1
node.k8s.io/v1beta1
openshift.pub/v1alpha1
openshift.pub/v1beta1
policy/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
tekton.dev/v1alpha1
tekton.dev/v1beta1
triggers.tekton.dev/v1alpha1
v1
❯ kubectl api-versions
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
caching.internal.knative.dev/v1alpha1
certificates.k8s.io/v1
coordination.k8s.io/v1
discovery.k8s.io/v1
discovery.k8s.io/v1beta1
events.k8s.io/v1
events.k8s.io/v1beta1
flowcontrol.apiserver.k8s.io/v1beta1
networking.k8s.io/v1
node.k8s.io/v1
node.k8s.io/v1beta1
openshift.pub/v1alpha1
openshift.pub/v1beta1
policy/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
scheduling.k8s.io/v1
storage.k8s.io/v1
storage.k8s.io/v1beta1
tekton.dev/v1alpha1
tekton.dev/v1beta1
triggers.tekton.dev/v1alpha1
v1
Plugin is loading CustomResourceDefinitions
in version apiextensions/v1beta1
which was removed in kubernetes 1.22.1. Only apiextensions/v1
is now available.
package com.redhat.devtools.intellij.kubernetes.model.resource.kubernetes.custom
...
import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinition
...
object CustomResourceOperatorFactory {
the following apis were removed:
CustomResourceDefinition
see https://kubernetes.io/docs/reference/using-api/deprecation-guide/#customresourcedefinition-v122@jeffmaury, @lstocchi: v1 for CustomResourceDefinition
was introduced ~2y ago. I'd opt for supporting in v1 only, dropping v1beta1. Thoughts?
@jeffmaury, @lstocchi: v1 for Ingress
was introduced ~1.2y ago. I'd still opt for offering v1 only, dropping v1beta1. Arguable though.
the next release with removal of deprecated APIs is 1.25. For us it'll affect Endpoint
, CronJob
which were introduced in v1 per 1.21.
apiextensions.k8s.io/v1 was introduced in 1.16 (see https://kubernetes.io/docs/reference/using-api/deprecation-guide/#customresourcedefinition-v122) which was released on 2019/09/18 The release notes suggest migration explicitly:
CustomResourceDefinition
see https://kubernetes.io/docs/reference/using-api/deprecation-guide/#customresourcedefinition-v122@jeffmaury, @lstocchi: I'd opt for supporting
CustomResourceDefinition
in v1 only, dropping v1beta1. Thoughts?
extensions/v1 and networking.k8s.io/v1 were introduced in 1.19 (see https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122) which was released on 2020/08/26:
@jeffmaury, @lstocchi: v1 for
Ingress
was introduced ~1.2y ago. I'd still opt for offering v1 only, dropping v1beta1. Arguable though.
I agree with you in both cases. Supporting v1 is enough imo, if k8s deprecates them there is no reason for the plugin to support them. Then you can still access all existing old resources with v1.
I agree with you in both cases. Supporting v1 is enough imo, if k8s deprecates them there is no reason for the plugin to support them. Then you can still access all existing old resources with v1.
+1 but then we'd drop out support for older kube cluster which would not support v1. With 1.2y for Ingress and 2y for crds I'd think that this is good enough. The alternative would be to impl a discovery where we'd have to see what versions are available and pick the latest one that's supported for the given cluster. Imho not worth the effort.
+1 but then we'd drop out support for older kube cluster which would not support v1. With 1.2y for Ingress and 2y for crds I'd think that this is good enough. The alternative would be to impl a discovery where we'd have to see what versions are available and pick the latest one that's supported for the given cluster. Imho not worth the effort.
Do you know which k8s versions are customers using though telemetry? That would help i guess
+1 but then we'd drop out support for older kube cluster which would not support v1. With 1.2y for Ingress and 2y for crds I'd think that this is good enough. The alternative would be to impl a discovery where we'd have to see what versions are available and pick the latest one that's supported for the given cluster. Imho not worth the effort.
Do you know which k8s versions are customers using though telemetry? That would help i guess
Good point. I looked into current telemetry data (only openshift and tekton so far) which shows a limited sample with the majority of users having no kubernetes version. Among the ones with a version the majority is >= 1.19. I doubt this data has any real life significance, it is far too little. A similar picture can be observed with vscode tekton users.
@jeffmaury Here are the kubernetes versions that the openshift versions ship:
According to this: https://access.redhat.com/support/policy/updates/openshift you can start from 4.6
@jeffmaury matches my understanding, 4.6 going EOL with the upcoming release of 4.9. 4.6 is kubernetes 1.19 which is the minimum version I support with my PRs. Makes me think that we're good to go.
Steps:
--kubernetes-version=v1.22.1
Result: "Custom Resources" has no children In the log you'll find the following: