extend test and update log msg
This commit is contained in:
parent
abe7b39619
commit
8d67c78e43
|
|
@ -672,7 +672,7 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
|
||||||
// Volume
|
// Volume
|
||||||
if oldSpec.Spec.Size != newSpec.Spec.Size {
|
if oldSpec.Spec.Size != newSpec.Spec.Size {
|
||||||
c.logVolumeChanges(oldSpec.Spec.Volume, newSpec.Spec.Volume)
|
c.logVolumeChanges(oldSpec.Spec.Volume, newSpec.Spec.Volume)
|
||||||
c.logger.Debugf("syncing volumes using %q resize mode", c.OpConfig.StorageResizeMode)
|
c.logger.Debugf("syncing volumes using %q storage resize mode", c.OpConfig.StorageResizeMode)
|
||||||
if c.OpConfig.StorageResizeMode == "pvc" {
|
if c.OpConfig.StorageResizeMode == "pvc" {
|
||||||
if err := c.syncVolumeClaims(); err != nil {
|
if err := c.syncVolumeClaims(); err != nil {
|
||||||
c.logger.Errorf("could not sync persistent volume claims: %v", err)
|
c.logger.Errorf("could not sync persistent volume claims: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ func (c *Cluster) Sync(newSpec *acidv1.Postgresql) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
c.logger.Debugf("syncing volumes using %q resize mode", c.OpConfig.StorageResizeMode)
|
c.logger.Debugf("syncing volumes using %q storage resize mode", c.OpConfig.StorageResizeMode)
|
||||||
if c.OpConfig.StorageResizeMode == "pvc" {
|
if c.OpConfig.StorageResizeMode == "pvc" {
|
||||||
if err = c.syncVolumeClaims(); err != nil {
|
if err = c.syncVolumeClaims(); err != nil {
|
||||||
err = fmt.Errorf("could not sync persistent volume claims: %v", err)
|
err = fmt.Errorf("could not sync persistent volume claims: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/resource"
|
"k8s.io/apimachinery/pkg/api/resource"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
|
||||||
|
|
@ -32,7 +33,7 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
namespace := "default"
|
namespace := "default"
|
||||||
newVolumeSize := "2Gi"
|
newVolumeSize := "2Gi"
|
||||||
|
|
||||||
// new cluster with pvc resize mode and configured labels
|
// new cluster with pvc storage resize mode and configured labels
|
||||||
var cluster = New(
|
var cluster = New(
|
||||||
Config{
|
Config{
|
||||||
OpConfig: config.Config{
|
OpConfig: config.Config{
|
||||||
|
|
@ -50,7 +51,7 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
filterLabels := cluster.labelsSet(false)
|
filterLabels := cluster.labelsSet(false)
|
||||||
|
|
||||||
// define and create PVCs for 1Gi volumes
|
// define and create PVCs for 1Gi volumes
|
||||||
parsedStorage, err := resource.ParseQuantity("1Gi")
|
storage1Gi, err := resource.ParseQuantity("1Gi")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
pvcList := &v1.PersistentVolumeClaimList{
|
pvcList := &v1.PersistentVolumeClaimList{
|
||||||
|
|
@ -64,7 +65,7 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
Spec: v1.PersistentVolumeClaimSpec{
|
Spec: v1.PersistentVolumeClaimSpec{
|
||||||
Resources: v1.ResourceRequirements{
|
Resources: v1.ResourceRequirements{
|
||||||
Requests: v1.ResourceList{
|
Requests: v1.ResourceList{
|
||||||
v1.ResourceStorage: parsedStorage,
|
v1.ResourceStorage: storage1Gi,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -78,7 +79,21 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
Spec: v1.PersistentVolumeClaimSpec{
|
Spec: v1.PersistentVolumeClaimSpec{
|
||||||
Resources: v1.ResourceRequirements{
|
Resources: v1.ResourceRequirements{
|
||||||
Requests: v1.ResourceList{
|
Requests: v1.ResourceList{
|
||||||
v1.ResourceStorage: parsedStorage,
|
v1.ResourceStorage: storage1Gi,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: constants.DataVolumeName + "-" + clusterName + "-2-0",
|
||||||
|
Namespace: namespace,
|
||||||
|
Labels: labels.Set{},
|
||||||
|
},
|
||||||
|
Spec: v1.PersistentVolumeClaimSpec{
|
||||||
|
Resources: v1.ResourceRequirements{
|
||||||
|
Requests: v1.ResourceList{
|
||||||
|
v1.ResourceStorage: storage1Gi,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -96,10 +111,12 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
pvcs, err := cluster.listPersistentVolumeClaims()
|
pvcs, err := cluster.listPersistentVolumeClaims()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
if len(pvcs) != len(pvcList.Items) {
|
// check if listPersistentVolumeClaims returns only the PVCs matching the filter
|
||||||
t.Errorf("%s: could not find all PVCs, got %v, expected %v", testName, len(pvcs), len(pvcList.Items))
|
if len(pvcs) != len(pvcList.Items)-1 {
|
||||||
|
t.Errorf("%s: could not find all PVCs, got %v, expected %v", testName, len(pvcs), len(pvcList.Items)-1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if PVCs were correctly resized
|
||||||
for _, pvc := range pvcs {
|
for _, pvc := range pvcs {
|
||||||
newStorageSize := quantityToGigabyte(pvc.Spec.Resources.Requests[v1.ResourceStorage])
|
newStorageSize := quantityToGigabyte(pvc.Spec.Resources.Requests[v1.ResourceStorage])
|
||||||
expectedQuantity, err := resource.ParseQuantity(newVolumeSize)
|
expectedQuantity, err := resource.ParseQuantity(newVolumeSize)
|
||||||
|
|
@ -109,6 +126,15 @@ func TestResizeVolumeClaim(t *testing.T) {
|
||||||
t.Errorf("%s: resizing failed, got %v, expected %v", testName, newStorageSize, expectedSize)
|
t.Errorf("%s: resizing failed, got %v, expected %v", testName, newStorageSize, expectedSize)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check if other PVC was not resized
|
||||||
|
pvc2, err := cluster.KubeClient.PersistentVolumeClaims(namespace).Get(context.TODO(), constants.DataVolumeName+"-"+clusterName+"-2-0", metav1.GetOptions{})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
unchangedSize := quantityToGigabyte(pvc2.Spec.Resources.Requests[v1.ResourceStorage])
|
||||||
|
expectedSize := quantityToGigabyte(storage1Gi)
|
||||||
|
if unchangedSize != expectedSize {
|
||||||
|
t.Errorf("%s: volume size changed, got %v, expected %v", testName, unchangedSize, expectedSize)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestQuantityToGigabyte(t *testing.T) {
|
func TestQuantityToGigabyte(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue