Skip to content

Commit dab3ba1

Browse files
terryyankohors
andauthored
K8SPSMDB-1398 Suppress storage discrepancy error if external volume autoscaling is enabled (#1897)
* bypass * wip * return if true * ignore pvcs reconciliation altogether * rename to enableExternalVolumeAutoscaler * generate manifests * use main * add example option to cr.yaml --------- Co-authored-by: Viacheslav Sarzhan <slava.sarzhan@percona.com>
1 parent cb988ec commit dab3ba1

File tree

8 files changed

+45
-29
lines changed

8 files changed

+45
-29
lines changed

config/crd/bases/psmdb.percona.com_perconaservermongodbs.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,8 @@ spec:
456456
type: string
457457
crVersion:
458458
type: string
459+
enableExternalVolumeAutoscaling:
460+
type: boolean
459461
enableVolumeExpansion:
460462
type: boolean
461463
ignoreAnnotations:

deploy/bundle.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,8 @@ spec:
11841184
type: string
11851185
crVersion:
11861186
type: string
1187+
enableExternalVolumeAutoscaling:
1188+
type: boolean
11871189
enableVolumeExpansion:
11881190
type: boolean
11891191
ignoreAnnotations:

deploy/cr.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ spec:
1313
# pause: true
1414
# unmanaged: false
1515
# enableVolumeExpansion: false
16+
# enableExternalVolumeAutoscaling: false
1617
crVersion: 1.21.0
1718
image: perconalab/percona-server-mongodb-operator:main-mongod8.0
1819
imagePullPolicy: Always

deploy/crd.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,8 @@ spec:
11841184
type: string
11851185
crVersion:
11861186
type: string
1187+
enableExternalVolumeAutoscaling:
1188+
type: boolean
11871189
enableVolumeExpansion:
11881190
type: boolean
11891191
ignoreAnnotations:

deploy/cw-bundle.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,8 @@ spec:
11841184
type: string
11851185
crVersion:
11861186
type: string
1187+
enableExternalVolumeAutoscaling:
1188+
type: boolean
11871189
enableVolumeExpansion:
11881190
type: boolean
11891191
ignoreAnnotations:

e2e-tests/version-service/conf/crd.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,8 @@ spec:
11841184
type: string
11851185
crVersion:
11861186
type: string
1187+
enableExternalVolumeAutoscaling:
1188+
type: boolean
11871189
enableVolumeExpansion:
11881190
type: boolean
11891191
ignoreAnnotations:

pkg/apis/psmdb/v1/psmdb_types.go

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -69,35 +69,36 @@ const (
6969

7070
// PerconaServerMongoDBSpec defines the desired state of PerconaServerMongoDB
7171
type PerconaServerMongoDBSpec struct {
72-
Pause bool `json:"pause,omitempty"`
73-
Unmanaged bool `json:"unmanaged,omitempty"`
74-
CRVersion string `json:"crVersion,omitempty"`
75-
Platform *version.Platform `json:"platform,omitempty"`
76-
Image string `json:"image"`
77-
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
78-
UnsafeConf bool `json:"allowUnsafeConfigurations,omitempty"`
79-
Unsafe UnsafeFlags `json:"unsafeFlags,omitempty"`
80-
IgnoreLabels []string `json:"ignoreLabels,omitempty"`
81-
IgnoreAnnotations []string `json:"ignoreAnnotations,omitempty"`
82-
Replsets []*ReplsetSpec `json:"replsets,omitempty"`
83-
Secrets *SecretsSpec `json:"secrets,omitempty"`
84-
Backup BackupSpec `json:"backup,omitempty"`
85-
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
86-
PMM PMMSpec `json:"pmm,omitempty"`
87-
UpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"updateStrategy,omitempty"`
88-
UpgradeOptions UpgradeOptions `json:"upgradeOptions,omitempty"`
89-
SchedulerName string `json:"schedulerName,omitempty"`
90-
ClusterServiceDNSSuffix string `json:"clusterServiceDNSSuffix,omitempty"`
91-
ClusterServiceDNSMode DNSMode `json:"clusterServiceDNSMode,omitempty"`
92-
Sharding Sharding `json:"sharding,omitempty"`
93-
InitImage string `json:"initImage,omitempty"`
94-
InitContainerSecurityContext *corev1.SecurityContext `json:"initContainerSecurityContext,omitempty"`
95-
MultiCluster MultiCluster `json:"multiCluster,omitempty"`
96-
TLS *TLSSpec `json:"tls,omitempty"`
97-
Users []User `json:"users,omitempty"`
98-
Roles []Role `json:"roles,omitempty"`
99-
VolumeExpansionEnabled bool `json:"enableVolumeExpansion,omitempty"`
100-
LogCollector *LogCollectorSpec `json:"logcollector,omitempty"`
72+
Pause bool `json:"pause,omitempty"`
73+
Unmanaged bool `json:"unmanaged,omitempty"`
74+
CRVersion string `json:"crVersion,omitempty"`
75+
Platform *version.Platform `json:"platform,omitempty"`
76+
Image string `json:"image"`
77+
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
78+
UnsafeConf bool `json:"allowUnsafeConfigurations,omitempty"`
79+
Unsafe UnsafeFlags `json:"unsafeFlags,omitempty"`
80+
IgnoreLabels []string `json:"ignoreLabels,omitempty"`
81+
IgnoreAnnotations []string `json:"ignoreAnnotations,omitempty"`
82+
Replsets []*ReplsetSpec `json:"replsets,omitempty"`
83+
Secrets *SecretsSpec `json:"secrets,omitempty"`
84+
Backup BackupSpec `json:"backup,omitempty"`
85+
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
86+
PMM PMMSpec `json:"pmm,omitempty"`
87+
UpdateStrategy appsv1.StatefulSetUpdateStrategyType `json:"updateStrategy,omitempty"`
88+
UpgradeOptions UpgradeOptions `json:"upgradeOptions,omitempty"`
89+
SchedulerName string `json:"schedulerName,omitempty"`
90+
ClusterServiceDNSSuffix string `json:"clusterServiceDNSSuffix,omitempty"`
91+
ClusterServiceDNSMode DNSMode `json:"clusterServiceDNSMode,omitempty"`
92+
Sharding Sharding `json:"sharding,omitempty"`
93+
InitImage string `json:"initImage,omitempty"`
94+
InitContainerSecurityContext *corev1.SecurityContext `json:"initContainerSecurityContext,omitempty"`
95+
MultiCluster MultiCluster `json:"multiCluster,omitempty"`
96+
TLS *TLSSpec `json:"tls,omitempty"`
97+
Users []User `json:"users,omitempty"`
98+
Roles []Role `json:"roles,omitempty"`
99+
VolumeExpansionEnabled bool `json:"enableVolumeExpansion,omitempty"`
100+
LogCollector *LogCollectorSpec `json:"logcollector,omitempty"`
101+
EnableExternalVolumeAutoscaling bool `json:"enableExternalVolumeAutoscaling,omitempty"`
101102
}
102103

103104
type UserRole struct {

pkg/controller/perconaservermongodb/volumes.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ func validatePVCName(pvc corev1.PersistentVolumeClaim, sts *appsv1.StatefulSet)
4848
}
4949

5050
func (r *ReconcilePerconaServerMongoDB) resizeVolumesIfNeeded(ctx context.Context, cr *psmdbv1.PerconaServerMongoDB, sts *appsv1.StatefulSet, ls map[string]string, volumeSpec *api.VolumeSpec) error {
51+
if cr.Spec.EnableExternalVolumeAutoscaling {
52+
return nil
53+
}
54+
5155
log := logf.FromContext(ctx).WithName("PVCResize").WithValues("sts", sts.Name)
5256

5357
pvcSpec := volumeSpec.PersistentVolumeClaim

0 commit comments

Comments
 (0)