kpt-config-sync icon indicating copy to clipboard operation
kpt-config-sync copied to clipboard

make test-all-local fails getting credentials: exec: executable gke-gcloud-auth-plugin not found

Open mikebz opened this issue 3 years ago • 4 comments

Using make test-all-local

Error here:

/testing/nomos/e2e/setup.sh --preclean --setup --test --clean
Start setup.sh
e2e/setup.sh: executed with args --preclean --setup --test --clean
printing diagnostics
+ operator logs
Unable to connect to the server: getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
+ importer pod
Unable to connect to the server: getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
+ importer logs
Unable to connect to the server: getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
++++ Cleaning up environment
+++++ Uninstalling
++++ Waiting for environment cleanup to finish
Unable to connect to the server: getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
Unable to connect to the server: getting credentials: exec: executable gke-gcloud-auth-plugin not found

It looks like you are trying to use a client-go credential plugin that is not installed.

To learn more about this feature, consult the documentation available at:
      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins

Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
### e2e tests failed. Temp dir (with test output logs etc) are available in /usr/local/google/home/mikebz/src/kpt-config-sync/.output/tmp
make[1]: *** [Makefile.e2e:50: __test-e2e-run] Error 1
make[1]: Leaving directory '/usr/local/google/home/mikebz/src/kpt-config-sync'
make: *** [Makefile.e2e:102: test-e2e] Error 2

I do have the gke-gclod-auth-plugin locally and followed the steps: https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke

mikebz avatar May 24 '22 18:05 mikebz

The issue is that the test, and kubectl commands, are run within a container. The gke-gcloud-auth-plugin needs to be installed within the container image that is running the e2e tests, whereas you have the auth plugin installed locally. The Dockerfiles will need to be updated to install the auth plugins.

The following file will need to be updated. https://github.com/GoogleContainerTools/kpt-config-sync/blob/7088f0d71f12f6ecf7f838d5671fef558d47e5ad/build/e2e-tests/Dockerfile#L71

We can use gcloud components install gke-gcloud-auth-plugin, but this requires also updating the gcloud version used in the test container since it's on v255, and a newer gcloud version is required to install this component. Alternatively, we can also use the Debian apt-get commands to install this instead.

rquitales avatar May 24 '22 19:05 rquitales

@sdowell @mikebz Is this fixed now with the recent merge of https://github.com/GoogleContainerTools/kpt-config-sync/pull/514 ?

karlkfi avatar Apr 06 '23 03:04 karlkfi

wanted to verify this, but it looks like there is another error. Just got latest and ran make clean and then make test-all-local

Output:

...
W0407 03:46:32.024213    1436 library.go:94] "github.com/klauspost/compress/zstd/internal/xxhash" contains non-Go code that can't be inspected for further dependencies:
/go/src/kpt.dev/configsync/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s
W0407 03:46:32.029607    1436 library.go:94] "github.com/klauspost/compress/zstd" contains non-Go code that can't be inspected for further dependencies:
/go/src/kpt.dev/configsync/vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.s
/go/src/kpt.dev/configsync/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s
go install github.com/google/[email protected]
GOBIN=/usr/local/google/home/mikebz/go/bin ./scripts/license-headers.sh lint
make: *** No rule to make target 'test-e2e', needed by 'test-all-local'.  Stop.

mikebz avatar Apr 07 '23 03:04 mikebz

Looks like a forgotten make target, I can make a PR to clean that up. Up to date instructions on how to run the e2e tests can be found here: https://github.com/GoogleContainerTools/kpt-config-sync/blob/main/docs/development.md

sdowell avatar Apr 07 '23 17:04 sdowell