Bug Report
What did you do?
Installed and ran my ansible operator as instructed in the Development Tips section of the ansible operator docs https://sdk.operatorframework.io/docs/building-operators/ansible/development-tips/#testing-an-ansible-operator-locally
What did you expect to see?
make run
/home/user/go/bin/ansible-operator
{"level":"info","ts":1595899073.9861593,"logger":"cmd","msg":"Version","Go Version":"go1.13.12","GOOS":"linux","GOARCH":"amd64","ansible-operator":"v0.19.0+git"}
{"level":"info","ts":1595899073.987384,"logger":"cmd","msg":"WATCH_NAMESPACE environment variable not set. Watching all namespaces.","Namespace":""}
{"level":"info","ts":1595899074.9504397,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":1595899074.9522583,"logger":"watches","msg":"Environment variable not set; using default value","envVar":"ANSIBLE_VERBOSITY_MEMCACHED_CACHE_EXAMPLE_COM","default":2}
{"level":"info","ts":1595899074.9524004,"logger":"cmd","msg":"Environment variable not set; using default value","Namespace":"","envVar":"ANSIBLE_DEBUG_LOGS","ANSIBLE_DEBUG_LOGS":false}
... operator specific output from here
What did you see instead? Under which circumstances?
make run
/usr/local/bin/ansible-operator run
{"level":"info","ts":1601905769.161031,"logger":"cmd","msg":"Version","Go Version":"go1.13.15","GOOS":"linux","GOARCH":"amd64","ansible-operator":"v1.0.1"}
{"level":"info","ts":1601905769.1623378,"logger":"cmd","msg":"WATCH_NAMESPACE environment variable not set. Watching all namespaces.","Namespace":""}
{"level":"error","ts":1601905769.162384,"logger":"controller-runtime.manager","msg":"Failed to get API Group-Resources","error":"no Auth Provider found for name "gcp"","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/manager.New\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.6.2/pkg/manager/manager.go:279\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.run\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:151\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.NewCmd.func1\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:72\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:846\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887\nmain.main\n\t/home/joe/projects/work/operator-framework/operator-sdk/cmd/ansible-operator/main.go:34\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"}
{"level":"error","ts":1601905769.1624577,"logger":"cmd","msg":"Failed to create a new manager.","Namespace":"","error":"no Auth Provider found for name "gcp"","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.run\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:153\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.NewCmd.func1\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:72\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:846\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887\nmain.main\n\t/home/joe/projects/work/operator-framework/operator-sdk/cmd/ansible-operator/main.go:34\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"}
make: *** [Makefile:21: run] Error 1
Environment
Operator type:
/language ansible
Kubernetes cluster type:
GKE (Vanilla)
$ operator-sdk version
operator-sdk version: "v1.0.1", commit: "4169b318b578156ed56530f373d328276d040a1b", kubernetes version: "v1.18.2", go version: "go1.13.15 linux/amd64", GOOS: "linux", GOARCH: "amd64"
$ go version (if language is Go)
NA
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.13-gke.401", GitCommit:"eb94c181eea5290e9da1238db02cfef263542f5f", GitTreeState:"clean", BuildDate:"2020-09-09T00:57:35Z", GoVersion:"go1.13.9b4", Compiler:"gc", Platform:"linux/amd64"}
Possible Solution
The operator-sdk main.go entrypoint contains the following package import before the cli.Run command
package main
import (
// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
// to ensure that `exec-entrypoint` and `run` can make use of them.
_ "k8s.io/client-go/plugin/pkg/client/auth"
)
The auth clients don't appear to be imported in any of the ansible go packages.
Additional Context
I am able to run kubectl commands against the cluster without issues so this issue seems to be specific to the ansible-operator run command.
Bug Report
What did you do?
Installed and ran my ansible operator as instructed in the Development Tips section of the ansible operator docs https://sdk.operatorframework.io/docs/building-operators/ansible/development-tips/#testing-an-ansible-operator-locally
What did you expect to see?
make run
/home/user/go/bin/ansible-operator
{"level":"info","ts":1595899073.9861593,"logger":"cmd","msg":"Version","Go Version":"go1.13.12","GOOS":"linux","GOARCH":"amd64","ansible-operator":"v0.19.0+git"}
{"level":"info","ts":1595899073.987384,"logger":"cmd","msg":"WATCH_NAMESPACE environment variable not set. Watching all namespaces.","Namespace":""}
{"level":"info","ts":1595899074.9504397,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":1595899074.9522583,"logger":"watches","msg":"Environment variable not set; using default value","envVar":"ANSIBLE_VERBOSITY_MEMCACHED_CACHE_EXAMPLE_COM","default":2}
{"level":"info","ts":1595899074.9524004,"logger":"cmd","msg":"Environment variable not set; using default value","Namespace":"","envVar":"ANSIBLE_DEBUG_LOGS","ANSIBLE_DEBUG_LOGS":false}
... operator specific output from here
What did you see instead? Under which circumstances?
make run
/usr/local/bin/ansible-operator run
{"level":"info","ts":1601905769.161031,"logger":"cmd","msg":"Version","Go Version":"go1.13.15","GOOS":"linux","GOARCH":"amd64","ansible-operator":"v1.0.1"}
{"level":"info","ts":1601905769.1623378,"logger":"cmd","msg":"WATCH_NAMESPACE environment variable not set. Watching all namespaces.","Namespace":""}
{"level":"error","ts":1601905769.162384,"logger":"controller-runtime.manager","msg":"Failed to get API Group-Resources","error":"no Auth Provider found for name "gcp"","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/manager.New\n\tpkg/mod/sigs.k8s.io/controller-runtime@v0.6.2/pkg/manager/manager.go:279\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.run\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:151\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.NewCmd.func1\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:72\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:846\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887\nmain.main\n\t/home/joe/projects/work/operator-framework/operator-sdk/cmd/ansible-operator/main.go:34\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"}
{"level":"error","ts":1601905769.1624577,"logger":"cmd","msg":"Failed to create a new manager.","Namespace":"","error":"no Auth Provider found for name "gcp"","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tpkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.run\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:153\ngithub.com/operator-framework/operator-sdk/internal/cmd/ansible-operator/run.NewCmd.func1\n\t/home/joe/projects/work/operator-framework/operator-sdk/internal/cmd/ansible-operator/run/cmd.go:72\ngithub.com/spf13/cobra.(*Command).execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:846\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950\ngithub.com/spf13/cobra.(*Command).Execute\n\tpkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887\nmain.main\n\t/home/joe/projects/work/operator-framework/operator-sdk/cmd/ansible-operator/main.go:34\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"}
make: *** [Makefile:21: run] Error 1
Environment
Operator type:
/language ansible
Kubernetes cluster type:
GKE (Vanilla)
$ operator-sdk versionoperator-sdk version: "v1.0.1", commit: "4169b318b578156ed56530f373d328276d040a1b", kubernetes version: "v1.18.2", go version: "go1.13.15 linux/amd64", GOOS: "linux", GOARCH: "amd64"
$ go version(if language is Go)NA
$ kubectl versionClient Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.13-gke.401", GitCommit:"eb94c181eea5290e9da1238db02cfef263542f5f", GitTreeState:"clean", BuildDate:"2020-09-09T00:57:35Z", GoVersion:"go1.13.9b4", Compiler:"gc", Platform:"linux/amd64"}
Possible Solution
The operator-sdk main.go entrypoint contains the following package import before the
cli.RuncommandThe auth clients don't appear to be imported in any of the ansible go packages.
Additional Context
I am able to run kubectl commands against the cluster without issues so this issue seems to be specific to the ansible-operator run command.