crossplane-contrib / provider-gitlab

Crossplane Gitlab provider
Apache License 2.0
55 stars 30 forks source link

No logs in Pod - [controller-runtime] log.SetLogger(...) was never called; logs will not be displayed. #150

Closed bakito closed 1 month ago

bakito commented 1 month ago

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/controller-runtime@v0.17.0/pkg/log/log.go:60 +0xcd
    >  sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithValues(0xc000132bc0, {0xc000098400, 0x2, 0x2})
    >   sigs.k8s.io/controller-runtime@v0.17.0/pkg/log/deleg.go:168 +0x49
    >  github.com/go-logr/logr.Logger.WithValues(...)
    >   github.com/go-logr/logr@v1.4.1/logr.go:332
    >  sigs.k8s.io/controller-runtime/pkg/builder.(*Builder).doController.func1(0xc0000983e0)
    >   sigs.k8s.io/controller-runtime@v0.17.0/pkg/builder/controller.go:400 +0x193
    >  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0000bc820, {0x1ebf350, 0xc0004aa6e0}, {0x1a13820, 0xc0000983c0})
    >   sigs.k8s.io/controller-runtime@v0.17.0/pkg/internal/controller/controller.go:306 +0x162
    >  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0000bc820, {0x1ebf350, 0xc0004aa6e0})
    >   sigs.k8s.io/controller-runtime@v0.17.0/pkg/internal/controller/controller.go:266 +0x1be
    >  sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
    >   sigs.k8s.io/controller-runtime@v0.17.0/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/controller-runtime@v0.17.0/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

lacroi-m-insta commented 1 month ago

It seams to go away when setting the debug flag (it can be set in the DeploymentRuntimeConfig spec.containers.args: [-d])

bakito commented 1 month ago

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.

ma-ble commented 1 month ago

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

bakito commented 1 month ago

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.