Orange-OpenSource / casskop

This Kubernetes operator automates the Cassandra operations such as deploying a new rack aware cluster, adding/removing nodes, configuring the C* and JVM parameters, upgrading JVM and C* versions, and many more...
https://orange-opensource.github.io/casskop/
Apache License 2.0
183 stars 54 forks source link

Ensure non existing datacenter specified in backup doesn't make casskop fails #312

Closed cscetbon closed 3 years ago

cscetbon commented 3 years ago

Bug Report

When non existing DC is specified casskop crashes with a kernel panic. Let's fix it.

...
github.com/Orange-OpenSource/casskop/pkg/controller/cassandrabackup.(*ReconcileCassandraBackup).backupData(0xc00057d640, 0xc00044e900, 0xc00055d880, 0xc000188620, 0x7, 0xc0006ece50)
    casskop/pkg/controller/cassandrabackup/reconcile.go:246 +0xc0
github.com/Orange-OpenSource/casskop/pkg/controller/cassandrabackup.(*ReconcileCassandraBackup).Reconcile(0xc00057d640, 0xc0006ece29, 0x7, 0xc0006ece14, 0xc, 0x0, 0x0, 0x0, 0x0)
    casskop/pkg/controller/cassandrabackup/reconcile.go:235 +0x90c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0001a6a80, 0x1637880, 0xc00030b160, 0x1733c00)
    casskop/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256 +0x161
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0001a6a80, 0x203000)
    casskop/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232 +0xae
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker(0xc0001a6a80)
    casskop/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211 +0x2b
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc0002734d0)
...

Also specifying a list of datacenters (comma/space separated list) should not prevent casskop from finding a coordinator where to kick off the backup.