github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/crds/dataprotection.kubeblocks.io_restores.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     4    annotations:
     5      controller-gen.kubebuilder.io/version: v0.12.1
     6    labels:
     7      app.kubernetes.io/name: kubeblocks
     8    name: restores.dataprotection.kubeblocks.io
     9  spec:
    10    group: dataprotection.kubeblocks.io
    11    names:
    12      categories:
    13      - kubeblocks
    14      - all
    15      kind: Restore
    16      listKind: RestoreList
    17      plural: restores
    18      singular: restore
    19    scope: Namespaced
    20    versions:
    21    - additionalPrinterColumns:
    22      - jsonPath: .spec.backup.name
    23        name: BACKUP
    24        type: string
    25      - description: Point in time for restoring
    26        jsonPath: .spec.restoreTime
    27        name: RESTORE-TIME
    28        type: string
    29      - description: Restore Status.
    30        jsonPath: .status.phase
    31        name: STATUS
    32        type: string
    33      - jsonPath: .status.duration
    34        name: DURATION
    35        type: string
    36      - jsonPath: .metadata.creationTimestamp
    37        name: CREATION-TIME
    38        type: string
    39      - jsonPath: .status.completionTimestamp
    40        name: COMPLETION-TIME
    41        type: string
    42      name: v1alpha1
    43      schema:
    44        openAPIV3Schema:
    45          description: Restore is the Schema for the restores API
    46          properties:
    47            apiVersion:
    48              description: 'APIVersion defines the versioned schema of this representation
    49                of an object. Servers should convert recognized schemas to the latest
    50                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    51              type: string
    52            kind:
    53              description: 'Kind is a string value representing the REST resource this
    54                object represents. Servers may infer this from the endpoint the client
    55                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    56              type: string
    57            metadata:
    58              type: object
    59            spec:
    60              description: RestoreSpec defines the desired state of Restore
    61              properties:
    62                backup:
    63                  description: 'backup to be restored. The restore behavior based on
    64                    the backup type: 1. Full: will be restored the full backup directly.
    65                    2. Incremental: will be restored sequentially from the most recent
    66                    full backup of this incremental backup. 3. Differential: will be
    67                    restored sequentially from the parent backup of the differential
    68                    backup. 4. Continuous: will find the most recent full backup at
    69                    this time point and the continuous backups after it to restore.'
    70                  properties:
    71                    name:
    72                      description: backup name
    73                      type: string
    74                    namespace:
    75                      description: backup namespace
    76                      type: string
    77                  required:
    78                  - name
    79                  - namespace
    80                  type: object
    81                  x-kubernetes-validations:
    82                  - message: forbidden to update spec.backupName
    83                    rule: self == oldSelf
    84                containerResources:
    85                  description: specified the required resources of restore job's container.
    86                  properties:
    87                    claims:
    88                      description: "Claims lists the names of resources, defined in
    89                        spec.resourceClaims, that are used by this container. \n This
    90                        is an alpha field and requires enabling the DynamicResourceAllocation
    91                        feature gate. \n This field is immutable. It can only be set
    92                        for containers."
    93                      items:
    94                        description: ResourceClaim references one entry in PodSpec.ResourceClaims.
    95                        properties:
    96                          name:
    97                            description: Name must match the name of one entry in pod.spec.resourceClaims
    98                              of the Pod where this field is used. It makes that resource
    99                              available inside a container.
   100                            type: string
   101                        required:
   102                        - name
   103                        type: object
   104                      type: array
   105                      x-kubernetes-list-map-keys:
   106                      - name
   107                      x-kubernetes-list-type: map
   108                    limits:
   109                      additionalProperties:
   110                        anyOf:
   111                        - type: integer
   112                        - type: string
   113                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   114                        x-kubernetes-int-or-string: true
   115                      description: 'Limits describes the maximum amount of compute resources
   116                        allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   117                      type: object
   118                    requests:
   119                      additionalProperties:
   120                        anyOf:
   121                        - type: integer
   122                        - type: string
   123                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   124                        x-kubernetes-int-or-string: true
   125                      description: 'Requests describes the minimum amount of compute
   126                        resources required. If Requests is omitted for a container,
   127                        it defaults to Limits if that is explicitly specified, otherwise
   128                        to an implementation-defined value. Requests cannot exceed Limits.
   129                        More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   130                      type: object
   131                  type: object
   132                env:
   133                  description: 'list of environment variables to set in the container
   134                    for restore and will be merged with the env of Backup and ActionSet.
   135                    The priority of merging is as follows: Restore env > Backup env
   136                    > ActionSet env.'
   137                  items:
   138                    description: EnvVar represents an environment variable present in
   139                      a Container.
   140                    properties:
   141                      name:
   142                        description: Name of the environment variable. Must be a C_IDENTIFIER.
   143                        type: string
   144                      value:
   145                        description: 'Variable references $(VAR_NAME) are expanded using
   146                          the previously defined environment variables in the container
   147                          and any service environment variables. If a variable cannot
   148                          be resolved, the reference in the input string will be unchanged.
   149                          Double $$ are reduced to a single $, which allows for escaping
   150                          the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
   151                          string literal "$(VAR_NAME)". Escaped references will never
   152                          be expanded, regardless of whether the variable exists or
   153                          not. Defaults to "".'
   154                        type: string
   155                      valueFrom:
   156                        description: Source for the environment variable's value. Cannot
   157                          be used if value is not empty.
   158                        properties:
   159                          configMapKeyRef:
   160                            description: Selects a key of a ConfigMap.
   161                            properties:
   162                              key:
   163                                description: The key to select.
   164                                type: string
   165                              name:
   166                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   167                                  TODO: Add other useful fields. apiVersion, kind, uid?'
   168                                type: string
   169                              optional:
   170                                description: Specify whether the ConfigMap or its key
   171                                  must be defined
   172                                type: boolean
   173                            required:
   174                            - key
   175                            type: object
   176                            x-kubernetes-map-type: atomic
   177                          fieldRef:
   178                            description: 'Selects a field of the pod: supports metadata.name,
   179                              metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
   180                              spec.nodeName, spec.serviceAccountName, status.hostIP,
   181                              status.podIP, status.podIPs.'
   182                            properties:
   183                              apiVersion:
   184                                description: Version of the schema the FieldPath is
   185                                  written in terms of, defaults to "v1".
   186                                type: string
   187                              fieldPath:
   188                                description: Path of the field to select in the specified
   189                                  API version.
   190                                type: string
   191                            required:
   192                            - fieldPath
   193                            type: object
   194                            x-kubernetes-map-type: atomic
   195                          resourceFieldRef:
   196                            description: 'Selects a resource of the container: only
   197                              resources limits and requests (limits.cpu, limits.memory,
   198                              limits.ephemeral-storage, requests.cpu, requests.memory
   199                              and requests.ephemeral-storage) are currently supported.'
   200                            properties:
   201                              containerName:
   202                                description: 'Container name: required for volumes,
   203                                  optional for env vars'
   204                                type: string
   205                              divisor:
   206                                anyOf:
   207                                - type: integer
   208                                - type: string
   209                                description: Specifies the output format of the exposed
   210                                  resources, defaults to "1"
   211                                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   212                                x-kubernetes-int-or-string: true
   213                              resource:
   214                                description: 'Required: resource to select'
   215                                type: string
   216                            required:
   217                            - resource
   218                            type: object
   219                            x-kubernetes-map-type: atomic
   220                          secretKeyRef:
   221                            description: Selects a key of a secret in the pod's namespace
   222                            properties:
   223                              key:
   224                                description: The key of the secret to select from.  Must
   225                                  be a valid secret key.
   226                                type: string
   227                              name:
   228                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   229                                  TODO: Add other useful fields. apiVersion, kind, uid?'
   230                                type: string
   231                              optional:
   232                                description: Specify whether the Secret or its key must
   233                                  be defined
   234                                type: boolean
   235                            required:
   236                            - key
   237                            type: object
   238                            x-kubernetes-map-type: atomic
   239                        type: object
   240                    required:
   241                    - name
   242                    type: object
   243                  type: array
   244                  x-kubernetes-preserve-unknown-fields: true
   245                prepareDataConfig:
   246                  description: configuration for the action of "prepareData" phase,
   247                    including the persistent volume claims that need to be restored
   248                    and scheduling strategy of temporary recovery pod.
   249                  properties:
   250                    dataSourceRef:
   251                      description: dataSourceRef describes the configuration when using
   252                        `persistentVolumeClaim.spec.dataSourceRef` method for restoring.
   253                        it describes the source volume of the backup targetVolumes and
   254                        how to mount path in the restoring container.
   255                      properties:
   256                        mountPath:
   257                          description: mountPath path within the restoring container
   258                            at which the volume should be mounted.
   259                          type: string
   260                        volumeSource:
   261                          description: volumeSource describes the volume will be restored
   262                            from the specified volume of the backup targetVolumes. required
   263                            if the backup uses volume snapshot.
   264                          type: string
   265                      type: object
   266                      x-kubernetes-validations:
   267                      - message: at least one exists for volumeSource and mountPath.
   268                        rule: self.volumeSource != '' || self.mountPath !=''
   269                      - message: forbidden to update spec.prepareDataConfig.dataSourceRef
   270                        rule: self == oldSelf
   271                    schedulingSpec:
   272                      description: scheduling spec for restoring pod.
   273                      properties:
   274                        affinity:
   275                          description: affinity is a group of affinity scheduling rules.
   276                            refer to https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
   277                          properties:
   278                            nodeAffinity:
   279                              description: Describes node affinity scheduling rules
   280                                for the pod.
   281                              properties:
   282                                preferredDuringSchedulingIgnoredDuringExecution:
   283                                  description: The scheduler will prefer to schedule
   284                                    pods to nodes that satisfy the affinity expressions
   285                                    specified by this field, but it may choose a node
   286                                    that violates one or more of the expressions. The
   287                                    node that is most preferred is the one with the
   288                                    greatest sum of weights, i.e. for each node that
   289                                    meets all of the scheduling requirements (resource
   290                                    request, requiredDuringScheduling affinity expressions,
   291                                    etc.), compute a sum by iterating through the elements
   292                                    of this field and adding "weight" to the sum if
   293                                    the node matches the corresponding matchExpressions;
   294                                    the node(s) with the highest sum are the most preferred.
   295                                  items:
   296                                    description: An empty preferred scheduling term
   297                                      matches all objects with implicit weight 0 (i.e.
   298                                      it's a no-op). A null preferred scheduling term
   299                                      matches no objects (i.e. is also a no-op).
   300                                    properties:
   301                                      preference:
   302                                        description: A node selector term, associated
   303                                          with the corresponding weight.
   304                                        properties:
   305                                          matchExpressions:
   306                                            description: A list of node selector requirements
   307                                              by node's labels.
   308                                            items:
   309                                              description: A node selector requirement
   310                                                is a selector that contains values,
   311                                                a key, and an operator that relates
   312                                                the key and values.
   313                                              properties:
   314                                                key:
   315                                                  description: The label key that the
   316                                                    selector applies to.
   317                                                  type: string
   318                                                operator:
   319                                                  description: Represents a key's relationship
   320                                                    to a set of values. Valid operators
   321                                                    are In, NotIn, Exists, DoesNotExist.
   322                                                    Gt, and Lt.
   323                                                  type: string
   324                                                values:
   325                                                  description: An array of string values.
   326                                                    If the operator is In or NotIn,
   327                                                    the values array must be non-empty.
   328                                                    If the operator is Exists or DoesNotExist,
   329                                                    the values array must be empty.
   330                                                    If the operator is Gt or Lt, the
   331                                                    values array must have a single
   332                                                    element, which will be interpreted
   333                                                    as an integer. This array is replaced
   334                                                    during a strategic merge patch.
   335                                                  items:
   336                                                    type: string
   337                                                  type: array
   338                                              required:
   339                                              - key
   340                                              - operator
   341                                              type: object
   342                                            type: array
   343                                          matchFields:
   344                                            description: A list of node selector requirements
   345                                              by node's fields.
   346                                            items:
   347                                              description: A node selector requirement
   348                                                is a selector that contains values,
   349                                                a key, and an operator that relates
   350                                                the key and values.
   351                                              properties:
   352                                                key:
   353                                                  description: The label key that the
   354                                                    selector applies to.
   355                                                  type: string
   356                                                operator:
   357                                                  description: Represents a key's relationship
   358                                                    to a set of values. Valid operators
   359                                                    are In, NotIn, Exists, DoesNotExist.
   360                                                    Gt, and Lt.
   361                                                  type: string
   362                                                values:
   363                                                  description: An array of string values.
   364                                                    If the operator is In or NotIn,
   365                                                    the values array must be non-empty.
   366                                                    If the operator is Exists or DoesNotExist,
   367                                                    the values array must be empty.
   368                                                    If the operator is Gt or Lt, the
   369                                                    values array must have a single
   370                                                    element, which will be interpreted
   371                                                    as an integer. This array is replaced
   372                                                    during a strategic merge patch.
   373                                                  items:
   374                                                    type: string
   375                                                  type: array
   376                                              required:
   377                                              - key
   378                                              - operator
   379                                              type: object
   380                                            type: array
   381                                        type: object
   382                                        x-kubernetes-map-type: atomic
   383                                      weight:
   384                                        description: Weight associated with matching
   385                                          the corresponding nodeSelectorTerm, in the
   386                                          range 1-100.
   387                                        format: int32
   388                                        type: integer
   389                                    required:
   390                                    - preference
   391                                    - weight
   392                                    type: object
   393                                  type: array
   394                                requiredDuringSchedulingIgnoredDuringExecution:
   395                                  description: If the affinity requirements specified
   396                                    by this field are not met at scheduling time, the
   397                                    pod will not be scheduled onto the node. If the
   398                                    affinity requirements specified by this field cease
   399                                    to be met at some point during pod execution (e.g.
   400                                    due to an update), the system may or may not try
   401                                    to eventually evict the pod from its node.
   402                                  properties:
   403                                    nodeSelectorTerms:
   404                                      description: Required. A list of node selector
   405                                        terms. The terms are ORed.
   406                                      items:
   407                                        description: A null or empty node selector term
   408                                          matches no objects. The requirements of them
   409                                          are ANDed. The TopologySelectorTerm type implements
   410                                          a subset of the NodeSelectorTerm.
   411                                        properties:
   412                                          matchExpressions:
   413                                            description: A list of node selector requirements
   414                                              by node's labels.
   415                                            items:
   416                                              description: A node selector requirement
   417                                                is a selector that contains values,
   418                                                a key, and an operator that relates
   419                                                the key and values.
   420                                              properties:
   421                                                key:
   422                                                  description: The label key that the
   423                                                    selector applies to.
   424                                                  type: string
   425                                                operator:
   426                                                  description: Represents a key's relationship
   427                                                    to a set of values. Valid operators
   428                                                    are In, NotIn, Exists, DoesNotExist.
   429                                                    Gt, and Lt.
   430                                                  type: string
   431                                                values:
   432                                                  description: An array of string values.
   433                                                    If the operator is In or NotIn,
   434                                                    the values array must be non-empty.
   435                                                    If the operator is Exists or DoesNotExist,
   436                                                    the values array must be empty.
   437                                                    If the operator is Gt or Lt, the
   438                                                    values array must have a single
   439                                                    element, which will be interpreted
   440                                                    as an integer. This array is replaced
   441                                                    during a strategic merge patch.
   442                                                  items:
   443                                                    type: string
   444                                                  type: array
   445                                              required:
   446                                              - key
   447                                              - operator
   448                                              type: object
   449                                            type: array
   450                                          matchFields:
   451                                            description: A list of node selector requirements
   452                                              by node's fields.
   453                                            items:
   454                                              description: A node selector requirement
   455                                                is a selector that contains values,
   456                                                a key, and an operator that relates
   457                                                the key and values.
   458                                              properties:
   459                                                key:
   460                                                  description: The label key that the
   461                                                    selector applies to.
   462                                                  type: string
   463                                                operator:
   464                                                  description: Represents a key's relationship
   465                                                    to a set of values. Valid operators
   466                                                    are In, NotIn, Exists, DoesNotExist.
   467                                                    Gt, and Lt.
   468                                                  type: string
   469                                                values:
   470                                                  description: An array of string values.
   471                                                    If the operator is In or NotIn,
   472                                                    the values array must be non-empty.
   473                                                    If the operator is Exists or DoesNotExist,
   474                                                    the values array must be empty.
   475                                                    If the operator is Gt or Lt, the
   476                                                    values array must have a single
   477                                                    element, which will be interpreted
   478                                                    as an integer. This array is replaced
   479                                                    during a strategic merge patch.
   480                                                  items:
   481                                                    type: string
   482                                                  type: array
   483                                              required:
   484                                              - key
   485                                              - operator
   486                                              type: object
   487                                            type: array
   488                                        type: object
   489                                        x-kubernetes-map-type: atomic
   490                                      type: array
   491                                  required:
   492                                  - nodeSelectorTerms
   493                                  type: object
   494                                  x-kubernetes-map-type: atomic
   495                              type: object
   496                            podAffinity:
   497                              description: Describes pod affinity scheduling rules (e.g.
   498                                co-locate this pod in the same node, zone, etc. as some
   499                                other pod(s)).
   500                              properties:
   501                                preferredDuringSchedulingIgnoredDuringExecution:
   502                                  description: The scheduler will prefer to schedule
   503                                    pods to nodes that satisfy the affinity expressions
   504                                    specified by this field, but it may choose a node
   505                                    that violates one or more of the expressions. The
   506                                    node that is most preferred is the one with the
   507                                    greatest sum of weights, i.e. for each node that
   508                                    meets all of the scheduling requirements (resource
   509                                    request, requiredDuringScheduling affinity expressions,
   510                                    etc.), compute a sum by iterating through the elements
   511                                    of this field and adding "weight" to the sum if
   512                                    the node has pods which matches the corresponding
   513                                    podAffinityTerm; the node(s) with the highest sum
   514                                    are the most preferred.
   515                                  items:
   516                                    description: The weights of all of the matched WeightedPodAffinityTerm
   517                                      fields are added per-node to find the most preferred
   518                                      node(s)
   519                                    properties:
   520                                      podAffinityTerm:
   521                                        description: Required. A pod affinity term,
   522                                          associated with the corresponding weight.
   523                                        properties:
   524                                          labelSelector:
   525                                            description: A label query over a set of
   526                                              resources, in this case pods.
   527                                            properties:
   528                                              matchExpressions:
   529                                                description: matchExpressions is a list
   530                                                  of label selector requirements. The
   531                                                  requirements are ANDed.
   532                                                items:
   533                                                  description: A label selector requirement
   534                                                    is a selector that contains values,
   535                                                    a key, and an operator that relates
   536                                                    the key and values.
   537                                                  properties:
   538                                                    key:
   539                                                      description: key is the label
   540                                                        key that the selector applies
   541                                                        to.
   542                                                      type: string
   543                                                    operator:
   544                                                      description: operator represents
   545                                                        a key's relationship to a set
   546                                                        of values. Valid operators are
   547                                                        In, NotIn, Exists and DoesNotExist.
   548                                                      type: string
   549                                                    values:
   550                                                      description: values is an array
   551                                                        of string values. If the operator
   552                                                        is In or NotIn, the values array
   553                                                        must be non-empty. If the operator
   554                                                        is Exists or DoesNotExist, the
   555                                                        values array must be empty.
   556                                                        This array is replaced during
   557                                                        a strategic merge patch.
   558                                                      items:
   559                                                        type: string
   560                                                      type: array
   561                                                  required:
   562                                                  - key
   563                                                  - operator
   564                                                  type: object
   565                                                type: array
   566                                              matchLabels:
   567                                                additionalProperties:
   568                                                  type: string
   569                                                description: matchLabels is a map of
   570                                                  {key,value} pairs. A single {key,value}
   571                                                  in the matchLabels map is equivalent
   572                                                  to an element of matchExpressions,
   573                                                  whose key field is "key", the operator
   574                                                  is "In", and the values array contains
   575                                                  only "value". The requirements are
   576                                                  ANDed.
   577                                                type: object
   578                                            type: object
   579                                            x-kubernetes-map-type: atomic
   580                                          namespaceSelector:
   581                                            description: A label query over the set
   582                                              of namespaces that the term applies to.
   583                                              The term is applied to the union of the
   584                                              namespaces selected by this field and
   585                                              the ones listed in the namespaces field.
   586                                              null selector and null or empty namespaces
   587                                              list means "this pod's namespace". An
   588                                              empty selector ({}) matches all namespaces.
   589                                            properties:
   590                                              matchExpressions:
   591                                                description: matchExpressions is a list
   592                                                  of label selector requirements. The
   593                                                  requirements are ANDed.
   594                                                items:
   595                                                  description: A label selector requirement
   596                                                    is a selector that contains values,
   597                                                    a key, and an operator that relates
   598                                                    the key and values.
   599                                                  properties:
   600                                                    key:
   601                                                      description: key is the label
   602                                                        key that the selector applies
   603                                                        to.
   604                                                      type: string
   605                                                    operator:
   606                                                      description: operator represents
   607                                                        a key's relationship to a set
   608                                                        of values. Valid operators are
   609                                                        In, NotIn, Exists and DoesNotExist.
   610                                                      type: string
   611                                                    values:
   612                                                      description: values is an array
   613                                                        of string values. If the operator
   614                                                        is In or NotIn, the values array
   615                                                        must be non-empty. If the operator
   616                                                        is Exists or DoesNotExist, the
   617                                                        values array must be empty.
   618                                                        This array is replaced during
   619                                                        a strategic merge patch.
   620                                                      items:
   621                                                        type: string
   622                                                      type: array
   623                                                  required:
   624                                                  - key
   625                                                  - operator
   626                                                  type: object
   627                                                type: array
   628                                              matchLabels:
   629                                                additionalProperties:
   630                                                  type: string
   631                                                description: matchLabels is a map of
   632                                                  {key,value} pairs. A single {key,value}
   633                                                  in the matchLabels map is equivalent
   634                                                  to an element of matchExpressions,
   635                                                  whose key field is "key", the operator
   636                                                  is "In", and the values array contains
   637                                                  only "value". The requirements are
   638                                                  ANDed.
   639                                                type: object
   640                                            type: object
   641                                            x-kubernetes-map-type: atomic
   642                                          namespaces:
   643                                            description: namespaces specifies a static
   644                                              list of namespace names that the term
   645                                              applies to. The term is applied to the
   646                                              union of the namespaces listed in this
   647                                              field and the ones selected by namespaceSelector.
   648                                              null or empty namespaces list and null
   649                                              namespaceSelector means "this pod's namespace".
   650                                            items:
   651                                              type: string
   652                                            type: array
   653                                          topologyKey:
   654                                            description: This pod should be co-located
   655                                              (affinity) or not co-located (anti-affinity)
   656                                              with the pods matching the labelSelector
   657                                              in the specified namespaces, where co-located
   658                                              is defined as running on a node whose
   659                                              value of the label with key topologyKey
   660                                              matches that of any node on which any
   661                                              of the selected pods is running. Empty
   662                                              topologyKey is not allowed.
   663                                            type: string
   664                                        required:
   665                                        - topologyKey
   666                                        type: object
   667                                      weight:
   668                                        description: weight associated with matching
   669                                          the corresponding podAffinityTerm, in the
   670                                          range 1-100.
   671                                        format: int32
   672                                        type: integer
   673                                    required:
   674                                    - podAffinityTerm
   675                                    - weight
   676                                    type: object
   677                                  type: array
   678                                requiredDuringSchedulingIgnoredDuringExecution:
   679                                  description: If the affinity requirements specified
   680                                    by this field are not met at scheduling time, the
   681                                    pod will not be scheduled onto the node. If the
   682                                    affinity requirements specified by this field cease
   683                                    to be met at some point during pod execution (e.g.
   684                                    due to a pod label update), the system may or may
   685                                    not try to eventually evict the pod from its node.
   686                                    When there are multiple elements, the lists of nodes
   687                                    corresponding to each podAffinityTerm are intersected,
   688                                    i.e. all terms must be satisfied.
   689                                  items:
   690                                    description: Defines a set of pods (namely those
   691                                      matching the labelSelector relative to the given
   692                                      namespace(s)) that this pod should be co-located
   693                                      (affinity) or not co-located (anti-affinity) with,
   694                                      where co-located is defined as running on a node
   695                                      whose value of the label with key <topologyKey>
   696                                      matches that of any node on which a pod of the
   697                                      set of pods is running
   698                                    properties:
   699                                      labelSelector:
   700                                        description: A label query over a set of resources,
   701                                          in this case pods.
   702                                        properties:
   703                                          matchExpressions:
   704                                            description: matchExpressions is a list
   705                                              of label selector requirements. The requirements
   706                                              are ANDed.
   707                                            items:
   708                                              description: A label selector requirement
   709                                                is a selector that contains values,
   710                                                a key, and an operator that relates
   711                                                the key and values.
   712                                              properties:
   713                                                key:
   714                                                  description: key is the label key
   715                                                    that the selector applies to.
   716                                                  type: string
   717                                                operator:
   718                                                  description: operator represents a
   719                                                    key's relationship to a set of values.
   720                                                    Valid operators are In, NotIn, Exists
   721                                                    and DoesNotExist.
   722                                                  type: string
   723                                                values:
   724                                                  description: values is an array of
   725                                                    string values. If the operator is
   726                                                    In or NotIn, the values array must
   727                                                    be non-empty. If the operator is
   728                                                    Exists or DoesNotExist, the values
   729                                                    array must be empty. This array
   730                                                    is replaced during a strategic merge
   731                                                    patch.
   732                                                  items:
   733                                                    type: string
   734                                                  type: array
   735                                              required:
   736                                              - key
   737                                              - operator
   738                                              type: object
   739                                            type: array
   740                                          matchLabels:
   741                                            additionalProperties:
   742                                              type: string
   743                                            description: matchLabels is a map of {key,value}
   744                                              pairs. A single {key,value} in the matchLabels
   745                                              map is equivalent to an element of matchExpressions,
   746                                              whose key field is "key", the operator
   747                                              is "In", and the values array contains
   748                                              only "value". The requirements are ANDed.
   749                                            type: object
   750                                        type: object
   751                                        x-kubernetes-map-type: atomic
   752                                      namespaceSelector:
   753                                        description: A label query over the set of namespaces
   754                                          that the term applies to. The term is applied
   755                                          to the union of the namespaces selected by
   756                                          this field and the ones listed in the namespaces
   757                                          field. null selector and null or empty namespaces
   758                                          list means "this pod's namespace". An empty
   759                                          selector ({}) matches all namespaces.
   760                                        properties:
   761                                          matchExpressions:
   762                                            description: matchExpressions is a list
   763                                              of label selector requirements. The requirements
   764                                              are ANDed.
   765                                            items:
   766                                              description: A label selector requirement
   767                                                is a selector that contains values,
   768                                                a key, and an operator that relates
   769                                                the key and values.
   770                                              properties:
   771                                                key:
   772                                                  description: key is the label key
   773                                                    that the selector applies to.
   774                                                  type: string
   775                                                operator:
   776                                                  description: operator represents a
   777                                                    key's relationship to a set of values.
   778                                                    Valid operators are In, NotIn, Exists
   779                                                    and DoesNotExist.
   780                                                  type: string
   781                                                values:
   782                                                  description: values is an array of
   783                                                    string values. If the operator is
   784                                                    In or NotIn, the values array must
   785                                                    be non-empty. If the operator is
   786                                                    Exists or DoesNotExist, the values
   787                                                    array must be empty. This array
   788                                                    is replaced during a strategic merge
   789                                                    patch.
   790                                                  items:
   791                                                    type: string
   792                                                  type: array
   793                                              required:
   794                                              - key
   795                                              - operator
   796                                              type: object
   797                                            type: array
   798                                          matchLabels:
   799                                            additionalProperties:
   800                                              type: string
   801                                            description: matchLabels is a map of {key,value}
   802                                              pairs. A single {key,value} in the matchLabels
   803                                              map is equivalent to an element of matchExpressions,
   804                                              whose key field is "key", the operator
   805                                              is "In", and the values array contains
   806                                              only "value". The requirements are ANDed.
   807                                            type: object
   808                                        type: object
   809                                        x-kubernetes-map-type: atomic
   810                                      namespaces:
   811                                        description: namespaces specifies a static list
   812                                          of namespace names that the term applies to.
   813                                          The term is applied to the union of the namespaces
   814                                          listed in this field and the ones selected
   815                                          by namespaceSelector. null or empty namespaces
   816                                          list and null namespaceSelector means "this
   817                                          pod's namespace".
   818                                        items:
   819                                          type: string
   820                                        type: array
   821                                      topologyKey:
   822                                        description: This pod should be co-located (affinity)
   823                                          or not co-located (anti-affinity) with the
   824                                          pods matching the labelSelector in the specified
   825                                          namespaces, where co-located is defined as
   826                                          running on a node whose value of the label
   827                                          with key topologyKey matches that of any node
   828                                          on which any of the selected pods is running.
   829                                          Empty topologyKey is not allowed.
   830                                        type: string
   831                                    required:
   832                                    - topologyKey
   833                                    type: object
   834                                  type: array
   835                              type: object
   836                            podAntiAffinity:
   837                              description: Describes pod anti-affinity scheduling rules
   838                                (e.g. avoid putting this pod in the same node, zone,
   839                                etc. as some other pod(s)).
   840                              properties:
   841                                preferredDuringSchedulingIgnoredDuringExecution:
   842                                  description: The scheduler will prefer to schedule
   843                                    pods to nodes that satisfy the anti-affinity expressions
   844                                    specified by this field, but it may choose a node
   845                                    that violates one or more of the expressions. The
   846                                    node that is most preferred is the one with the
   847                                    greatest sum of weights, i.e. for each node that
   848                                    meets all of the scheduling requirements (resource
   849                                    request, requiredDuringScheduling anti-affinity
   850                                    expressions, etc.), compute a sum by iterating through
   851                                    the elements of this field and adding "weight" to
   852                                    the sum if the node has pods which matches the corresponding
   853                                    podAffinityTerm; the node(s) with the highest sum
   854                                    are the most preferred.
   855                                  items:
   856                                    description: The weights of all of the matched WeightedPodAffinityTerm
   857                                      fields are added per-node to find the most preferred
   858                                      node(s)
   859                                    properties:
   860                                      podAffinityTerm:
   861                                        description: Required. A pod affinity term,
   862                                          associated with the corresponding weight.
   863                                        properties:
   864                                          labelSelector:
   865                                            description: A label query over a set of
   866                                              resources, in this case pods.
   867                                            properties:
   868                                              matchExpressions:
   869                                                description: matchExpressions is a list
   870                                                  of label selector requirements. The
   871                                                  requirements are ANDed.
   872                                                items:
   873                                                  description: A label selector requirement
   874                                                    is a selector that contains values,
   875                                                    a key, and an operator that relates
   876                                                    the key and values.
   877                                                  properties:
   878                                                    key:
   879                                                      description: key is the label
   880                                                        key that the selector applies
   881                                                        to.
   882                                                      type: string
   883                                                    operator:
   884                                                      description: operator represents
   885                                                        a key's relationship to a set
   886                                                        of values. Valid operators are
   887                                                        In, NotIn, Exists and DoesNotExist.
   888                                                      type: string
   889                                                    values:
   890                                                      description: values is an array
   891                                                        of string values. If the operator
   892                                                        is In or NotIn, the values array
   893                                                        must be non-empty. If the operator
   894                                                        is Exists or DoesNotExist, the
   895                                                        values array must be empty.
   896                                                        This array is replaced during
   897                                                        a strategic merge patch.
   898                                                      items:
   899                                                        type: string
   900                                                      type: array
   901                                                  required:
   902                                                  - key
   903                                                  - operator
   904                                                  type: object
   905                                                type: array
   906                                              matchLabels:
   907                                                additionalProperties:
   908                                                  type: string
   909                                                description: matchLabels is a map of
   910                                                  {key,value} pairs. A single {key,value}
   911                                                  in the matchLabels map is equivalent
   912                                                  to an element of matchExpressions,
   913                                                  whose key field is "key", the operator
   914                                                  is "In", and the values array contains
   915                                                  only "value". The requirements are
   916                                                  ANDed.
   917                                                type: object
   918                                            type: object
   919                                            x-kubernetes-map-type: atomic
   920                                          namespaceSelector:
   921                                            description: A label query over the set
   922                                              of namespaces that the term applies to.
   923                                              The term is applied to the union of the
   924                                              namespaces selected by this field and
   925                                              the ones listed in the namespaces field.
   926                                              null selector and null or empty namespaces
   927                                              list means "this pod's namespace". An
   928                                              empty selector ({}) matches all namespaces.
   929                                            properties:
   930                                              matchExpressions:
   931                                                description: matchExpressions is a list
   932                                                  of label selector requirements. The
   933                                                  requirements are ANDed.
   934                                                items:
   935                                                  description: A label selector requirement
   936                                                    is a selector that contains values,
   937                                                    a key, and an operator that relates
   938                                                    the key and values.
   939                                                  properties:
   940                                                    key:
   941                                                      description: key is the label
   942                                                        key that the selector applies
   943                                                        to.
   944                                                      type: string
   945                                                    operator:
   946                                                      description: operator represents
   947                                                        a key's relationship to a set
   948                                                        of values. Valid operators are
   949                                                        In, NotIn, Exists and DoesNotExist.
   950                                                      type: string
   951                                                    values:
   952                                                      description: values is an array
   953                                                        of string values. If the operator
   954                                                        is In or NotIn, the values array
   955                                                        must be non-empty. If the operator
   956                                                        is Exists or DoesNotExist, the
   957                                                        values array must be empty.
   958                                                        This array is replaced during
   959                                                        a strategic merge patch.
   960                                                      items:
   961                                                        type: string
   962                                                      type: array
   963                                                  required:
   964                                                  - key
   965                                                  - operator
   966                                                  type: object
   967                                                type: array
   968                                              matchLabels:
   969                                                additionalProperties:
   970                                                  type: string
   971                                                description: matchLabels is a map of
   972                                                  {key,value} pairs. A single {key,value}
   973                                                  in the matchLabels map is equivalent
   974                                                  to an element of matchExpressions,
   975                                                  whose key field is "key", the operator
   976                                                  is "In", and the values array contains
   977                                                  only "value". The requirements are
   978                                                  ANDed.
   979                                                type: object
   980                                            type: object
   981                                            x-kubernetes-map-type: atomic
   982                                          namespaces:
   983                                            description: namespaces specifies a static
   984                                              list of namespace names that the term
   985                                              applies to. The term is applied to the
   986                                              union of the namespaces listed in this
   987                                              field and the ones selected by namespaceSelector.
   988                                              null or empty namespaces list and null
   989                                              namespaceSelector means "this pod's namespace".
   990                                            items:
   991                                              type: string
   992                                            type: array
   993                                          topologyKey:
   994                                            description: This pod should be co-located
   995                                              (affinity) or not co-located (anti-affinity)
   996                                              with the pods matching the labelSelector
   997                                              in the specified namespaces, where co-located
   998                                              is defined as running on a node whose
   999                                              value of the label with key topologyKey
  1000                                              matches that of any node on which any
  1001                                              of the selected pods is running. Empty
  1002                                              topologyKey is not allowed.
  1003                                            type: string
  1004                                        required:
  1005                                        - topologyKey
  1006                                        type: object
  1007                                      weight:
  1008                                        description: weight associated with matching
  1009                                          the corresponding podAffinityTerm, in the
  1010                                          range 1-100.
  1011                                        format: int32
  1012                                        type: integer
  1013                                    required:
  1014                                    - podAffinityTerm
  1015                                    - weight
  1016                                    type: object
  1017                                  type: array
  1018                                requiredDuringSchedulingIgnoredDuringExecution:
  1019                                  description: If the anti-affinity requirements specified
  1020                                    by this field are not met at scheduling time, the
  1021                                    pod will not be scheduled onto the node. If the
  1022                                    anti-affinity requirements specified by this field
  1023                                    cease to be met at some point during pod execution
  1024                                    (e.g. due to a pod label update), the system may
  1025                                    or may not try to eventually evict the pod from
  1026                                    its node. When there are multiple elements, the
  1027                                    lists of nodes corresponding to each podAffinityTerm
  1028                                    are intersected, i.e. all terms must be satisfied.
  1029                                  items:
  1030                                    description: Defines a set of pods (namely those
  1031                                      matching the labelSelector relative to the given
  1032                                      namespace(s)) that this pod should be co-located
  1033                                      (affinity) or not co-located (anti-affinity) with,
  1034                                      where co-located is defined as running on a node
  1035                                      whose value of the label with key <topologyKey>
  1036                                      matches that of any node on which a pod of the
  1037                                      set of pods is running
  1038                                    properties:
  1039                                      labelSelector:
  1040                                        description: A label query over a set of resources,
  1041                                          in this case pods.
  1042                                        properties:
  1043                                          matchExpressions:
  1044                                            description: matchExpressions is a list
  1045                                              of label selector requirements. The requirements
  1046                                              are ANDed.
  1047                                            items:
  1048                                              description: A label selector requirement
  1049                                                is a selector that contains values,
  1050                                                a key, and an operator that relates
  1051                                                the key and values.
  1052                                              properties:
  1053                                                key:
  1054                                                  description: key is the label key
  1055                                                    that the selector applies to.
  1056                                                  type: string
  1057                                                operator:
  1058                                                  description: operator represents a
  1059                                                    key's relationship to a set of values.
  1060                                                    Valid operators are In, NotIn, Exists
  1061                                                    and DoesNotExist.
  1062                                                  type: string
  1063                                                values:
  1064                                                  description: values is an array of
  1065                                                    string values. If the operator is
  1066                                                    In or NotIn, the values array must
  1067                                                    be non-empty. If the operator is
  1068                                                    Exists or DoesNotExist, the values
  1069                                                    array must be empty. This array
  1070                                                    is replaced during a strategic merge
  1071                                                    patch.
  1072                                                  items:
  1073                                                    type: string
  1074                                                  type: array
  1075                                              required:
  1076                                              - key
  1077                                              - operator
  1078                                              type: object
  1079                                            type: array
  1080                                          matchLabels:
  1081                                            additionalProperties:
  1082                                              type: string
  1083                                            description: matchLabels is a map of {key,value}
  1084                                              pairs. A single {key,value} in the matchLabels
  1085                                              map is equivalent to an element of matchExpressions,
  1086                                              whose key field is "key", the operator
  1087                                              is "In", and the values array contains
  1088                                              only "value". The requirements are ANDed.
  1089                                            type: object
  1090                                        type: object
  1091                                        x-kubernetes-map-type: atomic
  1092                                      namespaceSelector:
  1093                                        description: A label query over the set of namespaces
  1094                                          that the term applies to. The term is applied
  1095                                          to the union of the namespaces selected by
  1096                                          this field and the ones listed in the namespaces
  1097                                          field. null selector and null or empty namespaces
  1098                                          list means "this pod's namespace". An empty
  1099                                          selector ({}) matches all namespaces.
  1100                                        properties:
  1101                                          matchExpressions:
  1102                                            description: matchExpressions is a list
  1103                                              of label selector requirements. The requirements
  1104                                              are ANDed.
  1105                                            items:
  1106                                              description: A label selector requirement
  1107                                                is a selector that contains values,
  1108                                                a key, and an operator that relates
  1109                                                the key and values.
  1110                                              properties:
  1111                                                key:
  1112                                                  description: key is the label key
  1113                                                    that the selector applies to.
  1114                                                  type: string
  1115                                                operator:
  1116                                                  description: operator represents a
  1117                                                    key's relationship to a set of values.
  1118                                                    Valid operators are In, NotIn, Exists
  1119                                                    and DoesNotExist.
  1120                                                  type: string
  1121                                                values:
  1122                                                  description: values is an array of
  1123                                                    string values. If the operator is
  1124                                                    In or NotIn, the values array must
  1125                                                    be non-empty. If the operator is
  1126                                                    Exists or DoesNotExist, the values
  1127                                                    array must be empty. This array
  1128                                                    is replaced during a strategic merge
  1129                                                    patch.
  1130                                                  items:
  1131                                                    type: string
  1132                                                  type: array
  1133                                              required:
  1134                                              - key
  1135                                              - operator
  1136                                              type: object
  1137                                            type: array
  1138                                          matchLabels:
  1139                                            additionalProperties:
  1140                                              type: string
  1141                                            description: matchLabels is a map of {key,value}
  1142                                              pairs. A single {key,value} in the matchLabels
  1143                                              map is equivalent to an element of matchExpressions,
  1144                                              whose key field is "key", the operator
  1145                                              is "In", and the values array contains
  1146                                              only "value". The requirements are ANDed.
  1147                                            type: object
  1148                                        type: object
  1149                                        x-kubernetes-map-type: atomic
  1150                                      namespaces:
  1151                                        description: namespaces specifies a static list
  1152                                          of namespace names that the term applies to.
  1153                                          The term is applied to the union of the namespaces
  1154                                          listed in this field and the ones selected
  1155                                          by namespaceSelector. null or empty namespaces
  1156                                          list and null namespaceSelector means "this
  1157                                          pod's namespace".
  1158                                        items:
  1159                                          type: string
  1160                                        type: array
  1161                                      topologyKey:
  1162                                        description: This pod should be co-located (affinity)
  1163                                          or not co-located (anti-affinity) with the
  1164                                          pods matching the labelSelector in the specified
  1165                                          namespaces, where co-located is defined as
  1166                                          running on a node whose value of the label
  1167                                          with key topologyKey matches that of any node
  1168                                          on which any of the selected pods is running.
  1169                                          Empty topologyKey is not allowed.
  1170                                        type: string
  1171                                    required:
  1172                                    - topologyKey
  1173                                    type: object
  1174                                  type: array
  1175                              type: object
  1176                          type: object
  1177                        nodeName:
  1178                          description: nodeName is a request to schedule this pod onto
  1179                            a specific node. If it is non-empty, the scheduler simply
  1180                            schedules this pod onto that node, assuming that it fits
  1181                            resource requirements.
  1182                          type: string
  1183                        nodeSelector:
  1184                          additionalProperties:
  1185                            type: string
  1186                          description: 'nodeSelector is a selector which must be true
  1187                            for the pod to fit on a node. Selector which must match
  1188                            a node''s labels for the pod to be scheduled on that node.
  1189                            More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  1190                          type: object
  1191                          x-kubernetes-map-type: atomic
  1192                        schedulerName:
  1193                          description: If specified, the pod will be dispatched by specified
  1194                            scheduler. If not specified, the pod will be dispatched
  1195                            by default scheduler.
  1196                          type: string
  1197                        tolerations:
  1198                          description: the restoring pod's tolerations.
  1199                          items:
  1200                            description: The pod this Toleration is attached to tolerates
  1201                              any taint that matches the triple <key,value,effect> using
  1202                              the matching operator <operator>.
  1203                            properties:
  1204                              effect:
  1205                                description: Effect indicates the taint effect to match.
  1206                                  Empty means match all taint effects. When specified,
  1207                                  allowed values are NoSchedule, PreferNoSchedule and
  1208                                  NoExecute.
  1209                                type: string
  1210                              key:
  1211                                description: Key is the taint key that the toleration
  1212                                  applies to. Empty means match all taint keys. If the
  1213                                  key is empty, operator must be Exists; this combination
  1214                                  means to match all values and all keys.
  1215                                type: string
  1216                              operator:
  1217                                description: Operator represents a key's relationship
  1218                                  to the value. Valid operators are Exists and Equal.
  1219                                  Defaults to Equal. Exists is equivalent to wildcard
  1220                                  for value, so that a pod can tolerate all taints of
  1221                                  a particular category.
  1222                                type: string
  1223                              tolerationSeconds:
  1224                                description: TolerationSeconds represents the period
  1225                                  of time the toleration (which must be of effect NoExecute,
  1226                                  otherwise this field is ignored) tolerates the taint.
  1227                                  By default, it is not set, which means tolerate the
  1228                                  taint forever (do not evict). Zero and negative values
  1229                                  will be treated as 0 (evict immediately) by the system.
  1230                                format: int64
  1231                                type: integer
  1232                              value:
  1233                                description: Value is the taint value the toleration
  1234                                  matches to. If the operator is Exists, the value should
  1235                                  be empty, otherwise just a regular string.
  1236                                type: string
  1237                            type: object
  1238                          type: array
  1239                        topologySpreadConstraints:
  1240                          description: topologySpreadConstraints describes how a group
  1241                            of pods ought to spread across topology domains. Scheduler
  1242                            will schedule pods in a way which abides by the constraints.
  1243                            refer to https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
  1244                          items:
  1245                            description: TopologySpreadConstraint specifies how to spread
  1246                              matching pods among the given topology.
  1247                            properties:
  1248                              labelSelector:
  1249                                description: LabelSelector is used to find matching
  1250                                  pods. Pods that match this label selector are counted
  1251                                  to determine the number of pods in their corresponding
  1252                                  topology domain.
  1253                                properties:
  1254                                  matchExpressions:
  1255                                    description: matchExpressions is a list of label
  1256                                      selector requirements. The requirements are ANDed.
  1257                                    items:
  1258                                      description: A label selector requirement is a
  1259                                        selector that contains values, a key, and an
  1260                                        operator that relates the key and values.
  1261                                      properties:
  1262                                        key:
  1263                                          description: key is the label key that the
  1264                                            selector applies to.
  1265                                          type: string
  1266                                        operator:
  1267                                          description: operator represents a key's relationship
  1268                                            to a set of values. Valid operators are
  1269                                            In, NotIn, Exists and DoesNotExist.
  1270                                          type: string
  1271                                        values:
  1272                                          description: values is an array of string
  1273                                            values. If the operator is In or NotIn,
  1274                                            the values array must be non-empty. If the
  1275                                            operator is Exists or DoesNotExist, the
  1276                                            values array must be empty. This array is
  1277                                            replaced during a strategic merge patch.
  1278                                          items:
  1279                                            type: string
  1280                                          type: array
  1281                                      required:
  1282                                      - key
  1283                                      - operator
  1284                                      type: object
  1285                                    type: array
  1286                                  matchLabels:
  1287                                    additionalProperties:
  1288                                      type: string
  1289                                    description: matchLabels is a map of {key,value}
  1290                                      pairs. A single {key,value} in the matchLabels
  1291                                      map is equivalent to an element of matchExpressions,
  1292                                      whose key field is "key", the operator is "In",
  1293                                      and the values array contains only "value". The
  1294                                      requirements are ANDed.
  1295                                    type: object
  1296                                type: object
  1297                                x-kubernetes-map-type: atomic
  1298                              matchLabelKeys:
  1299                                description: "MatchLabelKeys is a set of pod label keys
  1300                                  to select the pods over which spreading will be calculated.
  1301                                  The keys are used to lookup values from the incoming
  1302                                  pod labels, those key-value labels are ANDed with
  1303                                  labelSelector to select the group of existing pods
  1304                                  over which spreading will be calculated for the incoming
  1305                                  pod. The same key is forbidden to exist in both MatchLabelKeys
  1306                                  and LabelSelector. MatchLabelKeys cannot be set when
  1307                                  LabelSelector isn't set. Keys that don't exist in
  1308                                  the incoming pod labels will be ignored. A null or
  1309                                  empty list means only match against labelSelector.
  1310                                  \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread
  1311                                  feature gate to be enabled (enabled by default)."
  1312                                items:
  1313                                  type: string
  1314                                type: array
  1315                                x-kubernetes-list-type: atomic
  1316                              maxSkew:
  1317                                description: 'MaxSkew describes the degree to which
  1318                                  pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
  1319                                  it is the maximum permitted difference between the
  1320                                  number of matching pods in the target topology and
  1321                                  the global minimum. The global minimum is the minimum
  1322                                  number of matching pods in an eligible domain or zero
  1323                                  if the number of eligible domains is less than MinDomains.
  1324                                  For example, in a 3-zone cluster, MaxSkew is set to
  1325                                  1, and pods with the same labelSelector spread as
  1326                                  2/2/1: In this case, the global minimum is 1. | zone1
  1327                                  | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew
  1328                                  is 1, incoming pod can only be scheduled to zone3
  1329                                  to become 2/2/2; scheduling it onto zone1(zone2) would
  1330                                  make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1).
  1331                                  - if MaxSkew is 2, incoming pod can be scheduled onto
  1332                                  any zone. When `whenUnsatisfiable=ScheduleAnyway`,
  1333                                  it is used to give higher precedence to topologies
  1334                                  that satisfy it. It''s a required field. Default value
  1335                                  is 1 and 0 is not allowed.'
  1336                                format: int32
  1337                                type: integer
  1338                              minDomains:
  1339                                description: "MinDomains indicates a minimum number
  1340                                  of eligible domains. When the number of eligible domains
  1341                                  with matching topology keys is less than minDomains,
  1342                                  Pod Topology Spread treats \"global minimum\" as 0,
  1343                                  and then the calculation of Skew is performed. And
  1344                                  when the number of eligible domains with matching
  1345                                  topology keys equals or greater than minDomains, this
  1346                                  value has no effect on scheduling. As a result, when
  1347                                  the number of eligible domains is less than minDomains,
  1348                                  scheduler won't schedule more than maxSkew Pods to
  1349                                  those domains. If value is nil, the constraint behaves
  1350                                  as if MinDomains is equal to 1. Valid values are integers
  1351                                  greater than 0. When value is not nil, WhenUnsatisfiable
  1352                                  must be DoNotSchedule. \n For example, in a 3-zone
  1353                                  cluster, MaxSkew is set to 2, MinDomains is set to
  1354                                  5 and pods with the same labelSelector spread as 2/2/2:
  1355                                  | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  |
  1356                                  The number of domains is less than 5(MinDomains),
  1357                                  so \"global minimum\" is treated as 0. In this situation,
  1358                                  new pod with the same labelSelector cannot be scheduled,
  1359                                  because computed skew will be 3(3 - 0) if new Pod
  1360                                  is scheduled to any of the three zones, it will violate
  1361                                  MaxSkew. \n This is a beta field and requires the
  1362                                  MinDomainsInPodTopologySpread feature gate to be enabled
  1363                                  (enabled by default)."
  1364                                format: int32
  1365                                type: integer
  1366                              nodeAffinityPolicy:
  1367                                description: "NodeAffinityPolicy indicates how we will
  1368                                  treat Pod's nodeAffinity/nodeSelector when calculating
  1369                                  pod topology spread skew. Options are: - Honor: only
  1370                                  nodes matching nodeAffinity/nodeSelector are included
  1371                                  in the calculations. - Ignore: nodeAffinity/nodeSelector
  1372                                  are ignored. All nodes are included in the calculations.
  1373                                  \n If this value is nil, the behavior is equivalent
  1374                                  to the Honor policy. This is a beta-level feature
  1375                                  default enabled by the NodeInclusionPolicyInPodTopologySpread
  1376                                  feature flag."
  1377                                type: string
  1378                              nodeTaintsPolicy:
  1379                                description: "NodeTaintsPolicy indicates how we will
  1380                                  treat node taints when calculating pod topology spread
  1381                                  skew. Options are: - Honor: nodes without taints,
  1382                                  along with tainted nodes for which the incoming pod
  1383                                  has a toleration, are included. - Ignore: node taints
  1384                                  are ignored. All nodes are included. \n If this value
  1385                                  is nil, the behavior is equivalent to the Ignore policy.
  1386                                  This is a beta-level feature default enabled by the
  1387                                  NodeInclusionPolicyInPodTopologySpread feature flag."
  1388                                type: string
  1389                              topologyKey:
  1390                                description: TopologyKey is the key of node labels.
  1391                                  Nodes that have a label with this key and identical
  1392                                  values are considered to be in the same topology.
  1393                                  We consider each <key, value> as a "bucket", and try
  1394                                  to put balanced number of pods into each bucket. We
  1395                                  define a domain as a particular instance of a topology.
  1396                                  Also, we define an eligible domain as a domain whose
  1397                                  nodes meet the requirements of nodeAffinityPolicy
  1398                                  and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
  1399                                  each Node is a domain of that topology. And, if TopologyKey
  1400                                  is "topology.kubernetes.io/zone", each zone is a domain
  1401                                  of that topology. It's a required field.
  1402                                type: string
  1403                              whenUnsatisfiable:
  1404                                description: 'WhenUnsatisfiable indicates how to deal
  1405                                  with a pod if it doesn''t satisfy the spread constraint.
  1406                                  - DoNotSchedule (default) tells the scheduler not
  1407                                  to schedule it. - ScheduleAnyway tells the scheduler
  1408                                  to schedule the pod in any location, but giving higher
  1409                                  precedence to topologies that would help reduce the
  1410                                  skew. A constraint is considered "Unsatisfiable" for
  1411                                  an incoming pod if and only if every possible node
  1412                                  assignment for that pod would violate "MaxSkew" on
  1413                                  some topology. For example, in a 3-zone cluster, MaxSkew
  1414                                  is set to 1, and pods with the same labelSelector
  1415                                  spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P
  1416                                  |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule,
  1417                                  incoming pod can only be scheduled to zone2(zone3)
  1418                                  to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3)
  1419                                  satisfies MaxSkew(1). In other words, the cluster
  1420                                  can still be imbalanced, but scheduler won''t make
  1421                                  it *more* imbalanced. It''s a required field.'
  1422                                type: string
  1423                            required:
  1424                            - maxSkew
  1425                            - topologyKey
  1426                            - whenUnsatisfiable
  1427                            type: object
  1428                          type: array
  1429                      type: object
  1430                      x-kubernetes-validations:
  1431                      - message: forbidden to update spec.prepareDataConfig.schedulingSpec
  1432                        rule: self == oldSelf
  1433                    volumeClaimRestorePolicy:
  1434                      default: Parallel
  1435                      description: 'VolumeClaimRestorePolicy defines restore policy
  1436                        for persistent volume claim. Supported policies are as follows:
  1437                        1. Parallel: parallel recovery of persistent volume claim. 2.
  1438                        Serial: restore the persistent volume claim in sequence, and
  1439                        wait until the previous persistent volume claim is restored
  1440                        before restoring a new one.'
  1441                      enum:
  1442                      - Parallel
  1443                      - Serial
  1444                      type: string
  1445                    volumeClaims:
  1446                      description: volumeClaims defines the persistent Volume claims
  1447                        that need to be restored and mount them together into the restore
  1448                        job. these persistent Volume claims will be created if not exist.
  1449                      items:
  1450                        properties:
  1451                          metadata:
  1452                            description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1453                            properties:
  1454                              annotations:
  1455                                additionalProperties:
  1456                                  type: string
  1457                                type: object
  1458                              finalizers:
  1459                                items:
  1460                                  type: string
  1461                                type: array
  1462                              labels:
  1463                                additionalProperties:
  1464                                  type: string
  1465                                type: object
  1466                              name:
  1467                                type: string
  1468                              namespace:
  1469                                type: string
  1470                            type: object
  1471                          mountPath:
  1472                            description: mountPath path within the restoring container
  1473                              at which the volume should be mounted.
  1474                            type: string
  1475                          volumeClaimSpec:
  1476                            description: volumeClaimSpec defines the desired characteristics
  1477                              of a persistent volume claim.
  1478                            properties:
  1479                              accessModes:
  1480                                description: 'accessModes contains the desired access
  1481                                  modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1482                                items:
  1483                                  type: string
  1484                                type: array
  1485                              dataSource:
  1486                                description: 'dataSource field can be used to specify
  1487                                  either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  1488                                  * An existing PVC (PersistentVolumeClaim) If the provisioner
  1489                                  or an external controller can support the specified
  1490                                  data source, it will create a new volume based on
  1491                                  the contents of the specified data source. When the
  1492                                  AnyVolumeDataSource feature gate is enabled, dataSource
  1493                                  contents will be copied to dataSourceRef, and dataSourceRef
  1494                                  contents will be copied to dataSource when dataSourceRef.namespace
  1495                                  is not specified. If the namespace is specified, then
  1496                                  dataSourceRef will not be copied to dataSource.'
  1497                                properties:
  1498                                  apiGroup:
  1499                                    description: APIGroup is the group for the resource
  1500                                      being referenced. If APIGroup is not specified,
  1501                                      the specified Kind must be in the core API group.
  1502                                      For any other third-party types, APIGroup is required.
  1503                                    type: string
  1504                                  kind:
  1505                                    description: Kind is the type of resource being
  1506                                      referenced
  1507                                    type: string
  1508                                  name:
  1509                                    description: Name is the name of resource being
  1510                                      referenced
  1511                                    type: string
  1512                                required:
  1513                                - kind
  1514                                - name
  1515                                type: object
  1516                                x-kubernetes-map-type: atomic
  1517                              dataSourceRef:
  1518                                description: 'dataSourceRef specifies the object from
  1519                                  which to populate the volume with data, if a non-empty
  1520                                  volume is desired. This may be any object from a non-empty
  1521                                  API group (non core object) or a PersistentVolumeClaim
  1522                                  object. When this field is specified, volume binding
  1523                                  will only succeed if the type of the specified object
  1524                                  matches some installed volume populator or dynamic
  1525                                  provisioner. This field will replace the functionality
  1526                                  of the dataSource field and as such if both fields
  1527                                  are non-empty, they must have the same value. For
  1528                                  backwards compatibility, when namespace isn''t specified
  1529                                  in dataSourceRef, both fields (dataSource and dataSourceRef)
  1530                                  will be set to the same value automatically if one
  1531                                  of them is empty and the other is non-empty. When
  1532                                  namespace is specified in dataSourceRef, dataSource
  1533                                  isn''t set to the same value and must be empty. There
  1534                                  are three important differences between dataSource
  1535                                  and dataSourceRef: * While dataSource only allows
  1536                                  two specific types of objects, dataSourceRef allows
  1537                                  any non-core object, as well as PersistentVolumeClaim
  1538                                  objects. * While dataSource ignores disallowed values
  1539                                  (dropping them), dataSourceRef preserves all values,
  1540                                  and generates an error if a disallowed value is specified.
  1541                                  * While dataSource only allows local objects, dataSourceRef
  1542                                  allows objects in any namespaces. (Beta) Using this
  1543                                  field requires the AnyVolumeDataSource feature gate
  1544                                  to be enabled. (Alpha) Using the namespace field of
  1545                                  dataSourceRef requires the CrossNamespaceVolumeDataSource
  1546                                  feature gate to be enabled.'
  1547                                properties:
  1548                                  apiGroup:
  1549                                    description: APIGroup is the group for the resource
  1550                                      being referenced. If APIGroup is not specified,
  1551                                      the specified Kind must be in the core API group.
  1552                                      For any other third-party types, APIGroup is required.
  1553                                    type: string
  1554                                  kind:
  1555                                    description: Kind is the type of resource being
  1556                                      referenced
  1557                                    type: string
  1558                                  name:
  1559                                    description: Name is the name of resource being
  1560                                      referenced
  1561                                    type: string
  1562                                  namespace:
  1563                                    description: Namespace is the namespace of resource
  1564                                      being referenced Note that when a namespace is
  1565                                      specified, a gateway.networking.k8s.io/ReferenceGrant
  1566                                      object is required in the referent namespace to
  1567                                      allow that namespace's owner to accept the reference.
  1568                                      See the ReferenceGrant documentation for details.
  1569                                      (Alpha) This field requires the CrossNamespaceVolumeDataSource
  1570                                      feature gate to be enabled.
  1571                                    type: string
  1572                                required:
  1573                                - kind
  1574                                - name
  1575                                type: object
  1576                              resources:
  1577                                description: 'resources represents the minimum resources
  1578                                  the volume should have. If RecoverVolumeExpansionFailure
  1579                                  feature is enabled users are allowed to specify resource
  1580                                  requirements that are lower than previous value but
  1581                                  must still be higher than capacity recorded in the
  1582                                  status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1583                                properties:
  1584                                  claims:
  1585                                    description: "Claims lists the names of resources,
  1586                                      defined in spec.resourceClaims, that are used
  1587                                      by this container. \n This is an alpha field and
  1588                                      requires enabling the DynamicResourceAllocation
  1589                                      feature gate. \n This field is immutable. It can
  1590                                      only be set for containers."
  1591                                    items:
  1592                                      description: ResourceClaim references one entry
  1593                                        in PodSpec.ResourceClaims.
  1594                                      properties:
  1595                                        name:
  1596                                          description: Name must match the name of one
  1597                                            entry in pod.spec.resourceClaims of the
  1598                                            Pod where this field is used. It makes that
  1599                                            resource available inside a container.
  1600                                          type: string
  1601                                      required:
  1602                                      - name
  1603                                      type: object
  1604                                    type: array
  1605                                    x-kubernetes-list-map-keys:
  1606                                    - name
  1607                                    x-kubernetes-list-type: map
  1608                                  limits:
  1609                                    additionalProperties:
  1610                                      anyOf:
  1611                                      - type: integer
  1612                                      - type: string
  1613                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1614                                      x-kubernetes-int-or-string: true
  1615                                    description: 'Limits describes the maximum amount
  1616                                      of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1617                                    type: object
  1618                                  requests:
  1619                                    additionalProperties:
  1620                                      anyOf:
  1621                                      - type: integer
  1622                                      - type: string
  1623                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1624                                      x-kubernetes-int-or-string: true
  1625                                    description: 'Requests describes the minimum amount
  1626                                      of compute resources required. If Requests is
  1627                                      omitted for a container, it defaults to Limits
  1628                                      if that is explicitly specified, otherwise to
  1629                                      an implementation-defined value. Requests cannot
  1630                                      exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1631                                    type: object
  1632                                type: object
  1633                              selector:
  1634                                description: selector is a label query over volumes
  1635                                  to consider for binding.
  1636                                properties:
  1637                                  matchExpressions:
  1638                                    description: matchExpressions is a list of label
  1639                                      selector requirements. The requirements are ANDed.
  1640                                    items:
  1641                                      description: A label selector requirement is a
  1642                                        selector that contains values, a key, and an
  1643                                        operator that relates the key and values.
  1644                                      properties:
  1645                                        key:
  1646                                          description: key is the label key that the
  1647                                            selector applies to.
  1648                                          type: string
  1649                                        operator:
  1650                                          description: operator represents a key's relationship
  1651                                            to a set of values. Valid operators are
  1652                                            In, NotIn, Exists and DoesNotExist.
  1653                                          type: string
  1654                                        values:
  1655                                          description: values is an array of string
  1656                                            values. If the operator is In or NotIn,
  1657                                            the values array must be non-empty. If the
  1658                                            operator is Exists or DoesNotExist, the
  1659                                            values array must be empty. This array is
  1660                                            replaced during a strategic merge patch.
  1661                                          items:
  1662                                            type: string
  1663                                          type: array
  1664                                      required:
  1665                                      - key
  1666                                      - operator
  1667                                      type: object
  1668                                    type: array
  1669                                  matchLabels:
  1670                                    additionalProperties:
  1671                                      type: string
  1672                                    description: matchLabels is a map of {key,value}
  1673                                      pairs. A single {key,value} in the matchLabels
  1674                                      map is equivalent to an element of matchExpressions,
  1675                                      whose key field is "key", the operator is "In",
  1676                                      and the values array contains only "value". The
  1677                                      requirements are ANDed.
  1678                                    type: object
  1679                                type: object
  1680                                x-kubernetes-map-type: atomic
  1681                              storageClassName:
  1682                                description: 'storageClassName is the name of the StorageClass
  1683                                  required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1684                                type: string
  1685                              volumeMode:
  1686                                description: volumeMode defines what type of volume
  1687                                  is required by the claim. Value of Filesystem is implied
  1688                                  when not included in claim spec.
  1689                                type: string
  1690                              volumeName:
  1691                                description: volumeName is the binding reference to
  1692                                  the PersistentVolume backing this claim.
  1693                                type: string
  1694                            type: object
  1695                          volumeSource:
  1696                            description: volumeSource describes the volume will be restored
  1697                              from the specified volume of the backup targetVolumes.
  1698                              required if the backup uses volume snapshot.
  1699                            type: string
  1700                        required:
  1701                        - metadata
  1702                        - volumeClaimSpec
  1703                        type: object
  1704                        x-kubernetes-validations:
  1705                        - message: at least one exists for volumeSource and mountPath.
  1706                          rule: self.volumeSource != '' || self.mountPath !=''
  1707                      type: array
  1708                      x-kubernetes-validations:
  1709                      - message: forbidden to update spec.prepareDataConfig.volumeClaims
  1710                        rule: self == oldSelf
  1711                    volumeClaimsTemplate:
  1712                      description: volumeClaimsTemplate defines a template to build
  1713                        persistent Volume claims that need to be restored. these claims
  1714                        will be created in an orderly manner based on the number of
  1715                        replicas or reused if already exist.
  1716                      properties:
  1717                        replicas:
  1718                          description: the replicas of persistent volume claim which
  1719                            need to be created and restored. the format of created claim
  1720                            name is "<template-name>-<index>".
  1721                          format: int32
  1722                          minimum: 1
  1723                          type: integer
  1724                        startingIndex:
  1725                          description: the starting index for the created persistent
  1726                            volume claim by according to template. minimum is 0.
  1727                          format: int32
  1728                          minimum: 0
  1729                          type: integer
  1730                        templates:
  1731                          description: templates is a list of volume claims.
  1732                          items:
  1733                            properties:
  1734                              metadata:
  1735                                description: 'Standard object''s metadata. More info:
  1736                                  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
  1737                                properties:
  1738                                  annotations:
  1739                                    additionalProperties:
  1740                                      type: string
  1741                                    type: object
  1742                                  finalizers:
  1743                                    items:
  1744                                      type: string
  1745                                    type: array
  1746                                  labels:
  1747                                    additionalProperties:
  1748                                      type: string
  1749                                    type: object
  1750                                  name:
  1751                                    type: string
  1752                                  namespace:
  1753                                    type: string
  1754                                type: object
  1755                              mountPath:
  1756                                description: mountPath path within the restoring container
  1757                                  at which the volume should be mounted.
  1758                                type: string
  1759                              volumeClaimSpec:
  1760                                description: volumeClaimSpec defines the desired characteristics
  1761                                  of a persistent volume claim.
  1762                                properties:
  1763                                  accessModes:
  1764                                    description: 'accessModes contains the desired access
  1765                                      modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  1766                                    items:
  1767                                      type: string
  1768                                    type: array
  1769                                  dataSource:
  1770                                    description: 'dataSource field can be used to specify
  1771                                      either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  1772                                      * An existing PVC (PersistentVolumeClaim) If the
  1773                                      provisioner or an external controller can support
  1774                                      the specified data source, it will create a new
  1775                                      volume based on the contents of the specified
  1776                                      data source. When the AnyVolumeDataSource feature
  1777                                      gate is enabled, dataSource contents will be copied
  1778                                      to dataSourceRef, and dataSourceRef contents will
  1779                                      be copied to dataSource when dataSourceRef.namespace
  1780                                      is not specified. If the namespace is specified,
  1781                                      then dataSourceRef will not be copied to dataSource.'
  1782                                    properties:
  1783                                      apiGroup:
  1784                                        description: APIGroup is the group for the resource
  1785                                          being referenced. If APIGroup is not specified,
  1786                                          the specified Kind must be in the core API
  1787                                          group. For any other third-party types, APIGroup
  1788                                          is required.
  1789                                        type: string
  1790                                      kind:
  1791                                        description: Kind is the type of resource being
  1792                                          referenced
  1793                                        type: string
  1794                                      name:
  1795                                        description: Name is the name of resource being
  1796                                          referenced
  1797                                        type: string
  1798                                    required:
  1799                                    - kind
  1800                                    - name
  1801                                    type: object
  1802                                    x-kubernetes-map-type: atomic
  1803                                  dataSourceRef:
  1804                                    description: 'dataSourceRef specifies the object
  1805                                      from which to populate the volume with data, if
  1806                                      a non-empty volume is desired. This may be any
  1807                                      object from a non-empty API group (non core object)
  1808                                      or a PersistentVolumeClaim object. When this field
  1809                                      is specified, volume binding will only succeed
  1810                                      if the type of the specified object matches some
  1811                                      installed volume populator or dynamic provisioner.
  1812                                      This field will replace the functionality of the
  1813                                      dataSource field and as such if both fields are
  1814                                      non-empty, they must have the same value. For
  1815                                      backwards compatibility, when namespace isn''t
  1816                                      specified in dataSourceRef, both fields (dataSource
  1817                                      and dataSourceRef) will be set to the same value
  1818                                      automatically if one of them is empty and the
  1819                                      other is non-empty. When namespace is specified
  1820                                      in dataSourceRef, dataSource isn''t set to the
  1821                                      same value and must be empty. There are three
  1822                                      important differences between dataSource and dataSourceRef:
  1823                                      * While dataSource only allows two specific types
  1824                                      of objects, dataSourceRef allows any non-core
  1825                                      object, as well as PersistentVolumeClaim objects.
  1826                                      * While dataSource ignores disallowed values (dropping
  1827                                      them), dataSourceRef preserves all values, and
  1828                                      generates an error if a disallowed value is specified.
  1829                                      * While dataSource only allows local objects,
  1830                                      dataSourceRef allows objects in any namespaces.
  1831                                      (Beta) Using this field requires the AnyVolumeDataSource
  1832                                      feature gate to be enabled. (Alpha) Using the
  1833                                      namespace field of dataSourceRef requires the
  1834                                      CrossNamespaceVolumeDataSource feature gate to
  1835                                      be enabled.'
  1836                                    properties:
  1837                                      apiGroup:
  1838                                        description: APIGroup is the group for the resource
  1839                                          being referenced. If APIGroup is not specified,
  1840                                          the specified Kind must be in the core API
  1841                                          group. For any other third-party types, APIGroup
  1842                                          is required.
  1843                                        type: string
  1844                                      kind:
  1845                                        description: Kind is the type of resource being
  1846                                          referenced
  1847                                        type: string
  1848                                      name:
  1849                                        description: Name is the name of resource being
  1850                                          referenced
  1851                                        type: string
  1852                                      namespace:
  1853                                        description: Namespace is the namespace of resource
  1854                                          being referenced Note that when a namespace
  1855                                          is specified, a gateway.networking.k8s.io/ReferenceGrant
  1856                                          object is required in the referent namespace
  1857                                          to allow that namespace's owner to accept
  1858                                          the reference. See the ReferenceGrant documentation
  1859                                          for details. (Alpha) This field requires the
  1860                                          CrossNamespaceVolumeDataSource feature gate
  1861                                          to be enabled.
  1862                                        type: string
  1863                                    required:
  1864                                    - kind
  1865                                    - name
  1866                                    type: object
  1867                                  resources:
  1868                                    description: 'resources represents the minimum resources
  1869                                      the volume should have. If RecoverVolumeExpansionFailure
  1870                                      feature is enabled users are allowed to specify
  1871                                      resource requirements that are lower than previous
  1872                                      value but must still be higher than capacity recorded
  1873                                      in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
  1874                                    properties:
  1875                                      claims:
  1876                                        description: "Claims lists the names of resources,
  1877                                          defined in spec.resourceClaims, that are used
  1878                                          by this container. \n This is an alpha field
  1879                                          and requires enabling the DynamicResourceAllocation
  1880                                          feature gate. \n This field is immutable.
  1881                                          It can only be set for containers."
  1882                                        items:
  1883                                          description: ResourceClaim references one
  1884                                            entry in PodSpec.ResourceClaims.
  1885                                          properties:
  1886                                            name:
  1887                                              description: Name must match the name
  1888                                                of one entry in pod.spec.resourceClaims
  1889                                                of the Pod where this field is used.
  1890                                                It makes that resource available inside
  1891                                                a container.
  1892                                              type: string
  1893                                          required:
  1894                                          - name
  1895                                          type: object
  1896                                        type: array
  1897                                        x-kubernetes-list-map-keys:
  1898                                        - name
  1899                                        x-kubernetes-list-type: map
  1900                                      limits:
  1901                                        additionalProperties:
  1902                                          anyOf:
  1903                                          - type: integer
  1904                                          - type: string
  1905                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1906                                          x-kubernetes-int-or-string: true
  1907                                        description: 'Limits describes the maximum amount
  1908                                          of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1909                                        type: object
  1910                                      requests:
  1911                                        additionalProperties:
  1912                                          anyOf:
  1913                                          - type: integer
  1914                                          - type: string
  1915                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1916                                          x-kubernetes-int-or-string: true
  1917                                        description: 'Requests describes the minimum
  1918                                          amount of compute resources required. If Requests
  1919                                          is omitted for a container, it defaults to
  1920                                          Limits if that is explicitly specified, otherwise
  1921                                          to an implementation-defined value. Requests
  1922                                          cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
  1923                                        type: object
  1924                                    type: object
  1925                                  selector:
  1926                                    description: selector is a label query over volumes
  1927                                      to consider for binding.
  1928                                    properties:
  1929                                      matchExpressions:
  1930                                        description: matchExpressions is a list of label
  1931                                          selector requirements. The requirements are
  1932                                          ANDed.
  1933                                        items:
  1934                                          description: A label selector requirement
  1935                                            is a selector that contains values, a key,
  1936                                            and an operator that relates the key and
  1937                                            values.
  1938                                          properties:
  1939                                            key:
  1940                                              description: key is the label key that
  1941                                                the selector applies to.
  1942                                              type: string
  1943                                            operator:
  1944                                              description: operator represents a key's
  1945                                                relationship to a set of values. Valid
  1946                                                operators are In, NotIn, Exists and
  1947                                                DoesNotExist.
  1948                                              type: string
  1949                                            values:
  1950                                              description: values is an array of string
  1951                                                values. If the operator is In or NotIn,
  1952                                                the values array must be non-empty.
  1953                                                If the operator is Exists or DoesNotExist,
  1954                                                the values array must be empty. This
  1955                                                array is replaced during a strategic
  1956                                                merge patch.
  1957                                              items:
  1958                                                type: string
  1959                                              type: array
  1960                                          required:
  1961                                          - key
  1962                                          - operator
  1963                                          type: object
  1964                                        type: array
  1965                                      matchLabels:
  1966                                        additionalProperties:
  1967                                          type: string
  1968                                        description: matchLabels is a map of {key,value}
  1969                                          pairs. A single {key,value} in the matchLabels
  1970                                          map is equivalent to an element of matchExpressions,
  1971                                          whose key field is "key", the operator is
  1972                                          "In", and the values array contains only "value".
  1973                                          The requirements are ANDed.
  1974                                        type: object
  1975                                    type: object
  1976                                    x-kubernetes-map-type: atomic
  1977                                  storageClassName:
  1978                                    description: 'storageClassName is the name of the
  1979                                      StorageClass required by the claim. More info:
  1980                                      https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
  1981                                    type: string
  1982                                  volumeMode:
  1983                                    description: volumeMode defines what type of volume
  1984                                      is required by the claim. Value of Filesystem
  1985                                      is implied when not included in claim spec.
  1986                                    type: string
  1987                                  volumeName:
  1988                                    description: volumeName is the binding reference
  1989                                      to the PersistentVolume backing this claim.
  1990                                    type: string
  1991                                type: object
  1992                              volumeSource:
  1993                                description: volumeSource describes the volume will
  1994                                  be restored from the specified volume of the backup
  1995                                  targetVolumes. required if the backup uses volume
  1996                                  snapshot.
  1997                                type: string
  1998                            required:
  1999                            - metadata
  2000                            - volumeClaimSpec
  2001                            type: object
  2002                            x-kubernetes-validations:
  2003                            - message: at least one exists for volumeSource and mountPath.
  2004                              rule: self.volumeSource != '' || self.mountPath !=''
  2005                          type: array
  2006                      required:
  2007                      - replicas
  2008                      - templates
  2009                      type: object
  2010                      x-kubernetes-validations:
  2011                      - message: forbidden to update spec.prepareDataConfig.volumeClaimsTemplate
  2012                        rule: self == oldSelf
  2013                  required:
  2014                  - volumeClaimRestorePolicy
  2015                  type: object
  2016                readyConfig:
  2017                  description: configuration for the action of "postReady" phase.
  2018                  properties:
  2019                    connectionCredential:
  2020                      description: credential template used for creating a connection
  2021                        credential
  2022                      properties:
  2023                        hostKey:
  2024                          description: hostKey specifies the map key of the host in
  2025                            the connection credential secret.
  2026                          type: string
  2027                        passwordKey:
  2028                          default: password
  2029                          description: passwordKey specifies the map key of the password
  2030                            in the connection credential secret. This password will
  2031                            be saved in the backup annotation for full backup. You can
  2032                            use the environment variable DP_ENCRYPTION_KEY to specify
  2033                            encryption key.
  2034                          type: string
  2035                        portKey:
  2036                          description: portKey specifies the map key of the port in
  2037                            the connection credential secret.
  2038                          type: string
  2039                        secretName:
  2040                          description: secretName refers to the Secret object that contains
  2041                            the connection credential.
  2042                          pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
  2043                          type: string
  2044                        usernameKey:
  2045                          default: username
  2046                          description: usernameKey specifies the map key of the user
  2047                            in the connection credential secret.
  2048                          type: string
  2049                      required:
  2050                      - secretName
  2051                      type: object
  2052                    execAction:
  2053                      description: configuration for exec action.
  2054                      properties:
  2055                        target:
  2056                          description: execActionTarget defines the pods that need to
  2057                            be executed for the exec action. will execute on all pods
  2058                            that meet the conditions.
  2059                          properties:
  2060                            podSelector:
  2061                              description: kubectl exec in all selected pods.
  2062                              properties:
  2063                                matchExpressions:
  2064                                  description: matchExpressions is a list of label selector
  2065                                    requirements. The requirements are ANDed.
  2066                                  items:
  2067                                    description: A label selector requirement is a selector
  2068                                      that contains values, a key, and an operator that
  2069                                      relates the key and values.
  2070                                    properties:
  2071                                      key:
  2072                                        description: key is the label key that the selector
  2073                                          applies to.
  2074                                        type: string
  2075                                      operator:
  2076                                        description: operator represents a key's relationship
  2077                                          to a set of values. Valid operators are In,
  2078                                          NotIn, Exists and DoesNotExist.
  2079                                        type: string
  2080                                      values:
  2081                                        description: values is an array of string values.
  2082                                          If the operator is In or NotIn, the values
  2083                                          array must be non-empty. If the operator is
  2084                                          Exists or DoesNotExist, the values array must
  2085                                          be empty. This array is replaced during a
  2086                                          strategic merge patch.
  2087                                        items:
  2088                                          type: string
  2089                                        type: array
  2090                                    required:
  2091                                    - key
  2092                                    - operator
  2093                                    type: object
  2094                                  type: array
  2095                                matchLabels:
  2096                                  additionalProperties:
  2097                                    type: string
  2098                                  description: matchLabels is a map of {key,value} pairs.
  2099                                    A single {key,value} in the matchLabels map is equivalent
  2100                                    to an element of matchExpressions, whose key field
  2101                                    is "key", the operator is "In", and the values array
  2102                                    contains only "value". The requirements are ANDed.
  2103                                  type: object
  2104                              type: object
  2105                              x-kubernetes-map-type: atomic
  2106                          required:
  2107                          - podSelector
  2108                          type: object
  2109                      type: object
  2110                    jobAction:
  2111                      description: configuration for job action.
  2112                      properties:
  2113                        target:
  2114                          description: jobActionTarget defines the pod that need to
  2115                            be executed for the job action. will select a pod that meets
  2116                            the conditions to execute.
  2117                          properties:
  2118                            podSelector:
  2119                              description: select one of the pods which selected by
  2120                                labels to build the job spec, such as mount required
  2121                                volumes and inject built-in env of the selected pod.
  2122                              properties:
  2123                                matchExpressions:
  2124                                  description: matchExpressions is a list of label selector
  2125                                    requirements. The requirements are ANDed.
  2126                                  items:
  2127                                    description: A label selector requirement is a selector
  2128                                      that contains values, a key, and an operator that
  2129                                      relates the key and values.
  2130                                    properties:
  2131                                      key:
  2132                                        description: key is the label key that the selector
  2133                                          applies to.
  2134                                        type: string
  2135                                      operator:
  2136                                        description: operator represents a key's relationship
  2137                                          to a set of values. Valid operators are In,
  2138                                          NotIn, Exists and DoesNotExist.
  2139                                        type: string
  2140                                      values:
  2141                                        description: values is an array of string values.
  2142                                          If the operator is In or NotIn, the values
  2143                                          array must be non-empty. If the operator is
  2144                                          Exists or DoesNotExist, the values array must
  2145                                          be empty. This array is replaced during a
  2146                                          strategic merge patch.
  2147                                        items:
  2148                                          type: string
  2149                                        type: array
  2150                                    required:
  2151                                    - key
  2152                                    - operator
  2153                                    type: object
  2154                                  type: array
  2155                                matchLabels:
  2156                                  additionalProperties:
  2157                                    type: string
  2158                                  description: matchLabels is a map of {key,value} pairs.
  2159                                    A single {key,value} in the matchLabels map is equivalent
  2160                                    to an element of matchExpressions, whose key field
  2161                                    is "key", the operator is "In", and the values array
  2162                                    contains only "value". The requirements are ANDed.
  2163                                  type: object
  2164                              type: object
  2165                              x-kubernetes-map-type: atomic
  2166                            volumeMounts:
  2167                              description: volumeMounts defines which volumes of the
  2168                                selected pod need to be mounted on the restoring pod.
  2169                              items:
  2170                                description: VolumeMount describes a mounting of a Volume
  2171                                  within a container.
  2172                                properties:
  2173                                  mountPath:
  2174                                    description: Path within the container at which
  2175                                      the volume should be mounted.  Must not contain
  2176                                      ':'.
  2177                                    type: string
  2178                                  mountPropagation:
  2179                                    description: mountPropagation determines how mounts
  2180                                      are propagated from the host to container and
  2181                                      the other way around. When not set, MountPropagationNone
  2182                                      is used. This field is beta in 1.10.
  2183                                    type: string
  2184                                  name:
  2185                                    description: This must match the Name of a Volume.
  2186                                    type: string
  2187                                  readOnly:
  2188                                    description: Mounted read-only if true, read-write
  2189                                      otherwise (false or unspecified). Defaults to
  2190                                      false.
  2191                                    type: boolean
  2192                                  subPath:
  2193                                    description: Path within the volume from which the
  2194                                      container's volume should be mounted. Defaults
  2195                                      to "" (volume's root).
  2196                                    type: string
  2197                                  subPathExpr:
  2198                                    description: Expanded path within the volume from
  2199                                      which the container's volume should be mounted.
  2200                                      Behaves similarly to SubPath but environment variable
  2201                                      references $(VAR_NAME) are expanded using the
  2202                                      container's environment. Defaults to "" (volume's
  2203                                      root). SubPathExpr and SubPath are mutually exclusive.
  2204                                    type: string
  2205                                required:
  2206                                - mountPath
  2207                                - name
  2208                                type: object
  2209                              type: array
  2210                          required:
  2211                          - podSelector
  2212                          type: object
  2213                      required:
  2214                      - target
  2215                      type: object
  2216                    readinessProbe:
  2217                      description: periodic probe of the service readiness. controller
  2218                        will perform postReadyHooks of BackupScript.spec.restore after
  2219                        the service readiness when readinessProbe is configured.
  2220                      properties:
  2221                        exec:
  2222                          description: exec specifies the action to take.
  2223                          properties:
  2224                            command:
  2225                              description: refer to container command.
  2226                              items:
  2227                                type: string
  2228                              type: array
  2229                            image:
  2230                              description: refer to container image.
  2231                              type: string
  2232                          required:
  2233                          - command
  2234                          - image
  2235                          type: object
  2236                        initialDelaySeconds:
  2237                          description: number of seconds after the container has started
  2238                            before probe is initiated.
  2239                          minimum: 0
  2240                          type: integer
  2241                        periodSeconds:
  2242                          default: 5
  2243                          description: how often (in seconds) to perform the probe.
  2244                            defaults to 5 second, minimum value is 1.
  2245                          minimum: 1
  2246                          type: integer
  2247                        timeoutSeconds:
  2248                          default: 30
  2249                          description: number of seconds after which the probe times
  2250                            out. defaults to 30 second, minimum value is 1.
  2251                          minimum: 1
  2252                          type: integer
  2253                      required:
  2254                      - exec
  2255                      type: object
  2256                  type: object
  2257                  x-kubernetes-validations:
  2258                  - message: at least one exists for jobAction and execAction.
  2259                    rule: has(self.jobAction) || has(self.execAction)
  2260                resources:
  2261                  description: restore the specified resources of kubernetes.
  2262                  properties:
  2263                    included:
  2264                      description: will restore the specified resources
  2265                      items:
  2266                        properties:
  2267                          groupResource:
  2268                            type: string
  2269                          labelSelector:
  2270                            description: select the specified resource for recovery
  2271                              by label.
  2272                            properties:
  2273                              matchExpressions:
  2274                                description: matchExpressions is a list of label selector
  2275                                  requirements. The requirements are ANDed.
  2276                                items:
  2277                                  description: A label selector requirement is a selector
  2278                                    that contains values, a key, and an operator that
  2279                                    relates the key and values.
  2280                                  properties:
  2281                                    key:
  2282                                      description: key is the label key that the selector
  2283                                        applies to.
  2284                                      type: string
  2285                                    operator:
  2286                                      description: operator represents a key's relationship
  2287                                        to a set of values. Valid operators are In,
  2288                                        NotIn, Exists and DoesNotExist.
  2289                                      type: string
  2290                                    values:
  2291                                      description: values is an array of string values.
  2292                                        If the operator is In or NotIn, the values array
  2293                                        must be non-empty. If the operator is Exists
  2294                                        or DoesNotExist, the values array must be empty.
  2295                                        This array is replaced during a strategic merge
  2296                                        patch.
  2297                                      items:
  2298                                        type: string
  2299                                      type: array
  2300                                  required:
  2301                                  - key
  2302                                  - operator
  2303                                  type: object
  2304                                type: array
  2305                              matchLabels:
  2306                                additionalProperties:
  2307                                  type: string
  2308                                description: matchLabels is a map of {key,value} pairs.
  2309                                  A single {key,value} in the matchLabels map is equivalent
  2310                                  to an element of matchExpressions, whose key field
  2311                                  is "key", the operator is "In", and the values array
  2312                                  contains only "value". The requirements are ANDed.
  2313                                type: object
  2314                            type: object
  2315                            x-kubernetes-map-type: atomic
  2316                        required:
  2317                        - groupResource
  2318                        type: object
  2319                      type: array
  2320                  type: object
  2321                  x-kubernetes-validations:
  2322                  - message: forbidden to update spec.resources
  2323                    rule: self == oldSelf
  2324                restoreTime:
  2325                  description: restoreTime is the point in time for restoring.
  2326                  pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
  2327                  type: string
  2328                  x-kubernetes-validations:
  2329                  - message: forbidden to update spec.restoreTime
  2330                    rule: self == oldSelf
  2331                serviceAccountName:
  2332                  description: service account name which needs for recovery pod.
  2333                  type: string
  2334              required:
  2335              - backup
  2336              type: object
  2337            status:
  2338              description: RestoreStatus defines the observed state of Restore
  2339              properties:
  2340                actions:
  2341                  description: recorded all restore actions performed.
  2342                  properties:
  2343                    postReady:
  2344                      description: record the actions for postReady phase.
  2345                      items:
  2346                        properties:
  2347                          backupName:
  2348                            description: which backup's restore action belongs to.
  2349                            type: string
  2350                          endTime:
  2351                            description: endTime is the completion time for the restore
  2352                              job.
  2353                            format: date-time
  2354                            type: string
  2355                          message:
  2356                            description: message is a human readable message indicating
  2357                              details about the object condition.
  2358                            type: string
  2359                          name:
  2360                            description: name describes the name of the recovery action
  2361                              based on the current backup.
  2362                            type: string
  2363                          objectKey:
  2364                            description: the execution object of the restore action.
  2365                            type: string
  2366                          startTime:
  2367                            description: startTime is the start time for the restore
  2368                              job.
  2369                            format: date-time
  2370                            type: string
  2371                          status:
  2372                            description: the status of this action.
  2373                            enum:
  2374                            - Processing
  2375                            - Completed
  2376                            - Failed
  2377                            type: string
  2378                        required:
  2379                        - backupName
  2380                        - name
  2381                        - objectKey
  2382                        type: object
  2383                      type: array
  2384                    prepareData:
  2385                      description: record the actions for prepareData phase.
  2386                      items:
  2387                        properties:
  2388                          backupName:
  2389                            description: which backup's restore action belongs to.
  2390                            type: string
  2391                          endTime:
  2392                            description: endTime is the completion time for the restore
  2393                              job.
  2394                            format: date-time
  2395                            type: string
  2396                          message:
  2397                            description: message is a human readable message indicating
  2398                              details about the object condition.
  2399                            type: string
  2400                          name:
  2401                            description: name describes the name of the recovery action
  2402                              based on the current backup.
  2403                            type: string
  2404                          objectKey:
  2405                            description: the execution object of the restore action.
  2406                            type: string
  2407                          startTime:
  2408                            description: startTime is the start time for the restore
  2409                              job.
  2410                            format: date-time
  2411                            type: string
  2412                          status:
  2413                            description: the status of this action.
  2414                            enum:
  2415                            - Processing
  2416                            - Completed
  2417                            - Failed
  2418                            type: string
  2419                        required:
  2420                        - backupName
  2421                        - name
  2422                        - objectKey
  2423                        type: object
  2424                      type: array
  2425                  type: object
  2426                completionTimestamp:
  2427                  description: Date/time when the restore finished being processed.
  2428                  format: date-time
  2429                  type: string
  2430                conditions:
  2431                  description: describe current state of restore API Resource, like
  2432                    warning.
  2433                  items:
  2434                    description: "Condition contains details for one aspect of the current
  2435                      state of this API Resource. --- This struct is intended for direct
  2436                      use as an array at the field path .status.conditions.  For example,
  2437                      \n type FooStatus struct{ // Represents the observations of a
  2438                      foo's current state. // Known .status.conditions.type are: \"Available\",
  2439                      \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
  2440                      // +listType=map // +listMapKey=type Conditions []metav1.Condition
  2441                      `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
  2442                      protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
  2443                    properties:
  2444                      lastTransitionTime:
  2445                        description: lastTransitionTime is the last time the condition
  2446                          transitioned from one status to another. This should be when
  2447                          the underlying condition changed.  If that is not known, then
  2448                          using the time when the API field changed is acceptable.
  2449                        format: date-time
  2450                        type: string
  2451                      message:
  2452                        description: message is a human readable message indicating
  2453                          details about the transition. This may be an empty string.
  2454                        maxLength: 32768
  2455                        type: string
  2456                      observedGeneration:
  2457                        description: observedGeneration represents the .metadata.generation
  2458                          that the condition was set based upon. For instance, if .metadata.generation
  2459                          is currently 12, but the .status.conditions[x].observedGeneration
  2460                          is 9, the condition is out of date with respect to the current
  2461                          state of the instance.
  2462                        format: int64
  2463                        minimum: 0
  2464                        type: integer
  2465                      reason:
  2466                        description: reason contains a programmatic identifier indicating
  2467                          the reason for the condition's last transition. Producers
  2468                          of specific condition types may define expected values and
  2469                          meanings for this field, and whether the values are considered
  2470                          a guaranteed API. The value should be a CamelCase string.
  2471                          This field may not be empty.
  2472                        maxLength: 1024
  2473                        minLength: 1
  2474                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
  2475                        type: string
  2476                      status:
  2477                        description: status of the condition, one of True, False, Unknown.
  2478                        enum:
  2479                        - "True"
  2480                        - "False"
  2481                        - Unknown
  2482                        type: string
  2483                      type:
  2484                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
  2485                          --- Many .condition.type values are consistent across resources
  2486                          like Available, but because arbitrary conditions can be useful
  2487                          (see .node.status.conditions), the ability to deconflict is
  2488                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
  2489                        maxLength: 316
  2490                        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])$
  2491                        type: string
  2492                    required:
  2493                    - lastTransitionTime
  2494                    - message
  2495                    - reason
  2496                    - status
  2497                    - type
  2498                    type: object
  2499                  type: array
  2500                duration:
  2501                  description: The duration time of restore execution. When converted
  2502                    to a string, the form is "1h2m0.5s".
  2503                  type: string
  2504                phase:
  2505                  description: RestorePhase The current phase. Valid values are Running,
  2506                    Completed, Failed, AsDataSource.
  2507                  enum:
  2508                  - Running
  2509                  - Completed
  2510                  - Failed
  2511                  - AsDataSource
  2512                  type: string
  2513                startTimestamp:
  2514                  description: Date/time when the restore started being processed.
  2515                  format: date-time
  2516                  type: string
  2517              type: object
  2518          type: object
  2519      served: true
  2520      storage: true
  2521      subresources:
  2522        status: {}