Skip to content

[BUG] Panic error while trying to mount custom ca cert #315

Closed
@Whisper40

Description

@Whisper40

Describe the bug
Because the helm chart does not support mounting volumes into pod, i manually added volumemount, and created a configmap with my certificate.
I definied this env :
VERSION_CHECKER_SELFHOSTED_CA_PATH_REMOTE: ca.pem

        - name: VERSION_CHECKER_SELFHOSTED_CA_PATH_REMOTE
          value: ca.pem
        image: quay.io/jetstack/version-checker:v0.8.5
...
      volumes:
      - name: version-checker
        secret:
          defaultMode: 420
          secretName: version-checker
      - configMap:
          defaultMode: 420
          name: ca-pemstore
        name: ca-pemstore
...
        volumeMounts:
        - mountPath: ca.pem
          name: ca-pemstore
          subPath: ca.pem

The deployment is crashing with errors logs :


Defaulted container "version-checker" out of: version-checker, install-oneagent (init)
time="2025-01-23T14:43:25Z" level=info msg="serving metrics on [::]:8080/metrics" module=metrics
time="2025-01-23T14:43:25Z" level=info msg="flag --test-all-containers=true all containers will be tested, unless they have the annotation \"enable.version-checker.io/${my-container}=false\""
time="2025-01-23T14:43:25Z" level=info msg="starting control loop" module=controller
time="2025-01-23T14:43:25Z" level=info msg="starting workers" module=controller
time="2025-01-23T14:43:25Z" level=info msg="starting cache garbage collector" cache=garbage_collector module=search
time="2025-01-23T14:43:25Z" level=info msg="starting cache garbage collector" cache=garbage_collector module=version_getter
E0123 14:43:25.526571       1 panic.go:262] "Observed a panic" panic="runtime error: invalid memory address or nil pointer dereference" panicGoValue="\"invalid memory address or nil pointer dereference\"" stacktrace=<
        goroutine 68 [running]:
        k8s.io/apimachinery/pkg/util/runtime.logPanic({0x26662f0, 0x39cea60}, {0x1f602e0, 0x39705c0})
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:107 +0xbc
        k8s.io/apimachinery/pkg/util/runtime.handleCrash({0x26662f0, 0x39cea60}, {0x1f602e0, 0x39705c0}, {0x39cea60, 0x0, 0x10000c0001ad7e0?})
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:82 +0x5e
        k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc0001ad7e0?})
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:59 +0x108
        panic({0x1f602e0?, 0x39705c0?})
                /usr/local/go/src/runtime/panic.go:785 +0x132
        regexp.(*Regexp).doExecute(0xc000d0eac0?, {0x0?, 0x0?}, {0x0?, 0x0?, 0x2?}, {0xc00069c460?, 0xc00069c460?}, 0xc000f900e0?, 0x0, ...)
                /usr/local/go/src/regexp/exec.go:527 +0x80
        regexp.(*Regexp).doMatch(...)
                /usr/local/go/src/regexp/exec.go:514
        regexp.(*Regexp).MatchString(...)
                /usr/local/go/src/regexp/regexp.go:527
        github.com/jetstack/version-checker/pkg/client/selfhosted.(*Client).IsHost(0xc00069c460?, {0xc00069c460?, 0x262fc88?})
                /app/pkg/client/selfhosted/path.go:16 +0x45
        github.com/jetstack/version-checker/pkg/client.(*Client).fromImageURL(0xc000629d10, {0xc00069c460, 0x48})
                /app/pkg/client/client.go:128 +0x16c
        github.com/jetstack/version-checker/pkg/client.(*Client).Tags(0x46f770?, {0x2666360, 0xc00019de00}, {0xc00069c460?, 0x1a0000c000d52b40?})
                /app/pkg/client/client.go:106 +0x35
        github.com/jetstack/version-checker/pkg/version.(*Version).Fetch(0x0?, {0x2666360?, 0xc00019de00?}, {0xc00069c460, 0x48}, 0x39ab140?)
                /app/pkg/version/version.go:85 +0x3b
        github.com/jetstack/version-checker/pkg/cache.(*Cache).Get(0xc0002f5180, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, {0xc00069c460, 0x48}, 0x0)
                /app/pkg/cache/cache.go:69 +0x2af
        github.com/jetstack/version-checker/pkg/version.(*Version).LatestTagFromImage(0xc000d52b10?, {0x2666360?, 0xc00019de00?}, {0xc00069c460, 0x48}, 0xc000d0ea40)
                /app/pkg/version/version.go:47 +0x54
        github.com/jetstack/version-checker/pkg/controller/search.(*Search).Fetch(0x0?, {0x2666360?, 0xc00019de00?}, {0xc00069c460?, 0xa084e0a?}, 0x39ab140?)
                /app/pkg/controller/search/search.go:44 +0x26
        github.com/jetstack/version-checker/pkg/cache.(*Cache).Get(0xc0002f51c0, {0x2666360, 0xc00019de00}, {0xc000c12950, 0xa}, {0xc00069c460, 0x48}, 0xc000d0ea40)
                /app/pkg/cache/cache.go:69 +0x2af
        github.com/jetstack/version-checker/pkg/controller/search.(*Search).LatestImage(0xc0005f5188, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, 0xc000d0ea40)
                /app/pkg/controller/search/search.go:61 +0x75
        github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).isLatestSemver(0xc00069c4a9?, {0x2666360?, 0xc00019de00?}, {0xc00069c460?, 0xc000f90060?}, {0xc000452559, 0x47}, 0xc000d0ea80, 0x4f?)
                /app/pkg/controller/checker/checker.go:147 +0x52
        github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).handleSemver(0xc000620df0, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, {0xc000452559, 0x47}, {0xc00069c4a9, 0x6}, 0x0, ...)
                /app/pkg/controller/checker/checker.go:86 +0xb5
        github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).Container(0xc000620df0, {0x2666360, 0xc00019de00}, 0xc000329b20, 0x9?, 0xc000c5f760, 0xc000d0ea40)
                /app/pkg/controller/checker/checker.go:55 +0x1cf
        github.com/jetstack/version-checker/pkg/controller.(*Controller).checkContainer(0xc00061afc0, {0x2666360?, 0xc00019de00?}, 0xc000329b20, 0xc000c1e908, 0xc000c5f760, {0x232e0be, 0x4}, 0x7f97e1e06108?)
                /app/pkg/controller/sync.go:78 +0x69
        github.com/jetstack/version-checker/pkg/controller.(*Controller).syncContainer(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xc000329ab0, 0xc000c5f8f0, 0xc000c1e908, 0xc000c5f760, {0x232e0be, 0x4})
                /app/pkg/controller/sync.go:60 +0x367
        github.com/jetstack/version-checker/pkg/controller.(*Controller).sync(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xc000c1e908)
                /app/pkg/controller/sync.go:24 +0x333
        github.com/jetstack/version-checker/pkg/controller.(*Controller).processNextWorkItem(0xc00061afc0, {0x2666360, 0xc00019de00}, {0xc000d44540, 0x2e}, 0xd18c2e2800)
                /app/pkg/controller/controller.go:178 +0x22b
        github.com/jetstack/version-checker/pkg/controller.(*Controller).runWorker(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xd18c2e2800)
                /app/pkg/controller/controller.go:131 +0x74
        github.com/jetstack/version-checker/pkg/controller.(*Controller).Run.func2()
                /app/pkg/controller/controller.go:105 +0x25
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x30?)
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:226 +0x33
        k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc000c8e8d0, {0x263c820, 0xc000d52930}, 0x1, 0xc00043f730)
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:227 +0xaf
        k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc000c8e8d0, 0x3b9aca00, 0x0, 0x1, 0xc00043f730)
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:204 +0x7f
        k8s.io/apimachinery/pkg/util/wait.Until(...)
                /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:161
        created by github.com/jetstack/version-checker/pkg/controller.(*Controller).Run in goroutine 1
                /app/pkg/controller/controller.go:105 +0x465
 >
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x90 pc=0x60a180]

