Skip to content

admission webhook "vdatastore.kb.io" denied the request: panic: runtime error: invalid memory address or nil pointer dereference [recovered] #744

@zazathomas

Description

@zazathomas

Issue type: Bug

Description of the issue: Anytime I try to create a datastore backed by a managed postgresql db without supplying clientcertificate details,
kamaji throws this error:
Error from server: error when creating "pg-datastore.yaml": admission webhook "vdatastore.kb.io" denied the request: panic: runtime error: invalid memory address or nil pointer dereference [recovered]

Kamaji image version: latest

Kamaji controller logs:

2025-03-22T12:57:16Z    INFO    soot_control-planes_homelab-hosted-cp.PhaseClusterAdminRBAC     reconciliation completed
2025-03-22T12:57:39Z    ERROR   admission       Observed a panic        {"object": {"name":"neon"}, "namespace": "", "name": "neon", "resource": {"group":"kamaji.clastix.io","version":"v1alpha1","resource":"datastores"}, "user": "REDACTED", "requestID": "69cdce92-f862-487c-b733-84c71187d365", "panic": "runtime error: invalid memory address or nil pointer dereference", "panicGoValue": "\"invalid memory address or nil pointer dereference\"", "stacktrace": "goroutine 1327 [running]:\nk8s.io/apimachinery/pkg/util/runtime.logPanic({0x2a69b98, 0x40011cd2c0}, {0x21adec0, 0x42b78c0})\n\tk8s.io/apimachinery@v0.32.3/pkg/util/runtime/runtime.go:107 +0x98\nsigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle.func1()\n\tsigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/webhook.go:163 +0xe8\npanic({0x21adec0?, 0x42b78c0?})\n\truntime/panic.go:785 +0x124\ngithub.com/clastix/kamaji/internal/webhook/handlers.DataStoreValidation.validateTLSConfig({{_, _}}, {_, _}, {{{0x4001d33690, 0x9}, {0x4002153280, 0x1a}}, {{0x4001d336b0, 0x4}, ...}, ...})\n\tgithub.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:111 +0x1e0\ngithub.com/clastix/kamaji/internal/webhook/handlers.DataStoreValidation.validate({{_, _}}, {_, _}, {{{0x4001d33690, 0x9}, {0x4002153280, 0x1a}}, {{0x4001d336b0, 0x4}, ...}, ...})\n\tgithub.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:71 +0xac\ngithub.com/clastix/kamaji/internal/webhook/handlers.(*DataStoreValidation).OnCreate.DataStoreValidation.OnCreate.func1({_, _}, {{{0x4000f89230, 0x24}, {{0x400207afc0, 0x11}, {0x4001d33480, 0x8}, {0x4001d33490, 0x9}}, ...}})\n\tgithub.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:31 +0xac\ngithub.com/clastix/kamaji/internal/webhook.Register.handlersChainer.Handler.func1.1(0x4000f89230?)\n\tgithub.com/clastix/kamaji/internal/webhook/chainer.go:44 +0x80\ngithub.com/clastix/kamaji/internal/webhook.Register.handlersChainer.Handler.func1({_, _}, {{{0x4000f89230, 0x24}, {{0x400207afc0, 0x11}, {0x4001d33480, 0x8}, {0x4001d33490, 0x9}}, ...}})\n\tgithub.com/clastix/kamaji/internal/webhook/chainer.go:61 +0xc04\nsigs.k8s.io/controller-runtime/pkg/webhook/admission.HandlerFunc.Handle(_, {_, _}, {{{0x4000f89230, 0x24}, {{0x400207afc0, 0x11}, {0x4001d33480, 0x8}, {0x4001d33490, ...}}, ...}})\n\tsigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/webhook.go:114 +0x74\nsigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle(_, {_, _}, {{{0x4000f89230, 0x24}, {{0x400207afc0, 0x11}, {0x4001d33480, 0x8}, {0x4001d33490, ...}}, ...}})\n\tsigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/webhook.go:181 +0x194\nsigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).ServeHTTP(0x4000118460, {0xffff53bd8e78, 0x4000834320}, 0x4000935cc0)\n\tsigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/http.go:119 +0x8dc\nsigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics.InstrumentedHook.InstrumentHandlerInFlight.func1({0xffff53bd8e78, 0x4000834320}, 0x4000935cc0)\n\tgithub.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:60 +0xa8\nnet/http.HandlerFunc.ServeHTTP(0x42c3680?, {0xffff53bd8e78?, 0x4000834320?}, 0x40023fab45?)\n\tnet/http/server.go:2220 +0x38\ngithub.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1({0x2a50e68?, 0x40019f1180?}, 0x4000935cc0)\n\tgithub.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:147 +0xa8\nnet/http.HandlerFunc.ServeHTTP(0x40009e19d8?, {0x2a50e68?, 0x40019f1180?}, 0x4002198380?)\n\tnet/http/server.go:2220 +0x38\ngithub.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x2a50e68, 0x40019f1180}, 0x4000935cc0)\n\tgithub.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:109 +0x94\nnet/http.HandlerFunc.ServeHTTP(0x40000b9420?, {0x2a50e68?, 0x40019f1180?}, 0x40009e1b10?)\n\tnet/http/server.go:2220 +0x38\nnet/http.(*ServeMux).ServeHTTP(0x10?, {0x2a50e68, 0x40019f1180}, 0x4000935cc0)\n\tnet/http/server.go:2747 +0x1b4\nnet/http.serverHandler.ServeHTTP({0x2a43f40?}, {0x2a50e68?, 0x40019f1180?}, 0x6?)\n\tnet/http/server.go:3210 +0xbc\nnet/http.(*conn).serve(0x4001b5d170, {0x2a69b98, 0x40009a5d70})\n\tnet/http/server.go:2092 +0x4fc\ncreated by net/http.(*Server).Serve in goroutine 156\n\tnet/http/server.go:3360 +0x3dc\n"}
runtime.sigpanic
        runtime/signal_unix.go:900
