kudobuilder / kudo

Kubernetes Universal Declarative Operator (KUDO)
https://kudo.dev
Apache License 2.0
1.18k stars 103 forks source link

Panic while running `kudo init --upgrade` #1632

Closed alenkacz closed 4 years ago

alenkacz commented 4 years ago

What happened:

./bin/kubectl-kudo init --upgrade --version 0.15.0
$KUDO_HOME has been configured at /Users/alenavarkockova/.kudo
Verify that 0 required migrations can be applied
Upgrade KUDO
Run 0 migrations
✅ installed crds
✅ installed namespace
✅ installed service account
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x189198c]

goroutine 1 [running]:
k8s.io/apimachinery/pkg/apis/meta/v1/unstructured.(*Unstructured).GetAPIVersion(...)
    /Users/alenavarkockova/go/pkg/mod/k8s.io/apimachinery@v0.18.6/pkg/apis/meta/v1/unstructured/unstructured.go:218
k8s.io/apimachinery/pkg/apis/meta/v1/unstructured.(*Unstructured).GroupVersionKind(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /Users/alenavarkockova/go/pkg/mod/k8s.io/apimachinery@v0.18.6/pkg/apis/meta/v1/unstructured/unstructured.go:426 +0x6c
github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq.installUnstructured(0x2925220, 0xc0006a2960, 0x0, 0xc000000180, 0x200000003)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq/webhook.go:340 +0x43
github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq.(*KudoWebHook).installWithCertManager(0xc000648140, 0xc00036ab10, 0x1, 0x1)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq/webhook.go:125 +0x64
github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq.(*KudoWebHook).Install(0xc000648140, 0xc00036ab10, 0xc0009cfa80, 0x1)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/prereq/webhook.go:158 +0x6c
github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/setup.(*Installer).Install(0xc0006e1080, 0xc00036ab10, 0xc0009cfb40, 0x1)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/setup/setup.go:143 +0x92
github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/setup.(*Installer).Upgrade(0xc0006e1080, 0xc00036ab10, 0x0, 0x0)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/kudoinit/setup/setup.go:118 +0x292
github.com/kudobuilder/kudo/pkg/kudoctl/cmd.(*initCmd).runUpgrade(0xc00034c0d0, 0xc0006e1080, 0xc00036ab10, 0x0)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/cmd/init.go:262 +0xcb
github.com/kudobuilder/kudo/pkg/kudoctl/cmd.(*initCmd).run(0xc00034c0d0, 0x26989dc, 0x9)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/cmd/init.go:207 +0x1e3
github.com/kudobuilder/kudo/pkg/kudoctl/cmd.newInitCmd.func1(0xc0000fcb00, 0xc00036b980, 0x0, 0x3, 0x0, 0x0)
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/pkg/kudoctl/cmd/init.go:104 +0x128
github.com/spf13/cobra.(*Command).execute(0xc0000fcb00, 0xc00036b950, 0x3, 0x3, 0xc0000fcb00, 0xc00036b950)
    /Users/alenavarkockova/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:842 +0x453
github.com/spf13/cobra.(*Command).ExecuteC(0xc0000fc580, 0x0, 0x0, 0xc0000ae058)
    /Users/alenavarkockova/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:950 +0x349
github.com/spf13/cobra.(*Command).Execute(...)
    /Users/alenavarkockova/go/pkg/mod/github.com/spf13/cobra@v1.0.0/command.go:887
main.main()
    /Users/alenavarkockova/go/src/github.com/kudobuilder/kudo/cmd/kubectl-kudo/main.go:24 +0x27

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

ANeumann82 commented 4 years ago

The PreUpgradeVerify needs a call to detectCertManagerVersion...


func (k KudoWebHook) PreUpgradeVerify(client *kube.Client, result *verifier.Result) error {
    if k.opts.SelfSignedWebhookCA {
        return nil
    }
    if err := k.detectCertManagerVersion(client, result); err != nil {
        return err
    }

    return nil
}
ANeumann82 commented 4 years ago

Closed with PR #1635