operator-framework / operator-sdk

SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.
https://sdk.operatorframework.io
Apache License 2.0
7.1k stars 1.73k forks source link

Bundle generation issues warnings for APIs removed in k8s 1.25 but their v2 is still available #6702

Closed pmalek closed 2 months ago

pmalek commented 3 months ago

Bug Report

What did you do?

Set minKubeVersion: 1.25.0 and use

            - apiGroups:
                - autoscaling
              resources:
                - horizontalpodautoscalers
              verbs:
                - create
                - delete
                - get
                - list
                - patch
                - watch
            - apiGroups:
                - discovery.k8s.io
              resources:
                - endpointslices
              verbs:
                - get
                - list
                - watch

What did you expect to see?

No warnings

What did you see instead? Under which circumstances?

WARN[0000] Warning: Value kong-gateway-operator.v1.2.0-rc.1: this bundle is using APIs which were deprecated and removed in v1.25. More info: https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25. Migrate the API(s) for endpointslices: (["ClusterServiceVersion.Spec.InstallStrategy.StrategySpec.ClusterPermissions[0].Rules[40]"]),horizontalpodautoscalers: (["ClusterServiceVersion.Spec.InstallStrategy.StrategySpec.ClusterPermissions[0].Rules[6]"]),
INFO[0000] All validation tests have completed successfully

Environment

Operator type:

Kubernetes cluster type:

$ operator-sdk version

./bin/operator-sdk version
operator-sdk version: "v1.34.1", commit: "edaed1e5057db0349568e0b02df3743051b54e68", kubernetes version: "v1.28.0", go version: "go1.22.0", GOOS: "darwin", GOARCH: "arm64"

$ go version (if language is Go)

$ kubectl version

kubectl version
\WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.0", GitCommit:"b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d", GitTreeState:"clean", BuildDate:"2022-12-08T19:58:30Z", GoVersion:"go1.19.4", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"29", GitVersion:"v1.29.2", GitCommit:"4b8e819355d791d96b7e9d9efe4cbafae2311c88", GitTreeState:"clean", BuildDate:"2024-02-14T22:25:42Z", GoVersion:"go1.21.7", Compiler:"gc", Platform:"linux/arm64"}
WARNING: version difference between client (1.26) and server (1.29) exceeds the supported minor version skew of +/-1

Possible Solution

Additional context

Warnings in community operator pipeline: https://github.com/k8s-operatorhub/community-operators/pull/4015#issuecomment-1992638925

jberkhahn commented 2 months ago

Pretty sure this is expected behavior. We do this check based on permissions, we don't have the actual version # of the resource. So we're bubbling up this warning to let you know that it might not work. If you're confident you're using a non deprecated version of the resource, you can ignore this warning.