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.23k stars 1.74k forks source link

unable to use sigs.k8s.io/cluster-api in Operator-sdk v0.19.4 #4422

Closed debankur1 closed 3 years ago

debankur1 commented 3 years ago

v0.3.9

sigs.k8s.io/cluster-api/util ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.9/util/util.go:429:48: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.9/util/util.go:440:46: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.9/util/util.go:464:47: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.9/util/util.go:667:8: i.IsZero undefined (type reconcile.Result has no field or method IsZero) ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.9/util/util.go:669:8: j.IsZero undefined (type reconcile.Result has no field or method IsZero)

v0.3.12

sigs.k8s.io/cluster-api/util ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:441:48: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:452:46: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:476:47: undefined: controllerutil.Object ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:585:114: not enough arguments in call to metadataClient.Resource("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1".SchemeGroupVersion.WithResource("customresourcedefinitions")).Get have (string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions) want (context.Context, string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions, ...string) ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:795:8: i.IsZero undefined (type reconcile.Result has no field or method IsZero) ../../../../../pkg/mod/sigs.k8s.io/cluster-api@v0.3.12/util/util.go:797:8: j.IsZero undefined (type reconcile.Result has no field or method IsZero)

Here is the go module:

go 1.15

require ( github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 github.com/go-logr/logr v0.1.0 github.com/go-ole/go-ole v1.2.4 // indirect github.com/operator-framework/operator-sdk v0.19.4 github.com/shirou/gopsutil v2.20.3+incompatible github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.5.1 k8s.io/api v0.18.2 k8s.io/apimachinery v0.18.2 k8s.io/client-go v12.0.0+incompatible sigs.k8s.io/cluster-api v0.3.9 //sigs.k8s.io/cluster-api v0.3.12 sigs.k8s.io/controller-runtime v0.6.0

)

replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v13.3.2+incompatible // Required by OLM k8s.io/client-go => k8s.io/client-go v0.18.2 // Required by prometheus-operator )

same is working fine with operator-sdk v0.17.2

estroz commented 3 years ago

operator-sdk v0.19.4 used k8s v1.18. cluster-api uses v1.17 for both versions you are trying to use. That's why you're seeing dependency issues. There doesn't seem to be a version cut containing k8s v1.18 unfortunately (master was bumped to v1.19) so you'd have to either upgrade to operator-sdk v1.3 or file an issue in cluster-api.