kubernetes-sigs / metrics-server

Scalable and efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/
Apache License 2.0
5.77k stars 1.86k forks source link

building v0.3.6 is failing #442

Closed raju-addala9 closed 4 years ago

raju-addala9 commented 4 years ago

Need to build v0.3.6 locally. I downloaded version and when I run make it is failing,

make which: no golangci-lint in (/home/opc/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/opc/.local/bin:/home/opc/bin) go run vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go --logtostderr -i k8s.io/metrics/pkg/apis/metrics/v1beta1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/version -p github.com/kubernetes-incubator/metrics-server/pkg/generated/openapi/ -O zz_generated.openapi -h /home/opc/go_images/metrics-server/tmp/metrics-server/hack/boilerplate.go.txt -r /dev/null vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go:30:2: cannot find package "github.com/spf13/pflag" in any of: /usr/lib/golang/src/github.com/spf13/pflag (from $GOROOT) /home/opc/go/src/github.com/spf13/pflag (from $GOPATH) vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go:32:2: cannot find package "k8s.io/klog" in any of: /usr/lib/golang/src/k8s.io/klog (from $GOROOT) /home/opc/go/src/k8s.io/klog (from $GOPATH) vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go:27:2: cannot find package "k8s.io/kube-openapi/cmd/openapi-gen/args" in any of: /usr/lib/golang/src/k8s.io/kube-openapi/cmd/openapi-gen/args (from $GOROOT) /home/opc/go/src/k8s.io/kube-openapi/cmd/openapi-gen/args (from $GOPATH) vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go:28:2: cannot find package "k8s.io/kube-openapi/pkg/generators" in any of: /usr/lib/golang/src/k8s.io/kube-openapi/pkg/generators (from $GOROOT) /home/opc/go/src/k8s.io/kube-openapi/pkg/generators (from $GOPATH) make: *** [pkg/generated/openapi/zz_generated.openapi.go] Error 1

/triage support

serathius commented 4 years ago

What golang version are you using? Versions < 1.11 will not work. I would recommend using 1.13 as this is used in CI.

raju-addala9 commented 4 years ago

I am using go version go1.13.7 linux/amd64

raju-addala9 commented 4 years ago

This is what I have to do make this work:

export GOPATH=$(pwd)/go export PATH=$PATH:$GOPATH/bin mkdir -p ${GOPATH}/src/github.com cd go/src/github.com/ git clone https://github.com/kubernetes-sigs/metrics-server.git

cd metrics-server/ git checkout v0.3.6 rm -fr kubernetes-incubator/metrics-server/ mv metrics-server/ kubernetes-incubator/

cd kubernetes-incubator/metrics-server/

make

serathius commented 4 years ago

Sorry that tagging commit with broken local build. Local build is more used for development then as externally supported way of building metrics server.

Before trying to fix release, I would like to better understand why you want to use it.

raju-addala9 commented 4 years ago

Thank you for the response. Within our org, we have to build binary from source and then use built binary. We only have approval for v0.3.6 and hence have dependency on v0.3.6

serathius commented 4 years ago

Ok, managed to build version v0.3.6

$ cd /tmp
$ export GOPATH=$(pwd)/go
$ export PATH=$PATH:$GOPATH/bin
$ mkdir -p ${GOPATH}/src/github.com/kubernetes-incubator
$ cd go/src/github.com/kubernetes-incubator/
$ git clone https://github.com/kubernetes-sigs/metrics-server.git
Cloning into 'metrics-server'...
remote: Enumerating objects: 80, done.
remote: Counting objects: 100% (80/80), done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 11605 (delta 30), reused 31 (delta 6), pack-reused 11525
Receiving objects: 100% (11605/11605), 12.30 MiB | 1001.00 KiB/s, done.
Resolving deltas: 100% (6036/6036), done.
$ cd metrics-server/
$ git checkout v0.3.6
Note: checking out 'v0.3.6'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at d1f4f6f bump metrics-server version to v0.3.6
$ make
go run vendor/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go --logtostderr -i k8s.io/metrics/pkg/apis/metrics/v1beta1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/version -p github.com/kubernetes-incubator/metrics-server/pkg/generated/openapi/ -O zz_generated.openapi -h /tmp/go/src/github.com/kubernetes-incubator/metrics-server/hack/boilerplate.go.txt -r /dev/null
GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-w -X github.com/kubernetes-incubator/metrics-server/pkg/version.gitVersion=v0.3.6-dirty -X github.com/kubernetes-incubator/metrics-server/pkg/version.gitCommit=d1f4f6fc09cd3134e8ea5ba4e0bd2db4e8002ed8 -X github.com/kubernetes-incubator/metrics-server/pkg/version.gitTreeState=dirty -X github.com/kubernetes-incubator/metrics-server/pkg/version.buildDate=2020-02-22T17:05:03Z" -o _output/amd64/metrics-server github.com/kubernetes-incubator/metrics-server/cmd/metrics-server
$ go version
go version go1.13.8 linux/amd64
serathius commented 4 years ago

Verified that binary correctly builds.