kubernetes-retired / external-storage

[EOL] External storage plugins, provisioners, and helper libraries
Apache License 2.0
2.69k stars 1.6k forks source link

cephfs-provisioner can't build own image #1329

Closed kuhar2007 closed 4 years ago

kuhar2007 commented 4 years ago

Hello,

I have some troubles with generate own image cephfs-provisioner. I cloned repo and run: $ make ceph/cephfs cd ceph/cephfs; \ make container CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cephfs-provisioner cephfs-provisioner.go cephfs-provisioner.go:30:2: cannot find package "github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/controller" in any of: /usr/local/Cellar/go/1.13.5/libexec/src/github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/controller (from $GOROOT) /Users/kuhar/go/src/github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/controller (from $GOPATH) cephfs-provisioner.go:31:2: cannot find package "github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/util" in any of: /usr/local/Cellar/go/1.13.5/libexec/src/github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/util (from $GOROOT) /Users/kuhar/go/src/github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/util (from $GOPATH) make[1]: *** [build] Error 1 make: *** [ceph/cephfs] Error 2

I saw that path was changed to that repos, so I changed at file cephfs-provisioner.go from:

"github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/controller" "github.com/kubernetes-sigs/sig-storage-lib-external-provisioner/util"

to

"sigs.k8s.io/sig-storage-lib-external-provisioner/v5/controller" "sigs.k8s.io/sig-storage-lib-external-provisioner/v5/util"

And now have a new error:

`make ceph/cephfs cd ceph/cephfs; \ make container CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cephfs-provisioner cephfs-provisioner.go

command-line-arguments

./cephfs-provisioner.go:119:47: undefined: controller.VolumeOptions ./cephfs-provisioner.go:188:54: not enough arguments in call to p.client.CoreV1().Secrets(nameSpace).Create have ("k8s.io/api/core/v1".Secret) want (context.Context, "k8s.io/api/core/v1".Secret, "k8s.io/apimachinery/pkg/apis/meta/v1".CreateOptions) ./cephfs-provisioner.go:248:62: not enough arguments in call to p.client.StorageV1beta1().StorageClasses().Get have (string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions) want (context.Context, string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions) ./cephfs-provisioner.go:282:61: not enough arguments in call to p.client.CoreV1().Secrets(secretRef.Namespace).Delete have (string, *"k8s.io/apimachinery/pkg/apis/meta/v1".DeleteOptions) want (context.Context, string, "k8s.io/apimachinery/pkg/apis/meta/v1".DeleteOptions) ./cephfs-provisioner.go:366:58: not enough arguments in call to p.client.CoreV1().Secrets(namespace).Get have (string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions) want (context.Context, string, "k8s.io/apimachinery/pkg/apis/meta/v1".GetOptions) make[1]: [build] Error 2 make: [ceph/cephfs] Error 2`

How can I fix it and build own image?

kuhar2007 commented 4 years ago

I find solution, just create symlinks from directory "vendors" to "go/src"