@@ -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) . 
313312items :
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) . 
328327items :
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) . 
489488items :
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) . 
504503items :
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) . 
658657items :
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) . 
673672items :
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) . 
834833items :
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) . 
849848items :
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 
950951items :
951952                    description : |- 
952953                      LocalObjectReference contains enough information to let you locate the 
953954                      referenced object inside the same namespace. 
954955properties :
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 
958964type : 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 
983996type : 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. 
9981009items :
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. 
10061017type : 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/ 
10371054type : 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:
10871100type : 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