Skip to content

Commit

Permalink
Always use dc.ObjectMeta.Name-pdb for the PodDisruptionBudget object …
Browse files Browse the repository at this point in the history
…name (#734)
  • Loading branch information
burmanm authored Nov 19, 2024
1 parent 97cf685 commit 3f699c5
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Changelog for Cass Operator, new PRs should update the `main / unreleased` secti

## unreleased

* [CHANGE] [#720](https://github.com/k8ssandra/cass-operator/issues/720) Always use ObjectMeta.Name for the PodDisruptionBudget resource name, not the DatacenterName
* [FEATURE] [#651](https://github.com/k8ssandra/cass-operator/issues/651) Add tsreload task for DSE deployments and ability to check if sync operation is available on the mgmt-api side
* [ENHANCEMENT] [#722](https://github.com/k8ssandra/cass-operator/issues/722) Add back the ability to track cleanup task before marking scale up as done. This is controlled by an annotation cassandra.datastax.com/track-cleanup-tasks
* [BUGFIX] [#705](https://github.com/k8ssandra/cass-operator/issues/705) Ensure ConfigSecret has annotations map before trying to set a value
Expand Down
4 changes: 2 additions & 2 deletions pkg/reconciliation/constructor.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
)

// Create a PodDisruptionBudget object for the Datacenter
// newPodDisruptionBudgetForDatacenter creates a PodDisruptionBudget object for the Datacenter
func newPodDisruptionBudgetForDatacenter(dc *api.CassandraDatacenter) *policyv1.PodDisruptionBudget {
minAvailable := intstr.FromInt(int(dc.Spec.Size - 1))
labels := dc.GetDatacenterLabels()
Expand All @@ -31,7 +31,7 @@ func newPodDisruptionBudgetForDatacenter(dc *api.CassandraDatacenter) *policyv1.

pdb := &policyv1.PodDisruptionBudget{
ObjectMeta: metav1.ObjectMeta{
Name: dc.LabelResourceName() + "-pdb",
Name: dc.Name + "-pdb",
Namespace: dc.Namespace,
Labels: labels,
Annotations: anns,
Expand Down
31 changes: 31 additions & 0 deletions pkg/reconciliation/constructor_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package reconciliation

import (
"testing"

api "github.com/k8ssandra/cass-operator/apis/cassandra/v1beta1"
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func TestPodDisruptionBudget(t *testing.T) {
assert := assert.New(t)

dc := &api.CassandraDatacenter{
ObjectMeta: metav1.ObjectMeta{
Name: "dc1",
Namespace: "test",
},
Spec: api.CassandraDatacenterSpec{
DatacenterName: "dc1-override",
Size: 3,
},
}

// create a PodDisruptionBudget object
pdb := newPodDisruptionBudgetForDatacenter(dc)
assert.Equal("dc1-pdb", pdb.Name)
assert.Equal("test", pdb.Namespace)
assert.Equal("dc1", pdb.Spec.Selector.MatchLabels["cassandra.datastax.com/datacenter"])
assert.Equal(pdb.Spec.MinAvailable.IntVal, int32(dc.Spec.Size-1))
}

0 comments on commit 3f699c5

Please sign in to comment.