Skip to content

Commit b5b76c4

Browse files
K8SPG-771 | Use CEL for validating that volumeSnapshots.className required (#1532)
* use CEL for validating .volumeSnapshots.className Signed-off-by: Mayank Shah <mayank.shah@percona.com> * change jenkins node to aws --------- Signed-off-by: Mayank Shah <mayank.shah@percona.com> Co-authored-by: Julio Pasinatto <julio.pasinatto@percona.com>
1 parent 79d8f35 commit b5b76c4

File tree

7 files changed

+22
-17
lines changed

7 files changed

+22
-17
lines changed

Jenkinsfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ pipeline {
415415
AUTHOR_NAME = sh(script: "echo ${CHANGE_AUTHOR_EMAIL} | awk -F'@' '{print \$1}'", , returnStdout: true).trim()
416416
}
417417
agent {
418-
label 'docker-x64-min'
418+
label 'docker'
419419
}
420420
options {
421421
disableConcurrentBuilds(abortPrevious: true)
@@ -535,7 +535,7 @@ pipeline {
535535
parallel {
536536
stage('cluster1') {
537537
agent {
538-
label 'docker-x64-min'
538+
label 'docker'
539539
}
540540
steps {
541541
prepareNode()
@@ -545,7 +545,7 @@ pipeline {
545545
}
546546
stage('cluster2') {
547547
agent {
548-
label 'docker-x64-min'
548+
label 'docker'
549549
}
550550
steps {
551551
prepareNode()
@@ -555,7 +555,7 @@ pipeline {
555555
}
556556
stage('cluster3') {
557557
agent {
558-
label 'docker-x64-min'
558+
label 'docker'
559559
}
560560
steps {
561561
prepareNode()
@@ -565,7 +565,7 @@ pipeline {
565565
}
566566
stage('cluster4') {
567567
agent {
568-
label 'docker-x64-min'
568+
label 'docker'
569569
}
570570
steps {
571571
prepareNode()

build/crd/percona/generated/pgv2.percona.com_perconapgclusters.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9775,9 +9775,10 @@ spec:
97759775
https://k8s.io/docs/concepts/workloads/controllers/cron-jobs/#cron-schedule-syntax
97769776
minLength: 6
97779777
type: string
9778-
required:
9779-
- className
97809778
type: object
9779+
x-kubernetes-validations:
9780+
- message: className is required
9781+
rule: has(self.className) && self.className != ""
97819782
type: object
97829783
x-kubernetes-validations:
97839784
- message: At least one repository must be configured when backups

config/crd/bases/pgv2.percona.com_perconapgclusters.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10470,9 +10470,10 @@ spec:
1047010470
https://k8s.io/docs/concepts/workloads/controllers/cron-jobs/#cron-schedule-syntax
1047110471
minLength: 6
1047210472
type: string
10473-
required:
10474-
- className
1047510473
type: object
10474+
x-kubernetes-validations:
10475+
- message: className is required
10476+
rule: has(self.className) && self.className != ""
1047610477
type: object
1047710478
x-kubernetes-validations:
1047810479
- message: At least one repository must be configured when backups

deploy/bundle.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10767,9 +10767,10 @@ spec:
1076710767
https://k8s.io/docs/concepts/workloads/controllers/cron-jobs/#cron-schedule-syntax
1076810768
minLength: 6
1076910769
type: string
10770-
required:
10771-
- className
1077210770
type: object
10771+
x-kubernetes-validations:
10772+
- message: className is required
10773+
rule: has(self.className) && self.className != ""
1077310774
type: object
1077410775
x-kubernetes-validations:
1077510776
- message: At least one repository must be configured when backups

deploy/crd.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10767,9 +10767,10 @@ spec:
1076710767
https://k8s.io/docs/concepts/workloads/controllers/cron-jobs/#cron-schedule-syntax
1076810768
minLength: 6
1076910769
type: string
10770-
required:
10771-
- className
1077210770
type: object
10771+
x-kubernetes-validations:
10772+
- message: className is required
10773+
rule: has(self.className) && self.className != ""
1077310774
type: object
1077410775
x-kubernetes-validations:
1077510776
- message: At least one repository must be configured when backups

deploy/cw-bundle.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10767,9 +10767,10 @@ spec:
1076710767
https://k8s.io/docs/concepts/workloads/controllers/cron-jobs/#cron-schedule-syntax
1076810768
minLength: 6
1076910769
type: string
10770-
required:
10771-
- className
1077210770
type: object
10771+
x-kubernetes-validations:
10772+
- message: className is required
10773+
rule: has(self.className) && self.className != ""
1077310774
type: object
1077410775
x-kubernetes-validations:
1077510776
- message: At least one repository must be configured when backups

pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@ const (
638638
VolumeSnapshotModeOffline VolumeSnapshotMode = "offline"
639639
)
640640

641+
// +kubebuilder:validation:XValidation:rule="has(self.className) && self.className != \"\"",message="className is required"
641642
type VolumeSnapshots struct {
642643
// Mode of the VolumeSnapshot.
643644
// +kubebuilder:validation:Enum={offline}
@@ -646,8 +647,7 @@ type VolumeSnapshots struct {
646647
Mode VolumeSnapshotMode `json:"mode,omitempty"`
647648

648649
// Name of the VolumeSnapshotClass to use.
649-
// +kubebuilder:validation:Required
650-
ClassName string `json:"className"`
650+
ClassName string `json:"className,omitempty"`
651651

652652
// Defines the Cron schedule for a VolumeSnapshot.
653653
// Follows the standard Cron schedule syntax:

0 commit comments

Comments
 (0)