goroutine 68 [running]:
k8s.io/apimachinery/pkg/util/runtime.handleCrash({0x26662f0, 0x39cea60}, {0x1f602e0, 0x39705c0}, {0x39cea60, 0x0, 0x10000c0001ad7e0?})
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:89 +0xee
k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc0001ad7e0?})
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:59 +0x108
panic({0x1f602e0?, 0x39705c0?})
        /usr/local/go/src/runtime/panic.go:785 +0x132
regexp.(*Regexp).doExecute(0xc000d0eac0?, {0x0?, 0x0?}, {0x0?, 0x0?, 0x2?}, {0xc00069c460?, 0xc00069c460?}, 0xc000f900e0?, 0x0, ...)
        /usr/local/go/src/regexp/exec.go:527 +0x80
regexp.(*Regexp).doMatch(...)
        /usr/local/go/src/regexp/exec.go:514
regexp.(*Regexp).MatchString(...)
        /usr/local/go/src/regexp/regexp.go:527
github.com/jetstack/version-checker/pkg/client/selfhosted.(*Client).IsHost(0xc00069c460?, {0xc00069c460?, 0x262fc88?})
        /app/pkg/client/selfhosted/path.go:16 +0x45
github.com/jetstack/version-checker/pkg/client.(*Client).fromImageURL(0xc000629d10, {0xc00069c460, 0x48})
        /app/pkg/client/client.go:128 +0x16c
github.com/jetstack/version-checker/pkg/client.(*Client).Tags(0x46f770?, {0x2666360, 0xc00019de00}, {0xc00069c460?, 0x1a0000c000d52b40?})
        /app/pkg/client/client.go:106 +0x35
