@@ -2,11 +2,10 @@ apiVersion: apiextensions.k8s.io/v1
22kind : CustomResourceDefinition
33metadata :
44 annotations :
5- controller-gen.kubebuilder.io/version : v0.15.0
6- labels :
7- app.kubernetes.io/name : pgo
8- app.kubernetes.io/version : 5.7.4
5+ controller-gen.kubebuilder.io/version : v0.17.2
96 name : pgupgrades.postgres-operator.crunchydata.com
7+ labels :
8+ app.kubernetes.io/version : 5.8.0
109spec :
1110 group : postgres-operator.crunchydata.com
1211 names :
@@ -309,7 +308,7 @@ spec:
309308 pod labels will be ignored. The default value is empty.
310309 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
311310 Also, matchLabelKeys cannot be set when labelSelector isn't set.
312- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
311+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
313312 items :
314313 type : string
315314 type : array
@@ -324,7 +323,7 @@ spec:
324323 pod labels will be ignored. The default value is empty.
325324 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
326325 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
327- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
326+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
328327 items :
329328 type : string
330329 type : array
@@ -485,7 +484,7 @@ spec:
485484 pod labels will be ignored. The default value is empty.
486485 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
487486 Also, matchLabelKeys cannot be set when labelSelector isn't set.
488- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
487+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
489488 items :
490489 type : string
491490 type : array
@@ -500,7 +499,7 @@ spec:
500499 pod labels will be ignored. The default value is empty.
501500 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
502501 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
503- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
502+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
504503 items :
505504 type : string
506505 type : array
@@ -654,7 +653,7 @@ spec:
654653 pod labels will be ignored. The default value is empty.
655654 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
656655 Also, matchLabelKeys cannot be set when labelSelector isn't set.
657- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
656+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
658657 items :
659658 type : string
660659 type : array
@@ -669,7 +668,7 @@ spec:
669668 pod labels will be ignored. The default value is empty.
670669 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
671670 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
672- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
671+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
673672 items :
674673 type : string
675674 type : array
@@ -830,7 +829,7 @@ spec:
830829 pod labels will be ignored. The default value is empty.
831830 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
832831 Also, matchLabelKeys cannot be set when labelSelector isn't set.
833- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
832+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
834833 items :
835834 type : string
836835 type : array
@@ -845,7 +844,7 @@ spec:
845844 pod labels will be ignored. The default value is empty.
846845 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
847846 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
848- This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
847+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default) .
849848 items :
850849 type : string
851850 type : array
@@ -926,8 +925,9 @@ spec:
926925 type : object
927926 fromPostgresVersion :
928927 description : The major version of PostgreSQL before the upgrade.
928+ format : int32
929929 maximum : 17
930- minimum : 10
930+ minimum : 11
931931 type : integer
932932 image :
933933 description : The image name to use for major PostgreSQL upgrades.
@@ -941,24 +941,37 @@ spec:
941941 - Always
942942 - Never
943943 - IfNotPresent
944+ maxLength : 15
944945 type : string
945946 imagePullSecrets :
946947 description : |-
947948 The image pull secrets used to pull from a private registry.
948949 Changing this value causes all running PGUpgrade pods to restart.
949- https://k8s .io/docs/tasks/configure-pod-container/pull-image-private-registry/
950+ https://kubernetes .io/docs/tasks/configure-pod-container/pull-image-private-registry
950951 items :
951952 description : |-
952953 LocalObjectReference contains enough information to let you locate the
953954 referenced object inside the same namespace.
954955 properties :
955956 name :
956957 default : " "
957- description : ' Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
958+ description : |-
959+ Name of the referent.
960+ This field is effectively required, but due to backwards compatibility is
961+ allowed to be empty. Instances of this type with an empty value here are
962+ almost certainly wrong.
963+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
958964 type : string
959965 type : object
960966 x-kubernetes-map-type : atomic
961967 type : array
968+ jobs :
969+ description : |-
970+ The number of simultaneous processes pg_upgrade should use.
971+ More info: https://www.postgresql.org/docs/current/pgupgrade.html
972+ format : int32
973+ minimum : 0
974+ type : integer
962975 metadata :
963976 description : Metadata contains metadata for custom resources
964977 properties :
@@ -972,14 +985,14 @@ spec:
972985 type : object
973986 type : object
974987 postgresClusterName :
975- description : The name of the cluster to be updated
988+ description : The name of the Postgres cluster to upgrade.
976989 minLength : 1
977990 type : string
978991 priorityClassName :
979992 description : |-
980993 Priority class name for the PGUpgrade pod. Changing this
981994 value causes PGUpgrade pod to restart.
982- More info: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
995+ More info: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption
983996 type : string
984997 resources :
985998 description : Resource requirements for the PGUpgrade container.
@@ -989,11 +1002,9 @@ spec:
9891002 Claims lists the names of resources, defined in spec.resourceClaims,
9901003 that are used by this container.
9911004
992-
9931005 This is an alpha field and requires enabling the
9941006 DynamicResourceAllocation feature gate.
9951007
996-
9971008 This field is immutable. It can only be set for containers.
9981009 items :
9991010 description : ResourceClaim references one entry in PodSpec.ResourceClaims.
@@ -1004,6 +1015,12 @@ spec:
10041015 the Pod where this field is used. It makes that resource available
10051016 inside a container.
10061017 type : string
1018+ request :
1019+ description : |-
1020+ Request is the name chosen for a request in the referenced claim.
1021+ If empty, everything from the claim is made available, otherwise
1022+ only the result of this request.
1023+ type : string
10071024 required :
10081025 - name
10091026 type : object
@@ -1036,15 +1053,11 @@ spec:
10361053 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
10371054 type : object
10381055 type : object
1039- toPostgresImage :
1040- description : |-
1041- The image name to use for PostgreSQL containers after upgrade.
1042- When omitted, the value comes from an operator environment variable.
1043- type : string
10441056 toPostgresVersion :
10451057 description : The major version of PostgreSQL to be upgraded to.
1058+ format : int32
10461059 maximum : 17
1047- minimum : 10
1060+ minimum : 11
10481061 type : integer
10491062 tolerations :
10501063 description : |-
@@ -1087,19 +1100,35 @@ spec:
10871100 type : string
10881101 type : object
10891102 type : array
1103+ transferMethod :
1104+ description : |-
1105+ The method pg_upgrade should use to transfer files to the new cluster.
1106+ More info: https://www.postgresql.org/docs/current/pgupgrade.html
1107+ enum :
1108+ - Clone
1109+ - Copy
1110+ - CopyFileRange
1111+ - Link
1112+ maxLength : 15
1113+ type : string
10901114 required :
10911115 - fromPostgresVersion
10921116 - postgresClusterName
10931117 - toPostgresVersion
10941118 type : object
1119+ x-kubernetes-validations :
1120+ - rule : self.fromPostgresVersion < self.toPostgresVersion
1121+ - message : Only Copy or Link before PostgreSQL 12
1122+ rule : ' !has(self.transferMethod) || (self.toPostgresVersion < 12 ? self.transferMethod in ["Copy","Link"] : true)'
1123+ - message : Only Clone, Copy, or Link before PostgreSQL 17
1124+ rule : ' !has(self.transferMethod) || (self.toPostgresVersion < 17 ? self.transferMethod in ["Clone","Copy","Link"] : true)'
10951125 status :
10961126 description : PGUpgradeStatus defines the observed state of PGUpgrade
10971127 properties :
10981128 conditions :
10991129 description : conditions represent the observations of PGUpgrade's current state.
11001130 items :
1101- description : " Condition contains details for one aspect of the current state of this API Resource.\n ---\n This struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\t type FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \" Available\" , \" Progressing\" , and\
1102- \ \" Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\" conditions,omitempty\" patchStrategy:\" merge\" patchMergeKey:\" type\" protobuf:\" bytes,1,rep,name=conditions\" `\n\n\n\t // other fields\n\t }"
1131+ description : Condition contains details for one aspect of the current state of this API Resource.
11031132 properties :
11041133 lastTransitionTime :
11051134 description : |-
@@ -1140,12 +1169,7 @@ spec:
11401169 - Unknown
11411170 type : string
11421171 type :
1143- description : |-
1144- type of condition in CamelCase or in foo.example.com/CamelCase.
1145- ---
1146- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
1147- useful (see .node.status.conditions), the ability to deconflict is important.
1148- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
1172+ description : type of condition in CamelCase or in foo.example.com/CamelCase.
11491173 maxLength : 316
11501174 pattern : ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
11511175 type : string
0 commit comments