github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/crds/apps.kubeblocks.io_opsrequests.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: opsrequests.apps.kubeblocks.io
     9  spec:
    10    group: apps.kubeblocks.io
    11    names:
    12      categories:
    13      - kubeblocks
    14      - all
    15      kind: OpsRequest
    16      listKind: OpsRequestList
    17      plural: opsrequests
    18      shortNames:
    19      - ops
    20      singular: opsrequest
    21    scope: Namespaced
    22    versions:
    23    - additionalPrinterColumns:
    24      - description: Operation request type.
    25        jsonPath: .spec.type
    26        name: TYPE
    27        type: string
    28      - description: Operand cluster.
    29        jsonPath: .spec.clusterRef
    30        name: CLUSTER
    31        type: string
    32      - description: Operation status phase.
    33        jsonPath: .status.phase
    34        name: STATUS
    35        type: string
    36      - description: Operation processing progress.
    37        jsonPath: .status.progress
    38        name: PROGRESS
    39        type: string
    40      - jsonPath: .metadata.creationTimestamp
    41        name: AGE
    42        type: date
    43      name: v1alpha1
    44      schema:
    45        openAPIV3Schema:
    46          description: OpsRequest is the Schema for the opsrequests API
    47          properties:
    48            apiVersion:
    49              description: 'APIVersion defines the versioned schema of this representation
    50                of an object. Servers should convert recognized schemas to the latest
    51                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    52              type: string
    53            kind:
    54              description: 'Kind is a string value representing the REST resource this
    55                object represents. Servers may infer this from the endpoint the client
    56                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    57              type: string
    58            metadata:
    59              type: object
    60            spec:
    61              description: OpsRequestSpec defines the desired state of OpsRequest
    62              properties:
    63                backupSpec:
    64                  description: backupSpec defines how to backup the cluster.
    65                  properties:
    66                    backupMethod:
    67                      description: Backup method name that is defined in backupPolicy.
    68                      type: string
    69                    backupName:
    70                      description: backupName is the name of the backup.
    71                      type: string
    72                    backupPolicyName:
    73                      description: Which backupPolicy is applied to perform this backup
    74                      type: string
    75                    deletionPolicy:
    76                      default: Delete
    77                      description: deletionPolicy determines whether the backup contents
    78                        stored in backup repository should be deleted when the backup
    79                        custom resource is deleted. Supported values are "Retain" and
    80                        "Delete". "Retain" means that the backup content and its physical
    81                        snapshot on backup repository are kept. "Delete" means that
    82                        the backup content and its physical snapshot on backup repository
    83                        are deleted.
    84                      enum:
    85                      - Delete
    86                      - Retain
    87                      type: string
    88                    parentBackupName:
    89                      description: if backupType is incremental, parentBackupName is
    90                        required.
    91                      type: string
    92                    retentionPeriod:
    93                      description: "retentionPeriod determines a duration up to which
    94                        the backup should be kept. Controller will remove all backups
    95                        that are older than the RetentionPeriod. For example, RetentionPeriod
    96                        of `30d` will keep only the backups of last 30 days. Sample
    97                        duration format: - years: \t2y - months: \t6mo - days: \t\t30d
    98                        - hours: \t12h - minutes: \t30m You can also combine the above
    99                        durations. For example: 30d12h30m. If not set, the backup will
   100                        be kept forever."
   101                      type: string
   102                  type: object
   103                cancel:
   104                  description: 'cancel defines the action to cancel the Pending/Creating/Running
   105                    opsRequest, supported types: [VerticalScaling, HorizontalScaling].
   106                    once cancel is set to true, this opsRequest will be canceled and
   107                    modifying this property again will not take effect.'
   108                  type: boolean
   109                clusterRef:
   110                  description: clusterRef references clusterDefinition.
   111                  type: string
   112                  x-kubernetes-validations:
   113                  - message: forbidden to update spec.clusterRef
   114                    rule: self == oldSelf
   115                expose:
   116                  description: expose defines services the component needs to expose.
   117                  items:
   118                    properties:
   119                      componentName:
   120                        description: componentName cluster component name.
   121                        type: string
   122                      services:
   123                        description: Setting the list of services to be exposed.
   124                        items:
   125                          properties:
   126                            annotations:
   127                              additionalProperties:
   128                                type: string
   129                              description: 'If ServiceType is LoadBalancer, cloud provider
   130                                related parameters can be put here More info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer.'
   131                              type: object
   132                            name:
   133                              description: Service name
   134                              maxLength: 15
   135                              type: string
   136                            serviceType:
   137                              default: ClusterIP
   138                              description: 'serviceType determines how the Service is
   139                                exposed. Valid options are ClusterIP, NodePort, and
   140                                LoadBalancer. "ClusterIP" allocates a cluster-internal
   141                                IP address for load-balancing to endpoints. Endpoints
   142                                are determined by the selector or if that is not specified,
   143                                they are determined by manual construction of an Endpoints
   144                                object or EndpointSlice objects. If clusterIP is "None",
   145                                no virtual IP is allocated and the endpoints are published
   146                                as a set of endpoints rather than a virtual IP. "NodePort"
   147                                builds on ClusterIP and allocates a port on every node
   148                                which routes to the same endpoints as the clusterIP.
   149                                "LoadBalancer" builds on NodePort and creates an external
   150                                load-balancer (if supported in the current cloud) which
   151                                routes to the same endpoints as the clusterIP. More
   152                                info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types.'
   153                              enum:
   154                              - ClusterIP
   155                              - NodePort
   156                              - LoadBalancer
   157                              type: string
   158                              x-kubernetes-preserve-unknown-fields: true
   159                          required:
   160                          - name
   161                          type: object
   162                        type: array
   163                    required:
   164                    - componentName
   165                    - services
   166                    type: object
   167                  type: array
   168                  x-kubernetes-list-map-keys:
   169                  - componentName
   170                  x-kubernetes-list-type: map
   171                  x-kubernetes-validations:
   172                  - message: forbidden to update spec.expose
   173                    rule: self == oldSelf
   174                horizontalScaling:
   175                  description: horizontalScaling defines what component need to horizontal
   176                    scale the specified replicas.
   177                  items:
   178                    description: HorizontalScaling defines the variables of horizontal
   179                      scaling operation
   180                    properties:
   181                      componentName:
   182                        description: componentName cluster component name.
   183                        type: string
   184                      replicas:
   185                        description: replicas for the workloads.
   186                        format: int32
   187                        minimum: 0
   188                        type: integer
   189                    required:
   190                    - componentName
   191                    - replicas
   192                    type: object
   193                  type: array
   194                  x-kubernetes-list-map-keys:
   195                  - componentName
   196                  x-kubernetes-list-type: map
   197                  x-kubernetes-validations:
   198                  - message: forbidden to update spec.horizontalScaling
   199                    rule: self == oldSelf
   200                reconfigure:
   201                  description: reconfigure defines the variables that need to input
   202                    when updating configuration.
   203                  properties:
   204                    componentName:
   205                      description: componentName cluster component name.
   206                      type: string
   207                    configurations:
   208                      description: configurations defines which components perform the
   209                        operation.
   210                      items:
   211                        properties:
   212                          keys:
   213                            description: keys is used to set the parameters to be updated.
   214                            items:
   215                              properties:
   216                                fileContent:
   217                                  description: fileContent indicates the configuration
   218                                    file content. update whole file.
   219                                  type: string
   220                                key:
   221                                  description: key indicates the key name of ConfigMap.
   222                                  type: string
   223                                parameters:
   224                                  description: Setting the list of parameters for a
   225                                    single configuration file. update specified the
   226                                    parameters.
   227                                  items:
   228                                    properties:
   229                                      key:
   230                                        description: key is name of the parameter to
   231                                          be updated.
   232                                        type: string
   233                                      value:
   234                                        description: parameter values to be updated.
   235                                          if set nil, the parameter defined by the key
   236                                          field will be deleted from the configuration
   237                                          file.
   238                                        type: string
   239                                    required:
   240                                    - key
   241                                    type: object
   242                                  type: array
   243                              required:
   244                              - key
   245                              type: object
   246                            minItems: 1
   247                            type: array
   248                            x-kubernetes-list-map-keys:
   249                            - key
   250                            x-kubernetes-list-type: map
   251                          name:
   252                            description: name is a config template name.
   253                            maxLength: 63
   254                            pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   255                            type: string
   256                          policy:
   257                            description: policy defines the upgrade policy.
   258                            enum:
   259                            - simple
   260                            - parallel
   261                            - rolling
   262                            - autoReload
   263                            - operatorSyncUpdate
   264                            type: string
   265                        required:
   266                        - keys
   267                        - name
   268                        type: object
   269                      minItems: 1
   270                      type: array
   271                      x-kubernetes-list-map-keys:
   272                      - name
   273                      x-kubernetes-list-type: map
   274                  required:
   275                  - componentName
   276                  - configurations
   277                  type: object
   278                  x-kubernetes-validations:
   279                  - message: forbidden to update spec.reconfigure
   280                    rule: self == oldSelf
   281                  - message: Value can not be empty
   282                    rule: self.configurations.size() > 0
   283                restart:
   284                  description: restart the specified components.
   285                  items:
   286                    description: ComponentOps defines the common variables of component
   287                      scope operations.
   288                    properties:
   289                      componentName:
   290                        description: componentName cluster component name.
   291                        type: string
   292                    required:
   293                    - componentName
   294                    type: object
   295                  type: array
   296                  x-kubernetes-list-map-keys:
   297                  - componentName
   298                  x-kubernetes-list-type: map
   299                  x-kubernetes-validations:
   300                  - message: forbidden to update spec.restart
   301                    rule: self == oldSelf
   302                restoreFrom:
   303                  description: cluster RestoreFrom backup or point in time
   304                  properties:
   305                    backup:
   306                      description: use the backup name and component name for restore,
   307                        support for multiple components' recovery.
   308                      items:
   309                        properties:
   310                          ref:
   311                            description: specify a reference backup to restore
   312                            properties:
   313                              name:
   314                                description: specified the name
   315                                type: string
   316                              namespace:
   317                                description: specified the namespace
   318                                type: string
   319                            type: object
   320                        type: object
   321                      type: array
   322                    pointInTime:
   323                      description: specified the point in time to recovery
   324                      properties:
   325                        ref:
   326                          description: specify a reference source cluster to restore
   327                          properties:
   328                            name:
   329                              description: specified the name
   330                              type: string
   331                            namespace:
   332                              description: specified the namespace
   333                              type: string
   334                          type: object
   335                        time:
   336                          description: specify the time point to restore, with UTC as
   337                            the time zone.
   338                          format: date-time
   339                          type: string
   340                      type: object
   341                  type: object
   342                  x-kubernetes-validations:
   343                  - message: forbidden to update spec.restoreFrom
   344                    rule: self == oldSelf
   345                scriptSpec:
   346                  description: scriptSpec defines the script to be executed.
   347                  properties:
   348                    componentName:
   349                      description: componentName cluster component name.
   350                      type: string
   351                    image:
   352                      description: exec command with image, by default use the image
   353                        of kubeblocks-datascript.
   354                      type: string
   355                    script:
   356                      description: script defines the script to be executed.
   357                      items:
   358                        type: string
   359                      type: array
   360                      x-kubernetes-validations:
   361                      - message: forbidden to update spec.scriptSpec.script
   362                        rule: self == oldSelf
   363                    scriptFrom:
   364                      description: scriptFrom defines the script to be executed from
   365                        configMap or secret.
   366                      properties:
   367                        configMapRef:
   368                          description: configMapRef defines the configMap to be executed.
   369                          items:
   370                            description: Selects a key from a ConfigMap.
   371                            properties:
   372                              key:
   373                                description: The key to select.
   374                                type: string
   375                              name:
   376                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   377                                  TODO: Add other useful fields. apiVersion, kind, uid?'
   378                                type: string
   379                              optional:
   380                                description: Specify whether the ConfigMap or its key
   381                                  must be defined
   382                                type: boolean
   383                            required:
   384                            - key
   385                            type: object
   386                            x-kubernetes-map-type: atomic
   387                          type: array
   388                          x-kubernetes-validations:
   389                          - message: forbidden to update spec.scriptSpec.scriptFrom.configMapRef
   390                            rule: self == oldSelf
   391                        secretRef:
   392                          description: secretRef defines the secret to be executed.
   393                          items:
   394                            description: SecretKeySelector selects a key of a Secret.
   395                            properties:
   396                              key:
   397                                description: The key of the secret to select from.  Must
   398                                  be a valid secret key.
   399                                type: string
   400                              name:
   401                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
   402                                  TODO: Add other useful fields. apiVersion, kind, uid?'
   403                                type: string
   404                              optional:
   405                                description: Specify whether the Secret or its key must
   406                                  be defined
   407                                type: boolean
   408                            required:
   409                            - key
   410                            type: object
   411                            x-kubernetes-map-type: atomic
   412                          type: array
   413                          x-kubernetes-validations:
   414                          - message: forbidden to update spec.scriptSpec.scriptFrom.secretRef
   415                            rule: self == oldSelf
   416                      type: object
   417                      x-kubernetes-validations:
   418                      - message: forbidden to update spec.scriptSpec.scriptFrom
   419                        rule: self == oldSelf
   420                    secret:
   421                      description: secret defines the secret to be used to execute the
   422                        script. If not specified, the default cluster root credential
   423                        secret will be used.
   424                      properties:
   425                        name:
   426                          description: name is the name of the secret.
   427                          maxLength: 63
   428                          pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   429                          type: string
   430                        passwordKey:
   431                          default: password
   432                          description: passwordKey field is used to specify the password
   433                            of the secret.
   434                          type: string
   435                        usernameKey:
   436                          default: username
   437                          description: usernameKey field is used to specify the username
   438                            of the secret.
   439                          type: string
   440                      required:
   441                      - name
   442                      type: object
   443                    selector:
   444                      description: KubeBlocks, by default, will execute the script on
   445                        the primary pod, with role=leader. There are some exceptions,
   446                        such as Redis, which does not synchronize accounts info between
   447                        primary and secondary. In this case, we need to execute the
   448                        script on all pods, matching the selector. selector indicates
   449                        the components on which the script is executed.
   450                      properties:
   451                        matchExpressions:
   452                          description: matchExpressions is a list of label selector
   453                            requirements. The requirements are ANDed.
   454                          items:
   455                            description: A label selector requirement is a selector
   456                              that contains values, a key, and an operator that relates
   457                              the key and values.
   458                            properties:
   459                              key:
   460                                description: key is the label key that the selector
   461                                  applies to.
   462                                type: string
   463                              operator:
   464                                description: operator represents a key's relationship
   465                                  to a set of values. Valid operators are In, NotIn,
   466                                  Exists and DoesNotExist.
   467                                type: string
   468                              values:
   469                                description: values is an array of string values. If
   470                                  the operator is In or NotIn, the values array must
   471                                  be non-empty. If the operator is Exists or DoesNotExist,
   472                                  the values array must be empty. This array is replaced
   473                                  during a strategic merge patch.
   474                                items:
   475                                  type: string
   476                                type: array
   477                            required:
   478                            - key
   479                            - operator
   480                            type: object
   481                          type: array
   482                        matchLabels:
   483                          additionalProperties:
   484                            type: string
   485                          description: matchLabels is a map of {key,value} pairs. A
   486                            single {key,value} in the matchLabels map is equivalent
   487                            to an element of matchExpressions, whose key field is "key",
   488                            the operator is "In", and the values array contains only
   489                            "value". The requirements are ANDed.
   490                          type: object
   491                      type: object
   492                      x-kubernetes-map-type: atomic
   493                      x-kubernetes-validations:
   494                      - message: forbidden to update spec.scriptSpec.script.selector
   495                        rule: self == oldSelf
   496                  required:
   497                  - componentName
   498                  type: object
   499                switchover:
   500                  description: switchover the specified components.
   501                  items:
   502                    properties:
   503                      componentName:
   504                        description: componentName cluster component name.
   505                        type: string
   506                      instanceName:
   507                        description: instanceName is used to specify the candidate primary
   508                          or leader instanceName for switchover. If instanceName is
   509                          set to "*", it means that no specific primary or leader is
   510                          specified for the switchover, and the switchoverAction defined
   511                          in clusterDefinition.componentDefs[x].switchoverSpec.withoutCandidate
   512                          will be executed, It is required that clusterDefinition.componentDefs[x].switchoverSpec.withoutCandidate
   513                          is not empty. If instanceName is set to a valid instanceName
   514                          other than "*", it means that a specific candidate primary
   515                          or leader is specified for the switchover. the value of instanceName
   516                          can be obtained using `kbcli cluster list-instances`, any
   517                          other value is invalid. In this case, the `switchoverAction`
   518                          defined in clusterDefinition.componentDefs[x].switchoverSpec.withCandidate
   519                          will be executed, and it is required that clusterDefinition.componentDefs[x].switchoverSpec.withCandidate
   520                          is not empty.
   521                        type: string
   522                    required:
   523                    - componentName
   524                    - instanceName
   525                    type: object
   526                  type: array
   527                  x-kubernetes-list-map-keys:
   528                  - componentName
   529                  x-kubernetes-list-type: map
   530                  x-kubernetes-validations:
   531                  - message: forbidden to update spec.switchover
   532                    rule: self == oldSelf
   533                ttlSecondsAfterSucceed:
   534                  description: ttlSecondsAfterSucceed OpsRequest will be deleted after
   535                    TTLSecondsAfterSucceed second when OpsRequest.status.phase is Succeed.
   536                  format: int32
   537                  type: integer
   538                ttlSecondsBeforeAbort:
   539                  default: 0
   540                  description: ttlSecondsBeforeAbort OpsRequest will wait at most TTLSecondsBeforeAbort
   541                    seconds for start-conditions to be met. If not specified, the default
   542                    value is 0, which means that the start-conditions must be met immediately.
   543                  format: int32
   544                  type: integer
   545                type:
   546                  description: type defines the operation type.
   547                  enum:
   548                  - Upgrade
   549                  - VerticalScaling
   550                  - VolumeExpansion
   551                  - HorizontalScaling
   552                  - Restart
   553                  - Reconfiguring
   554                  - Start
   555                  - Stop
   556                  - Expose
   557                  - Switchover
   558                  - DataScript
   559                  - Backup
   560                  type: string
   561                  x-kubernetes-validations:
   562                  - message: forbidden to update spec.type
   563                    rule: self == oldSelf
   564                upgrade:
   565                  description: upgrade specifies the cluster version by specifying clusterVersionRef.
   566                  properties:
   567                    clusterVersionRef:
   568                      description: clusterVersionRef references ClusterVersion name.
   569                      type: string
   570                  required:
   571                  - clusterVersionRef
   572                  type: object
   573                  x-kubernetes-validations:
   574                  - message: forbidden to update spec.upgrade
   575                    rule: self == oldSelf
   576                verticalScaling:
   577                  description: verticalScaling defines what component need to vertical
   578                    scale the specified compute resources.
   579                  items:
   580                    description: VerticalScaling defines the variables that need to
   581                      input when scaling compute resources.
   582                    properties:
   583                      claims:
   584                        description: "Claims lists the names of resources, defined in
   585                          spec.resourceClaims, that are used by this container. \n This
   586                          is an alpha field and requires enabling the DynamicResourceAllocation
   587                          feature gate. \n This field is immutable. It can only be set
   588                          for containers."
   589                        items:
   590                          description: ResourceClaim references one entry in PodSpec.ResourceClaims.
   591                          properties:
   592                            name:
   593                              description: Name must match the name of one entry in
   594                                pod.spec.resourceClaims of the Pod where this field
   595                                is used. It makes that resource available inside a container.
   596                              type: string
   597                          required:
   598                          - name
   599                          type: object
   600                        type: array
   601                        x-kubernetes-list-map-keys:
   602                        - name
   603                        x-kubernetes-list-type: map
   604                      classDefRef:
   605                        description: classDefRef reference class defined in ComponentClassDefinition.
   606                        properties:
   607                          class:
   608                            description: Class refers to the name of the class that
   609                              is defined in the ComponentClassDefinition.
   610                            type: string
   611                          name:
   612                            description: Name refers to the name of the ComponentClassDefinition.
   613                            maxLength: 63
   614                            pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   615                            type: string
   616                        required:
   617                        - class
   618                        type: object
   619                      componentName:
   620                        description: componentName cluster component name.
   621                        type: string
   622                      limits:
   623                        additionalProperties:
   624                          anyOf:
   625                          - type: integer
   626                          - type: string
   627                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   628                          x-kubernetes-int-or-string: true
   629                        description: 'Limits describes the maximum amount of compute
   630                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   631                        type: object
   632                      requests:
   633                        additionalProperties:
   634                          anyOf:
   635                          - type: integer
   636                          - type: string
   637                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   638                          x-kubernetes-int-or-string: true
   639                        description: 'Requests describes the minimum amount of compute
   640                          resources required. If Requests is omitted for a container,
   641                          it defaults to Limits if that is explicitly specified, otherwise
   642                          to an implementation-defined value. Requests cannot exceed
   643                          Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   644                        type: object
   645                    required:
   646                    - componentName
   647                    type: object
   648                    x-kubernetes-preserve-unknown-fields: true
   649                  type: array
   650                  x-kubernetes-list-map-keys:
   651                  - componentName
   652                  x-kubernetes-list-type: map
   653                volumeExpansion:
   654                  description: volumeExpansion defines what component and volumeClaimTemplate
   655                    need to expand the specified storage.
   656                  items:
   657                    description: VolumeExpansion defines the variables of volume expansion
   658                      operation.
   659                    properties:
   660                      componentName:
   661                        description: componentName cluster component name.
   662                        type: string
   663                      volumeClaimTemplates:
   664                        description: volumeClaimTemplates specifies the storage size
   665                          and volumeClaimTemplate name.
   666                        items:
   667                          properties:
   668                            name:
   669                              description: name references volumeClaimTemplate name
   670                                from cluster components.
   671                              type: string
   672                            storage:
   673                              anyOf:
   674                              - type: integer
   675                              - type: string
   676                              description: Request storage size.
   677                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   678                              x-kubernetes-int-or-string: true
   679                          required:
   680                          - name
   681                          - storage
   682                          type: object
   683                        type: array
   684                        x-kubernetes-list-map-keys:
   685                        - name
   686                        x-kubernetes-list-type: map
   687                    required:
   688                    - componentName
   689                    - volumeClaimTemplates
   690                    type: object
   691                  type: array
   692                  x-kubernetes-list-map-keys:
   693                  - componentName
   694                  x-kubernetes-list-type: map
   695              required:
   696              - clusterRef
   697              - type
   698              type: object
   699              x-kubernetes-validations:
   700              - message: forbidden to cancel the opsRequest which type not in ['VerticalScaling','HorizontalScaling']
   701                rule: 'has(self.cancel) && self.cancel ? (self.type in [''VerticalScaling'',
   702                  ''HorizontalScaling'']) : true'
   703            status:
   704              description: OpsRequestStatus defines the observed state of OpsRequest
   705              properties:
   706                cancelTimestamp:
   707                  description: CancelTimestamp defines cancel time.
   708                  format: date-time
   709                  type: string
   710                clusterGeneration:
   711                  description: ClusterGeneration records the cluster generation after
   712                    handling the opsRequest action.
   713                  format: int64
   714                  type: integer
   715                completionTimestamp:
   716                  description: completionTimestamp defines the OpsRequest completion
   717                    time.
   718                  format: date-time
   719                  type: string
   720                components:
   721                  additionalProperties:
   722                    properties:
   723                      lastFailedTime:
   724                        description: lastFailedTime is the last time the component phase
   725                          transitioned to Failed or Abnormal.
   726                        format: date-time
   727                        type: string
   728                      message:
   729                        description: message is a human-readable message indicating
   730                          details about this operation.
   731                        maxLength: 32768
   732                        type: string
   733                      phase:
   734                        description: phase describes the component phase, reference
   735                          Cluster.status.component.phase.
   736                        enum:
   737                        - Creating
   738                        - Running
   739                        - Updating
   740                        - Stopping
   741                        - Stopped
   742                        - Deleting
   743                        - Failed
   744                        - Abnormal
   745                        type: string
   746                      progressDetails:
   747                        description: progressDetails describes the progress details
   748                          of the component for this operation.
   749                        items:
   750                          properties:
   751                            endTime:
   752                              description: endTime is the completion time of object
   753                                processing.
   754                              format: date-time
   755                              type: string
   756                            group:
   757                              description: group describes which group the current object
   758                                belongs to. if the objects of a component belong to
   759                                the same group, we can ignore it.
   760                              type: string
   761                            message:
   762                              description: message is a human readable message indicating
   763                                details about the object condition.
   764                              type: string
   765                            objectKey:
   766                              description: objectKey is the unique key of the object.
   767                              type: string
   768                            startTime:
   769                              description: startTime is the start time of object processing.
   770                              format: date-time
   771                              type: string
   772                            status:
   773                              description: status describes the state of processing
   774                                the object.
   775                              enum:
   776                              - Processing
   777                              - Pending
   778                              - Failed
   779                              - Succeed
   780                              type: string
   781                          required:
   782                          - objectKey
   783                          - status
   784                          type: object
   785                        type: array
   786                      reason:
   787                        description: reason describes the reason for the component phase.
   788                        maxLength: 1024
   789                        type: string
   790                      workloadType:
   791                        description: workloadType references workload type of component
   792                          in ClusterDefinition.
   793                        enum:
   794                        - Stateless
   795                        - Stateful
   796                        - Consensus
   797                        - Replication
   798                        type: string
   799                    type: object
   800                  description: components defines the recorded the status information
   801                    of changed components for operation request.
   802                  type: object
   803                conditions:
   804                  description: conditions describes opsRequest detail status.
   805                  items:
   806                    description: "Condition contains details for one aspect of the current
   807                      state of this API Resource. --- This struct is intended for direct
   808                      use as an array at the field path .status.conditions.  For example,
   809                      \n type FooStatus struct{ // Represents the observations of a
   810                      foo's current state. // Known .status.conditions.type are: \"Available\",
   811                      \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
   812                      // +listType=map // +listMapKey=type Conditions []metav1.Condition
   813                      `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
   814                      protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
   815                    properties:
   816                      lastTransitionTime:
   817                        description: lastTransitionTime is the last time the condition
   818                          transitioned from one status to another. This should be when
   819                          the underlying condition changed.  If that is not known, then
   820                          using the time when the API field changed is acceptable.
   821                        format: date-time
   822                        type: string
   823                      message:
   824                        description: message is a human readable message indicating
   825                          details about the transition. This may be an empty string.
   826                        maxLength: 32768
   827                        type: string
   828                      observedGeneration:
   829                        description: observedGeneration represents the .metadata.generation
   830                          that the condition was set based upon. For instance, if .metadata.generation
   831                          is currently 12, but the .status.conditions[x].observedGeneration
   832                          is 9, the condition is out of date with respect to the current
   833                          state of the instance.
   834                        format: int64
   835                        minimum: 0
   836                        type: integer
   837                      reason:
   838                        description: reason contains a programmatic identifier indicating
   839                          the reason for the condition's last transition. Producers
   840                          of specific condition types may define expected values and
   841                          meanings for this field, and whether the values are considered
   842                          a guaranteed API. The value should be a CamelCase string.
   843                          This field may not be empty.
   844                        maxLength: 1024
   845                        minLength: 1
   846                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   847                        type: string
   848                      status:
   849                        description: status of the condition, one of True, False, Unknown.
   850                        enum:
   851                        - "True"
   852                        - "False"
   853                        - Unknown
   854                        type: string
   855                      type:
   856                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
   857                          --- Many .condition.type values are consistent across resources
   858                          like Available, but because arbitrary conditions can be useful
   859                          (see .node.status.conditions), the ability to deconflict is
   860                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
   861                        maxLength: 316
   862                        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])$
   863                        type: string
   864                    required:
   865                    - lastTransitionTime
   866                    - message
   867                    - reason
   868                    - status
   869                    - type
   870                    type: object
   871                  type: array
   872                  x-kubernetes-list-map-keys:
   873                  - type
   874                  x-kubernetes-list-type: map
   875                lastConfiguration:
   876                  description: lastConfiguration records the last configuration before
   877                    this operation take effected.
   878                  properties:
   879                    clusterVersionRef:
   880                      description: clusterVersionRef references ClusterVersion name.
   881                      type: string
   882                    components:
   883                      additionalProperties:
   884                        properties:
   885                          claims:
   886                            description: "Claims lists the names of resources, defined
   887                              in spec.resourceClaims, that are used by this container.
   888                              \n This is an alpha field and requires enabling the DynamicResourceAllocation
   889                              feature gate. \n This field is immutable. It can only
   890                              be set for containers."
   891                            items:
   892                              description: ResourceClaim references one entry in PodSpec.ResourceClaims.
   893                              properties:
   894                                name:
   895                                  description: Name must match the name of one entry
   896                                    in pod.spec.resourceClaims of the Pod where this
   897                                    field is used. It makes that resource available
   898                                    inside a container.
   899                                  type: string
   900                              required:
   901                              - name
   902                              type: object
   903                            type: array
   904                            x-kubernetes-list-map-keys:
   905                            - name
   906                            x-kubernetes-list-type: map
   907                          classDefRef:
   908                            description: classDefRef reference class defined in ComponentClassDefinition.
   909                            properties:
   910                              class:
   911                                description: Class refers to the name of the class that
   912                                  is defined in the ComponentClassDefinition.
   913                                type: string
   914                              name:
   915                                description: Name refers to the name of the ComponentClassDefinition.
   916                                maxLength: 63
   917                                pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
   918                                type: string
   919                            required:
   920                            - class
   921                            type: object
   922                          limits:
   923                            additionalProperties:
   924                              anyOf:
   925                              - type: integer
   926                              - type: string
   927                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   928                              x-kubernetes-int-or-string: true
   929                            description: 'Limits describes the maximum amount of compute
   930                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   931                            type: object
   932                          replicas:
   933                            description: replicas are the last replicas of the component.
   934                            format: int32
   935                            type: integer
   936                          requests:
   937                            additionalProperties:
   938                              anyOf:
   939                              - type: integer
   940                              - type: string
   941                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   942                              x-kubernetes-int-or-string: true
   943                            description: 'Requests describes the minimum amount of compute
   944                              resources required. If Requests is omitted for a container,
   945                              it defaults to Limits if that is explicitly specified,
   946                              otherwise to an implementation-defined value. Requests
   947                              cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
   948                            type: object
   949                          services:
   950                            description: services records the last services of the component.
   951                            items:
   952                              properties:
   953                                annotations:
   954                                  additionalProperties:
   955                                    type: string
   956                                  description: 'If ServiceType is LoadBalancer, cloud
   957                                    provider related parameters can be put here More
   958                                    info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer.'
   959                                  type: object
   960                                name:
   961                                  description: Service name
   962                                  maxLength: 15
   963                                  type: string
   964                                serviceType:
   965                                  default: ClusterIP
   966                                  description: 'serviceType determines how the Service
   967                                    is exposed. Valid options are ClusterIP, NodePort,
   968                                    and LoadBalancer. "ClusterIP" allocates a cluster-internal
   969                                    IP address for load-balancing to endpoints. Endpoints
   970                                    are determined by the selector or if that is not
   971                                    specified, they are determined by manual construction
   972                                    of an Endpoints object or EndpointSlice objects.
   973                                    If clusterIP is "None", no virtual IP is allocated
   974                                    and the endpoints are published as a set of endpoints
   975                                    rather than a virtual IP. "NodePort" builds on ClusterIP
   976                                    and allocates a port on every node which routes
   977                                    to the same endpoints as the clusterIP. "LoadBalancer"
   978                                    builds on NodePort and creates an external load-balancer
   979                                    (if supported in the current cloud) which routes
   980                                    to the same endpoints as the clusterIP. More info:
   981                                    https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types.'
   982                                  enum:
   983                                  - ClusterIP
   984                                  - NodePort
   985                                  - LoadBalancer
   986                                  type: string
   987                                  x-kubernetes-preserve-unknown-fields: true
   988                              required:
   989                              - name
   990                              type: object
   991                            type: array
   992                          targetResources:
   993                            additionalProperties:
   994                              items:
   995                                type: string
   996                              type: array
   997                            description: targetResources records the affecting target
   998                              resources information for the component. resource key
   999                              is in list of [pods].
  1000                            type: object
  1001                          volumeClaimTemplates:
  1002                            description: volumeClaimTemplates records the last volumeClaimTemplates
  1003                              of the component.
  1004                            items:
  1005                              properties:
  1006                                name:
  1007                                  description: name references volumeClaimTemplate name
  1008                                    from cluster components.
  1009                                  type: string
  1010                                storage:
  1011                                  anyOf:
  1012                                  - type: integer
  1013                                  - type: string
  1014                                  description: Request storage size.
  1015                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1016                                  x-kubernetes-int-or-string: true
  1017                              required:
  1018                              - name
  1019                              - storage
  1020                              type: object
  1021                            type: array
  1022                        type: object
  1023                        x-kubernetes-preserve-unknown-fields: true
  1024                      description: components records last configuration of the component.
  1025                      type: object
  1026                  type: object
  1027                phase:
  1028                  description: phase describes OpsRequest phase.
  1029                  enum:
  1030                  - Pending
  1031                  - Creating
  1032                  - Running
  1033                  - Cancelling
  1034                  - Cancelled
  1035                  - Failed
  1036                  - Succeed
  1037                  type: string
  1038                progress:
  1039                  default: -/-
  1040                  pattern: ^(\d+|\-)/(\d+|\-)$
  1041                  type: string
  1042                reconfiguringStatus:
  1043                  description: reconfiguringStatus defines the status information of
  1044                    reconfiguring.
  1045                  properties:
  1046                    configurationStatus:
  1047                      description: configurationStatus describes the status of the component
  1048                        reconfiguring.
  1049                      items:
  1050                        properties:
  1051                          expectedCount:
  1052                            default: -1
  1053                            description: expectedCount describes the number of expected
  1054                              reconfiguring.
  1055                            format: int32
  1056                            type: integer
  1057                          lastAppliedConfiguration:
  1058                            additionalProperties:
  1059                              type: string
  1060                            description: LastAppliedConfiguration describes the last
  1061                              configuration.
  1062                            type: object
  1063                          lastStatus:
  1064                            description: lastStatus describes the last status for the
  1065                              reconfiguring controller.
  1066                            type: string
  1067                          message:
  1068                            description: message describes the details about this operation.
  1069                            type: string
  1070                          name:
  1071                            description: name is a config template name.
  1072                            maxLength: 63
  1073                            pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$
  1074                            type: string
  1075                          status:
  1076                            description: status describes the current state of the reconfiguring
  1077                              state machine.
  1078                            type: string
  1079                          succeedCount:
  1080                            default: 0
  1081                            description: succeedCount describes the number of successful
  1082                              reconfiguring.
  1083                            format: int32
  1084                            type: integer
  1085                          updatePolicy:
  1086                            description: updatePolicy describes the policy of reconfiguring.
  1087                            enum:
  1088                            - simple
  1089                            - parallel
  1090                            - rolling
  1091                            - autoReload
  1092                            - operatorSyncUpdate
  1093                            type: string
  1094                          updatedParameters:
  1095                            description: updatedParameters describes the updated parameters.
  1096                            properties:
  1097                              addedKeys:
  1098                                additionalProperties:
  1099                                  type: string
  1100                                description: addedKeys describes the key added.
  1101                                type: object
  1102                              deletedKeys:
  1103                                additionalProperties:
  1104                                  type: string
  1105                                description: deletedKeys describes the key deleted.
  1106                                type: object
  1107                              updatedKeys:
  1108                                additionalProperties:
  1109                                  type: string
  1110                                description: updatedKeys describes the key updated.
  1111                                type: object
  1112                            type: object
  1113                        required:
  1114                        - name
  1115                        type: object
  1116                      minItems: 1
  1117                      type: array
  1118                      x-kubernetes-list-map-keys:
  1119                      - name
  1120                      x-kubernetes-list-type: map
  1121                  required:
  1122                  - configurationStatus
  1123                  type: object
  1124                startTimestamp:
  1125                  description: startTimestamp The time when the OpsRequest started processing.
  1126                  format: date-time
  1127                  type: string
  1128              required:
  1129              - progress
  1130              type: object
  1131          type: object
  1132      served: true
  1133      storage: true
  1134      subresources:
  1135        status: {}