github.com/jetstack/version-checker/pkg/version.(*Version).Fetch(0x0?, {0x2666360?, 0xc00019de00?}, {0xc00069c460, 0x48}, 0x39ab140?)
        /app/pkg/version/version.go:85 +0x3b
github.com/jetstack/version-checker/pkg/cache.(*Cache).Get(0xc0002f5180, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, {0xc00069c460, 0x48}, 0x0)
        /app/pkg/cache/cache.go:69 +0x2af
github.com/jetstack/version-checker/pkg/version.(*Version).LatestTagFromImage(0xc000d52b10?, {0x2666360?, 0xc00019de00?}, {0xc00069c460, 0x48}, 0xc000d0ea40)
        /app/pkg/version/version.go:47 +0x54
github.com/jetstack/version-checker/pkg/controller/search.(*Search).Fetch(0x0?, {0x2666360?, 0xc00019de00?}, {0xc00069c460?, 0xa084e0a?}, 0x39ab140?)
        /app/pkg/controller/search/search.go:44 +0x26
github.com/jetstack/version-checker/pkg/cache.(*Cache).Get(0xc0002f51c0, {0x2666360, 0xc00019de00}, {0xc000c12950, 0xa}, {0xc00069c460, 0x48}, 0xc000d0ea40)
        /app/pkg/cache/cache.go:69 +0x2af
github.com/jetstack/version-checker/pkg/controller/search.(*Search).LatestImage(0xc0005f5188, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, 0xc000d0ea40)
        /app/pkg/controller/search/search.go:61 +0x75
github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).isLatestSemver(0xc00069c4a9?, {0x2666360?, 0xc00019de00?}, {0xc00069c460?, 0xc000f90060?}, {0xc000452559, 0x47}, 0xc000d0ea80, 0x4f?)
        /app/pkg/controller/checker/checker.go:147 +0x52
github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).handleSemver(0xc000620df0, {0x2666360, 0xc00019de00}, {0xc00069c460, 0x48}, {0xc000452559, 0x47}, {0xc00069c4a9, 0x6}, 0x0, ...)
        /app/pkg/controller/checker/checker.go:86 +0xb5
github.com/jetstack/version-checker/pkg/controller/checker.(*Checker).Container(0xc000620df0, {0x2666360, 0xc00019de00}, 0xc000329b20, 0x9?, 0xc000c5f760, 0xc000d0ea40)
        /app/pkg/controller/checker/checker.go:55 +0x1cf
github.com/jetstack/version-checker/pkg/controller.(*Controller).checkContainer(0xc00061afc0, {0x2666360?, 0xc00019de00?}, 0xc000329b20, 0xc000c1e908, 0xc000b07760, {0x232e0be, 0x4}, 0x7f97e1e06108?)
        /app/pkg/controller/sync.go:78 +0x69
github.com/jetstack/version-checker/pkg/controller.(*Controller).syncContainer(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xc000329ab0, 0xc000c5f8f0, 0xc000c1e908, 0xc000b07760, {0x232e0be, 0x4})
        /app/pkg/controller/sync.go:60 +0x367
github.com/jetstack/version-checker/pkg/controller.(*Controller).sync(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xc000c1e908)
        /app/pkg/controller/sync.go:24 +0x333
github.com/jetstack/version-checker/pkg/controller.(*Controller).processNextWorkItem(0xc00061afc0, {0x2666360, 0xc00019de00}, {0xc000d44540, 0x2e}, 0xd18c2e2800)
        /app/pkg/controller/controller.go:178 +0x22b
github.com/jetstack/version-checker/pkg/controller.(*Controller).runWorker(0xc00061afc0, {0x2666360, 0xc00019de00}, 0xd18c2e2800)
        /app/pkg/controller/controller.go:131 +0x74
github.com/jetstack/version-checker/pkg/controller.(*Controller).Run.func2()
        /app/pkg/controller/controller.go:105 +0x25
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0x30?)
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:226 +0x33
k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc000c8e8d0, {0x263c820, 0xc000d52930}, 0x1, 0xc00043f730)
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:227 +0xaf
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc000c8e8d0, 0x3b9aca00, 0x0, 0x1, 0xc00043f730)
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:204 +0x7f
k8s.io/apimachinery/pkg/util/wait.Until(...)
        /go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/backoff.go:161
created by github.com/jetstack/version-checker/pkg/controller.(*Controller).Run in goroutine 1
        /app/pkg/controller/controller.go:105 +0x465

To Reproduce
Steps to reproduce the behavior:

  1. Do what i described (add volume/configmap with cert)
  2. See error

Expected behavior
The goal is that no tls error appears while connecting to a selfhosted registry

Environment (please complete the following information):

  • Version-Checker: 0.8.5
  • Kubernetes: 1.28

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggood first issueGood for newcomers

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions