No logs in Pod - [controller-runtime] log.SetLogger(...) was never called; logs will not be displayed.
What happened?
The Pod started for the gitlab provider v0.8.0 des not show anly log besides the following:
[controller-runtime] log.SetLogger(...) was never called; logs will not be displayed.
Detected at:
> goroutine 382 [running]:
> runtime/debug.Stack()
> runtime/debug/stack.go:24 +0x5e
> sigs.k8s.io/controller-runtime/pkg/log.eventuallyFulfillRoot()
> sigs.k8s.io/[email protected]/pkg/log/log.go:60 +0xcd
> sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithValues(0xc000132bc0, {0xc000098400, 0x2, 0x2})
> sigs.k8s.io/[email protected]/pkg/log/deleg.go:168 +0x49
> github.com/go-logr/logr.Logger.WithValues(...)
> github.com/go-logr/[email protected]/logr.go:332
> sigs.k8s.io/controller-runtime/pkg/builder.(*Builder).doController.func1(0xc0000983e0)
> sigs.k8s.io/[email protected]/pkg/builder/controller.go:400 +0x193
> sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0000bc820, {0x1ebf350, 0xc0004aa6e0}, {0x1a13820, 0xc0000983c0})
> sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:306 +0x162
> sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0000bc820, {0x1ebf350, 0xc0004aa6e0})
> sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:266 +0x1be
> sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
> sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:227 +0x79
> created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 48
> sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:223 +0x50c
How can we reproduce it?
Install the gitlab provider and check the log of the started pod.
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-gitlab
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.8.0
What environment did it happen in?
Crossplane version: v1.16.0 Crossplane Provider GitLab version: v0.8.0 Kubernetes version: v1.29.5
It seams to go away when setting the debug flag (it can be set in the DeploymentRuntimeConfig spec.containers.args: [-d])
true, the error disappears as in debug mode, a logger is set. https://github.com/crossplane-contrib/provider-gitlab/blob/master/cmd/provider/main.go#L67
To truly fix it, a logger needs to be set always.
In Crossplane and its providers everything works with events instead of logs because most users will not have access to the pod logs.
https://github.com/crossplane/crossplane/blob/fc418390/docs/contributing/observability_developer_guide.md
Still there should not be an error stack trace in the pod log for those users with access to the logs if the provider works as expected.