github.com/clastix/kamaji/internal/webhook/handlers.DataStoreValidation.validateTLSConfig
        github.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:111
github.com/clastix/kamaji/internal/webhook/handlers.DataStoreValidation.validate
        github.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:71
github.com/clastix/kamaji/internal/webhook/handlers.(*DataStoreValidation).OnCreate.DataStoreValidation.OnCreate.func1
        github.com/clastix/kamaji/internal/webhook/handlers/ds_validate.go:31
github.com/clastix/kamaji/internal/webhook.Register.handlersChainer.Handler.func1.1
        github.com/clastix/kamaji/internal/webhook/chainer.go:44
github.com/clastix/kamaji/internal/webhook.Register.handlersChainer.Handler.func1
        github.com/clastix/kamaji/internal/webhook/chainer.go:61
sigs.k8s.io/controller-runtime/pkg/webhook/admission.HandlerFunc.Handle
        sigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/webhook.go:114
sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle
        sigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/webhook.go:181
sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).ServeHTTP
        sigs.k8s.io/controller-runtime@v0.20.3/pkg/webhook/admission/http.go:119
sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics.InstrumentedHook.InstrumentHandlerInFlight.func1
        github.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:60
net/http.HandlerFunc.ServeHTTP
        net/http/server.go:2220
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1
        github.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:147
net/http.HandlerFunc.ServeHTTP
        net/http/server.go:2220
github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2
        github.com/prometheus/client_golang@v1.19.1/prometheus/promhttp/instrument_server.go:109
net/http.HandlerFunc.ServeHTTP
        net/http/server.go:2220
net/http.(*ServeMux).ServeHTTP
        net/http/server.go:2747
net/http.serverHandler.ServeHTTP
        net/http/server.go:3210
net/http.(*conn).serve
        net/http/server.go:2092

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions