github.com/openebs/api@v1.12.0/config/crds/bases/cstor.openebs.io_cstorvolumeconfigs.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1beta1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.2.9
     8    creationTimestamp: null
     9    name: cstorvolumeconfigs.cstor.openebs.io
    10  spec:
    11    group: cstor.openebs.io
    12    names:
    13      kind: CStorVolumeConfig
    14      listKind: CStorVolumeConfigList
    15      plural: cstorvolumeconfigs
    16      singular: cstorvolumeconfig
    17    scope: Namespaced
    18    validation:
    19      openAPIV3Schema:
    20        description: CStorVolumeConfig describes a cstor volume config resource created
    21          as custom resource. CStorVolumeConfig is a request for creating cstor volume
    22          related resources like deployment, svc etc.
    23        properties:
    24          apiVersion:
    25            description: 'APIVersion defines the versioned schema of this representation
    26              of an object. Servers should convert recognized schemas to the latest
    27              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    28            type: string
    29          kind:
    30            description: 'Kind is a string value representing the REST resource this
    31              object represents. Servers may infer this from the endpoint the client
    32              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    33            type: string
    34          metadata:
    35            type: object
    36          publish:
    37            description: Publish contains info related to attachment of a volume to
    38              a node. i.e. NodeId etc.
    39            properties:
    40              nodeId:
    41                description: NodeID contains publish info related to attachment of a
    42                  volume to a node.
    43                type: string
    44            type: object
    45          spec:
    46            description: Spec defines a specification of a cstor volume config required
    47              to provisione cstor volume resources
    48            properties:
    49              capacity:
    50                additionalProperties:
    51                  anyOf:
    52                  - type: integer
    53                  - type: string
    54                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
    55                  x-kubernetes-int-or-string: true
    56                description: Capacity represents the actual resources of the underlying
    57                  cstor volume.
    58                type: object
    59              cstorVolumeRef:
    60                description: CStorVolumeRef has the information about where CstorVolumeClaim
    61                  is created from.
    62                properties:
    63                  apiVersion:
    64                    description: API version of the referent.
    65                    type: string
    66                  fieldPath:
    67                    description: 'If referring to a piece of an object instead of an
    68                      entire object, this string should contain a valid JSON/Go field
    69                      access statement, such as desiredState.manifest.containers[2].
    70                      For example, if the object reference is to a container within
    71                      a pod, this would take on a value like: "spec.containers{name}"
    72                      (where "name" refers to the name of the container that triggered
    73                      the event) or if no container name is specified "spec.containers[2]"
    74                      (container with index 2 in this pod). This syntax is chosen only
    75                      to have some well-defined way of referencing a part of an object.
    76                      TODO: this design is not final and this field is subject to change
    77                      in the future.'
    78                    type: string
    79                  kind:
    80                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    81                    type: string
    82                  name:
    83                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    84                    type: string
    85                  namespace:
    86                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    87                    type: string
    88                  resourceVersion:
    89                    description: 'Specific resourceVersion to which this reference is
    90                      made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
    91                    type: string
    92                  uid:
    93                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
    94                    type: string
    95                type: object
    96              cstorVolumeSource:
    97                description: CStorVolumeSource contains the source volumeName@snapShotname
    98                  combaination.  This will be filled only if it is a clone creation.
    99                type: string
   100              policy:
   101                description: Policy contains volume specific required policies target
   102                  and replicas
   103                properties:
   104                  provision:
   105                    description: replicaAffinity is set to true then volume replica
   106                      resources need to be distributed across the pool instances
   107                    properties:
   108                      blockSize:
   109                        description: BlockSize is the logical block size in multiple
   110                          of 512 bytes BlockSize specifies the block size of the volume.
   111                          The blocksize cannot be changed once the volume has been written,
   112                          so it should be set at volume creation time. The default blocksize
   113                          for volumes is 4 Kbytes. Any power of 2 from 512 bytes to
   114                          128 Kbytes is valid.
   115                        format: int32
   116                        type: integer
   117                      replicaAffinity:
   118                        description: replicaAffinity is set to true then volume replica
   119                          resources need to be distributed across the cstor pool instances
   120                          based on the given topology
   121                        type: boolean
   122                    required:
   123                    - blockSize
   124                    - replicaAffinity
   125                    type: object
   126                  replica:
   127                    description: ReplicaSpec represents configuration related to replicas
   128                      resources
   129                    properties:
   130                      compression:
   131                        description: The zle compression algorithm compresses runs of
   132                          zeros.
   133                        type: string
   134                      zvolWorkers:
   135                        description: IOWorkers represents number of threads that executes
   136                          client IOs
   137                        type: string
   138                    type: object
   139                  replicaPoolInfo:
   140                    description: 'ReplicaPoolInfo holds the pool information of volume
   141                      replicas. Ex: If volume is provisioned on which CStor pool volume
   142                      replicas exist'
   143                    items:
   144                      description: ReplicaPoolInfo represents the pool information of
   145                        volume replica
   146                      properties:
   147                        poolName:
   148                          description: PoolName represents the pool name where volume
   149                            replica exists
   150                          type: string
   151                      required:
   152                      - poolName
   153                      type: object
   154                    type: array
   155                  target:
   156                    description: TargetSpec represents configuration related to cstor
   157                      target and its resources
   158                    properties:
   159                      affinity:
   160                        description: PodAffinity if specified, are the target pod's
   161                          affinities
   162                        properties:
   163                          preferredDuringSchedulingIgnoredDuringExecution:
   164                            description: The scheduler will prefer to schedule pods
   165                              to nodes that satisfy the affinity expressions specified
   166                              by this field, but it may choose a node that violates
   167                              one or more of the expressions. The node that is most
   168                              preferred is the one with the greatest sum of weights,
   169                              i.e. for each node that meets all of the scheduling requirements
   170                              (resource request, requiredDuringScheduling affinity expressions,
   171                              etc.), compute a sum by iterating through the elements
   172                              of this field and adding "weight" to the sum if the node
   173                              has pods which matches the corresponding podAffinityTerm;
   174                              the node(s) with the highest sum are the most preferred.
   175                            items:
   176                              description: The weights of all of the matched WeightedPodAffinityTerm
   177                                fields are added per-node to find the most preferred
   178                                node(s)
   179                              properties:
   180                                podAffinityTerm:
   181                                  description: Required. A pod affinity term, associated
   182                                    with the corresponding weight.
   183                                  properties:
   184                                    labelSelector:
   185                                      description: A label query over a set of resources,
   186                                        in this case pods.
   187                                      properties:
   188                                        matchExpressions:
   189                                          description: matchExpressions is a list of
   190                                            label selector requirements. The requirements
   191                                            are ANDed.
   192                                          items:
   193                                            description: A label selector requirement
   194                                              is a selector that contains values, a
   195                                              key, and an operator that relates the
   196                                              key and values.
   197                                            properties:
   198                                              key:
   199                                                description: key is the label key that
   200                                                  the selector applies to.
   201                                                type: string
   202                                              operator:
   203                                                description: operator represents a key's
   204                                                  relationship to a set of values. Valid
   205                                                  operators are In, NotIn, Exists and
   206                                                  DoesNotExist.
   207                                                type: string
   208                                              values:
   209                                                description: values is an array of string
   210                                                  values. If the operator is In or NotIn,
   211                                                  the values array must be non-empty.
   212                                                  If the operator is Exists or DoesNotExist,
   213                                                  the values array must be empty. This
   214                                                  array is replaced during a strategic
   215                                                  merge patch.
   216                                                items:
   217                                                  type: string
   218                                                type: array
   219                                            required:
   220                                            - key
   221                                            - operator
   222                                            type: object
   223                                          type: array
   224                                        matchLabels:
   225                                          additionalProperties:
   226                                            type: string
   227                                          description: matchLabels is a map of {key,value}
   228                                            pairs. A single {key,value} in the matchLabels
   229                                            map is equivalent to an element of matchExpressions,
   230                                            whose key field is "key", the operator is
   231                                            "In", and the values array contains only
   232                                            "value". The requirements are ANDed.
   233                                          type: object
   234                                      type: object
   235                                    namespaces:
   236                                      description: namespaces specifies which namespaces
   237                                        the labelSelector applies to (matches against);
   238                                        null or empty list means "this pod's namespace"
   239                                      items:
   240                                        type: string
   241                                      type: array
   242                                    topologyKey:
   243                                      description: This pod should be co-located (affinity)
   244                                        or not co-located (anti-affinity) with the pods
   245                                        matching the labelSelector in the specified
   246                                        namespaces, where co-located is defined as running
   247                                        on a node whose value of the label with key
   248                                        topologyKey matches that of any node on which
   249                                        any of the selected pods is running. Empty topologyKey
   250                                        is not allowed.
   251                                      type: string
   252                                  required:
   253                                  - topologyKey
   254                                  type: object
   255                                weight:
   256                                  description: weight associated with matching the corresponding
   257                                    podAffinityTerm, in the range 1-100.
   258                                  format: int32
   259                                  type: integer
   260                              required:
   261                              - podAffinityTerm
   262                              - weight
   263                              type: object
   264                            type: array
   265                          requiredDuringSchedulingIgnoredDuringExecution:
   266                            description: If the affinity requirements specified by this
   267                              field are not met at scheduling time, the pod will not
   268                              be scheduled onto the node. If the affinity requirements
   269                              specified by this field cease to be met at some point
   270                              during pod execution (e.g. due to a pod label update),
   271                              the system may or may not try to eventually evict the
   272                              pod from its node. When there are multiple elements, the
   273                              lists of nodes corresponding to each podAffinityTerm are
   274                              intersected, i.e. all terms must be satisfied.
   275                            items:
   276                              description: Defines a set of pods (namely those matching
   277                                the labelSelector relative to the given namespace(s))
   278                                that this pod should be co-located (affinity) or not
   279                                co-located (anti-affinity) with, where co-located is
   280                                defined as running on a node whose value of the label
   281                                with key <topologyKey> matches that of any node on which
   282                                a pod of the set of pods is running
   283                              properties:
   284                                labelSelector:
   285                                  description: A label query over a set of resources,
   286                                    in this case pods.
   287                                  properties:
   288                                    matchExpressions:
   289                                      description: matchExpressions is a list of label
   290                                        selector requirements. The requirements are
   291                                        ANDed.
   292                                      items:
   293                                        description: A label selector requirement is
   294                                          a selector that contains values, a key, and
   295                                          an operator that relates the key and values.
   296                                        properties:
   297                                          key:
   298                                            description: key is the label key that the
   299                                              selector applies to.
   300                                            type: string
   301                                          operator:
   302                                            description: operator represents a key's
   303                                              relationship to a set of values. Valid
   304                                              operators are In, NotIn, Exists and DoesNotExist.
   305                                            type: string
   306                                          values:
   307                                            description: values is an array of string
   308                                              values. If the operator is In or NotIn,
   309                                              the values array must be non-empty. If
   310                                              the operator is Exists or DoesNotExist,
   311                                              the values array must be empty. This array
   312                                              is replaced during a strategic merge patch.
   313                                            items:
   314                                              type: string
   315                                            type: array
   316                                        required:
   317                                        - key
   318                                        - operator
   319                                        type: object
   320                                      type: array
   321                                    matchLabels:
   322                                      additionalProperties:
   323                                        type: string
   324                                      description: matchLabels is a map of {key,value}
   325                                        pairs. A single {key,value} in the matchLabels
   326                                        map is equivalent to an element of matchExpressions,
   327                                        whose key field is "key", the operator is "In",
   328                                        and the values array contains only "value".
   329                                        The requirements are ANDed.
   330                                      type: object
   331                                  type: object
   332                                namespaces:
   333                                  description: namespaces specifies which namespaces
   334                                    the labelSelector applies to (matches against);
   335                                    null or empty list means "this pod's namespace"
   336                                  items:
   337                                    type: string
   338                                  type: array
   339                                topologyKey:
   340                                  description: This pod should be co-located (affinity)
   341                                    or not co-located (anti-affinity) with the pods
   342                                    matching the labelSelector in the specified namespaces,
   343                                    where co-located is defined as running on a node
   344                                    whose value of the label with key topologyKey matches
   345                                    that of any node on which any of the selected pods
   346                                    is running. Empty topologyKey is not allowed.
   347                                  type: string
   348                              required:
   349                              - topologyKey
   350                              type: object
   351                            type: array
   352                        type: object
   353                      auxResources:
   354                        description: AuxResources are the compute resources required
   355                          by the cstor-target pod side car containers.
   356                        properties:
   357                          limits:
   358                            additionalProperties:
   359                              anyOf:
   360                              - type: integer
   361                              - type: string
   362                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   363                              x-kubernetes-int-or-string: true
   364                            description: 'Limits describes the maximum amount of compute
   365                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   366                            type: object
   367                          requests:
   368                            additionalProperties:
   369                              anyOf:
   370                              - type: integer
   371                              - type: string
   372                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   373                              x-kubernetes-int-or-string: true
   374                            description: 'Requests describes the minimum amount of compute
   375                              resources required. If Requests is omitted for a container,
   376                              it defaults to Limits if that is explicitly specified,
   377                              otherwise to an implementation-defined value. More info:
   378                              https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   379                            type: object
   380                        type: object
   381                      luWorkers:
   382                        description: IOWorkers sets the number of threads that are working
   383                          on above queue
   384                        format: int64
   385                        type: integer
   386                      monitor:
   387                        description: Monitor enables or disables the target exporter
   388                          sidecar
   389                        type: boolean
   390                      nodeSelector:
   391                        additionalProperties:
   392                          type: string
   393                        description: NodeSelector is the labels that will be used to
   394                          select a node for target pod scheduleing Required field
   395                        type: object
   396                      priorityClassName:
   397                        description: PriorityClassName if specified applies to this
   398                          target pod If left empty, no priority class is applied.
   399                        type: string
   400                      queueDepth:
   401                        description: QueueDepth sets the queue size at iSCSI target
   402                          which limits the ongoing IO count from client
   403                        type: string
   404                      replicationFactor:
   405                        description: ReplicationFactor represents maximum number of
   406                          replicas that are allowed to connect to the target
   407                        format: int64
   408                        type: integer
   409                      resources:
   410                        description: Resources are the compute resources required by
   411                          the cstor-target container.
   412                        properties:
   413                          limits:
   414                            additionalProperties:
   415                              anyOf:
   416                              - type: integer
   417                              - type: string
   418                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   419                              x-kubernetes-int-or-string: true
   420                            description: 'Limits describes the maximum amount of compute
   421                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   422                            type: object
   423                          requests:
   424                            additionalProperties:
   425                              anyOf:
   426                              - type: integer
   427                              - type: string
   428                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   429                              x-kubernetes-int-or-string: true
   430                            description: 'Requests describes the minimum amount of compute
   431                              resources required. If Requests is omitted for a container,
   432                              it defaults to Limits if that is explicitly specified,
   433                              otherwise to an implementation-defined value. More info:
   434                              https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   435                            type: object
   436                        type: object
   437                      tolerations:
   438                        description: Tolerations, if specified, are the target pod's
   439                          tolerations
   440                        items:
   441                          description: The pod this Toleration is attached to tolerates
   442                            any taint that matches the triple <key,value,effect> using
   443                            the matching operator <operator>.
   444                          properties:
   445                            effect:
   446                              description: Effect indicates the taint effect to match.
   447                                Empty means match all taint effects. When specified,
   448                                allowed values are NoSchedule, PreferNoSchedule and
   449                                NoExecute.
   450                              type: string
   451                            key:
   452                              description: Key is the taint key that the toleration
   453                                applies to. Empty means match all taint keys. If the
   454                                key is empty, operator must be Exists; this combination
   455                                means to match all values and all keys.
   456                              type: string
   457                            operator:
   458                              description: Operator represents a key's relationship
   459                                to the value. Valid operators are Exists and Equal.
   460                                Defaults to Equal. Exists is equivalent to wildcard
   461                                for value, so that a pod can tolerate all taints of
   462                                a particular category.
   463                              type: string
   464                            tolerationSeconds:
   465                              description: TolerationSeconds represents the period of
   466                                time the toleration (which must be of effect NoExecute,
   467                                otherwise this field is ignored) tolerates the taint.
   468                                By default, it is not set, which means tolerate the
   469                                taint forever (do not evict). Zero and negative values
   470                                will be treated as 0 (evict immediately) by the system.
   471                              format: int64
   472                              type: integer
   473                            value:
   474                              description: Value is the taint value the toleration matches
   475                                to. If the operator is Exists, the value should be empty,
   476                                otherwise just a regular string.
   477                              type: string
   478                          type: object
   479                        type: array
   480                    type: object
   481                required:
   482                - provision
   483                - replica
   484                - replicaPoolInfo
   485                - target
   486                type: object
   487              provision:
   488                description: Provision represents the initial volume configuration for
   489                  the underlying cstor volume based on the persistent volume request
   490                  by user. Provision properties are immutable
   491                properties:
   492                  capacity:
   493                    additionalProperties:
   494                      anyOf:
   495                      - type: integer
   496                      - type: string
   497                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   498                      x-kubernetes-int-or-string: true
   499                    description: Capacity represents initial capacity of volume replica
   500                      required during volume clone operations to maintain some metadata
   501                      info related to child resources like snapshot, cloned volumes.
   502                    type: object
   503                  replicaCount:
   504                    description: ReplicaCount represents initial cstor volume replica
   505                      count, its will not be updated later on based on scale up/down
   506                      operations, only readonly operations and validations.
   507                    type: integer
   508                required:
   509                - capacity
   510                - replicaCount
   511                type: object
   512            required:
   513            - capacity
   514            - policy
   515            - provision
   516            type: object
   517          status:
   518            description: Status represents the current information/status for the cstor
   519              volume config, populated by the controller.
   520            properties:
   521              capacity:
   522                additionalProperties:
   523                  anyOf:
   524                  - type: integer
   525                  - type: string
   526                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   527                  x-kubernetes-int-or-string: true
   528                description: Capacity the actual resources of the underlying volume.
   529                type: object
   530              condition:
   531                items:
   532                  description: CStorVolumeConfigCondition contains details about state
   533                    of cstor volume
   534                  properties:
   535                    lastProbeTime:
   536                      description: Last time we probed the condition.
   537                      format: date-time
   538                      type: string
   539                    lastTransitionTime:
   540                      description: Last time the condition transitioned from one status
   541                        to another.
   542                      format: date-time
   543                      type: string
   544                    message:
   545                      description: Human-readable message indicating details about last
   546                        transition.
   547                      type: string
   548                    reason:
   549                      description: Reason is a brief CamelCase string that describes
   550                        any failure
   551                      type: string
   552                    type:
   553                      description: Current Condition of cstor volume config. If underlying
   554                        persistent volume is being resized then the Condition will be
   555                        set to 'ResizeStarted' etc
   556                      type: string
   557                  required:
   558                  - message
   559                  - reason
   560                  - type
   561                  type: object
   562                type: array
   563              phase:
   564                description: Phase represents the current phase of CStorVolumeConfig.
   565                type: string
   566              poolInfo:
   567                description: PoolInfo represents current pool names where volume replicas
   568                  exists
   569                items:
   570                  type: string
   571                type: array
   572            required:
   573            - phase
   574            - poolInfo
   575            type: object
   576          versionDetails:
   577            description: VersionDetails provides the details for upgrade
   578            properties:
   579              autoUpgrade:
   580                description: If AutoUpgrade is set to true then the resource is upgraded
   581                  automatically without any manual steps
   582                type: boolean
   583              desired:
   584                description: Desired is the version that we want to upgrade or the control
   585                  plane version
   586                type: string
   587              status:
   588                description: Status gives the status of reconciliation triggered when
   589                  the desired and current version are not same
   590                properties:
   591                  current:
   592                    description: Current is the version of resource
   593                    type: string
   594                  dependentsUpgraded:
   595                    description: DependentsUpgraded gives the details whether all children
   596                      of a resource are upgraded to desired version or not
   597                    type: boolean
   598                  lastUpdateTime:
   599                    description: LastUpdateTime is the time the status was last  updated
   600                    format: date-time
   601                    type: string
   602                  message:
   603                    description: Message is a human readable message if some error occurs
   604                    type: string
   605                  reason:
   606                    description: Reason is the actual reason for the error state
   607                    type: string
   608                  state:
   609                    description: State is the state of reconciliation
   610                    type: string
   611                required:
   612                - current
   613                - dependentsUpgraded
   614                - state
   615                type: object
   616            required:
   617            - autoUpgrade
   618            - desired
   619            - status
   620            type: object
   621        required:
   622        - spec
   623        - status
   624        - versionDetails
   625        type: object
   626    version: v1
   627    versions:
   628    - name: v1
   629      served: true
   630      storage: true
   631  status:
   632    acceptedNames:
   633      kind: ""
   634      plural: ""
   635    conditions: []
   636    storedVersions: []