github.com/openebs/api@v1.12.0/config/crds/bases/cstor.openebs.io_cstorvolumepolicies.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: cstorvolumepolicies.cstor.openebs.io
    10  spec:
    11    group: cstor.openebs.io
    12    names:
    13      kind: CStorVolumePolicy
    14      listKind: CStorVolumePolicyList
    15      plural: cstorvolumepolicies
    16      singular: cstorvolumepolicy
    17    scope: Namespaced
    18    validation:
    19      openAPIV3Schema:
    20        description: CStorVolumePolicy describes a configuration required for cstor
    21          volume resources
    22        properties:
    23          apiVersion:
    24            description: 'APIVersion defines the versioned schema of this representation
    25              of an object. Servers should convert recognized schemas to the latest
    26              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    27            type: string
    28          kind:
    29            description: 'Kind is a string value representing the REST resource this
    30              object represents. Servers may infer this from the endpoint the client
    31              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    32            type: string
    33          metadata:
    34            type: object
    35          spec:
    36            description: Spec defines a configuration info of a cstor volume required
    37              to provisione cstor volume resources
    38            properties:
    39              provision:
    40                description: replicaAffinity is set to true then volume replica resources
    41                  need to be distributed across the pool instances
    42                properties:
    43                  blockSize:
    44                    description: BlockSize is the logical block size in multiple of
    45                      512 bytes BlockSize specifies the block size of the volume. The
    46                      blocksize cannot be changed once the volume has been written,
    47                      so it should be set at volume creation time. The default blocksize
    48                      for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 128
    49                      Kbytes is valid.
    50                    format: int32
    51                    type: integer
    52                  replicaAffinity:
    53                    description: replicaAffinity is set to true then volume replica
    54                      resources need to be distributed across the cstor pool instances
    55                      based on the given topology
    56                    type: boolean
    57                required:
    58                - blockSize
    59                - replicaAffinity
    60                type: object
    61              replica:
    62                description: ReplicaSpec represents configuration related to replicas
    63                  resources
    64                properties:
    65                  compression:
    66                    description: The zle compression algorithm compresses runs of zeros.
    67                    type: string
    68                  zvolWorkers:
    69                    description: IOWorkers represents number of threads that executes
    70                      client IOs
    71                    type: string
    72                type: object
    73              replicaPoolInfo:
    74                description: 'ReplicaPoolInfo holds the pool information of volume replicas.
    75                  Ex: If volume is provisioned on which CStor pool volume replicas exist'
    76                items:
    77                  description: ReplicaPoolInfo represents the pool information of volume
    78                    replica
    79                  properties:
    80                    poolName:
    81                      description: PoolName represents the pool name where volume replica
    82                        exists
    83                      type: string
    84                  required:
    85                  - poolName
    86                  type: object
    87                type: array
    88              target:
    89                description: TargetSpec represents configuration related to cstor target
    90                  and its resources
    91                properties:
    92                  affinity:
    93                    description: PodAffinity if specified, are the target pod's affinities
    94                    properties:
    95                      preferredDuringSchedulingIgnoredDuringExecution:
    96                        description: The scheduler will prefer to schedule pods to nodes
    97                          that satisfy the affinity expressions specified by this field,
    98                          but it may choose a node that violates one or more of the
    99                          expressions. The node that is most preferred is the one with
   100                          the greatest sum of weights, i.e. for each node that meets
   101                          all of the scheduling requirements (resource request, requiredDuringScheduling
   102                          affinity expressions, etc.), compute a sum by iterating through
   103                          the elements of this field and adding "weight" to the sum
   104                          if the node has pods which matches the corresponding podAffinityTerm;
   105                          the node(s) with the highest sum are the most preferred.
   106                        items:
   107                          description: The weights of all of the matched WeightedPodAffinityTerm
   108                            fields are added per-node to find the most preferred node(s)
   109                          properties:
   110                            podAffinityTerm:
   111                              description: Required. A pod affinity term, associated
   112                                with the corresponding weight.
   113                              properties:
   114                                labelSelector:
   115                                  description: A label query over a set of resources,
   116                                    in this case pods.
   117                                  properties:
   118                                    matchExpressions:
   119                                      description: matchExpressions is a list of label
   120                                        selector requirements. The requirements are
   121                                        ANDed.
   122                                      items:
   123                                        description: A label selector requirement is
   124                                          a selector that contains values, a key, and
   125                                          an operator that relates the key and values.
   126                                        properties:
   127                                          key:
   128                                            description: key is the label key that the
   129                                              selector applies to.
   130                                            type: string
   131                                          operator:
   132                                            description: operator represents a key's
   133                                              relationship to a set of values. Valid
   134                                              operators are In, NotIn, Exists and DoesNotExist.
   135                                            type: string
   136                                          values:
   137                                            description: values is an array of string
   138                                              values. If the operator is In or NotIn,
   139                                              the values array must be non-empty. If
   140                                              the operator is Exists or DoesNotExist,
   141                                              the values array must be empty. This array
   142                                              is replaced during a strategic merge patch.
   143                                            items:
   144                                              type: string
   145                                            type: array
   146                                        required:
   147                                        - key
   148                                        - operator
   149                                        type: object
   150                                      type: array
   151                                    matchLabels:
   152                                      additionalProperties:
   153                                        type: string
   154                                      description: matchLabels is a map of {key,value}
   155                                        pairs. A single {key,value} in the matchLabels
   156                                        map is equivalent to an element of matchExpressions,
   157                                        whose key field is "key", the operator is "In",
   158                                        and the values array contains only "value".
   159                                        The requirements are ANDed.
   160                                      type: object
   161                                  type: object
   162                                namespaces:
   163                                  description: namespaces specifies which namespaces
   164                                    the labelSelector applies to (matches against);
   165                                    null or empty list means "this pod's namespace"
   166                                  items:
   167                                    type: string
   168                                  type: array
   169                                topologyKey:
   170                                  description: This pod should be co-located (affinity)
   171                                    or not co-located (anti-affinity) with the pods
   172                                    matching the labelSelector in the specified namespaces,
   173                                    where co-located is defined as running on a node
   174                                    whose value of the label with key topologyKey matches
   175                                    that of any node on which any of the selected pods
   176                                    is running. Empty topologyKey is not allowed.
   177                                  type: string
   178                              required:
   179                              - topologyKey
   180                              type: object
   181                            weight:
   182                              description: weight associated with matching the corresponding
   183                                podAffinityTerm, in the range 1-100.
   184                              format: int32
   185                              type: integer
   186                          required:
   187                          - podAffinityTerm
   188                          - weight
   189                          type: object
   190                        type: array
   191                      requiredDuringSchedulingIgnoredDuringExecution:
   192                        description: If the affinity requirements specified by this
   193                          field are not met at scheduling time, the pod will not be
   194                          scheduled onto the node. If the affinity requirements specified
   195                          by this field cease to be met at some point during pod execution
   196                          (e.g. due to a pod label update), the system may or may not
   197                          try to eventually evict the pod from its node. When there
   198                          are multiple elements, the lists of nodes corresponding to
   199                          each podAffinityTerm are intersected, i.e. all terms must
   200                          be satisfied.
   201                        items:
   202                          description: Defines a set of pods (namely those matching
   203                            the labelSelector relative to the given namespace(s)) that
   204                            this pod should be co-located (affinity) or not co-located
   205                            (anti-affinity) with, where co-located is defined as running
   206                            on a node whose value of the label with key <topologyKey>
   207                            matches that of any node on which a pod of the set of pods
   208                            is running
   209                          properties:
   210                            labelSelector:
   211                              description: A label query over a set of resources, in
   212                                this case pods.
   213                              properties:
   214                                matchExpressions:
   215                                  description: matchExpressions is a list of label selector
   216                                    requirements. The requirements are ANDed.
   217                                  items:
   218                                    description: A label selector requirement is a selector
   219                                      that contains values, a key, and an operator that
   220                                      relates the key and values.
   221                                    properties:
   222                                      key:
   223                                        description: key is the label key that the selector
   224                                          applies to.
   225                                        type: string
   226                                      operator:
   227                                        description: operator represents a key's relationship
   228                                          to a set of values. Valid operators are In,
   229                                          NotIn, Exists and DoesNotExist.
   230                                        type: string
   231                                      values:
   232                                        description: values is an array of string values.
   233                                          If the operator is In or NotIn, the values
   234                                          array must be non-empty. If the operator is
   235                                          Exists or DoesNotExist, the values array must
   236                                          be empty. This array is replaced during a
   237                                          strategic merge patch.
   238                                        items:
   239                                          type: string
   240                                        type: array
   241                                    required:
   242                                    - key
   243                                    - operator
   244                                    type: object
   245                                  type: array
   246                                matchLabels:
   247                                  additionalProperties:
   248                                    type: string
   249                                  description: matchLabels is a map of {key,value} pairs.
   250                                    A single {key,value} in the matchLabels map is equivalent
   251                                    to an element of matchExpressions, whose key field
   252                                    is "key", the operator is "In", and the values array
   253                                    contains only "value". The requirements are ANDed.
   254                                  type: object
   255                              type: object
   256                            namespaces:
   257                              description: namespaces specifies which namespaces the
   258                                labelSelector applies to (matches against); null or
   259                                empty list means "this pod's namespace"
   260                              items:
   261                                type: string
   262                              type: array
   263                            topologyKey:
   264                              description: This pod should be co-located (affinity)
   265                                or not co-located (anti-affinity) with the pods matching
   266                                the labelSelector in the specified namespaces, where
   267                                co-located is defined as running on a node whose value
   268                                of the label with key topologyKey matches that of any
   269                                node on which any of the selected pods is running. Empty
   270                                topologyKey is not allowed.
   271                              type: string
   272                          required:
   273                          - topologyKey
   274                          type: object
   275                        type: array
   276                    type: object
   277                  auxResources:
   278                    description: AuxResources are the compute resources required by
   279                      the cstor-target pod side car containers.
   280                    properties:
   281                      limits:
   282                        additionalProperties:
   283                          anyOf:
   284                          - type: integer
   285                          - type: string
   286                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   287                          x-kubernetes-int-or-string: true
   288                        description: 'Limits describes the maximum amount of compute
   289                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   290                        type: object
   291                      requests:
   292                        additionalProperties:
   293                          anyOf:
   294                          - type: integer
   295                          - type: string
   296                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   297                          x-kubernetes-int-or-string: true
   298                        description: 'Requests describes the minimum amount of compute
   299                          resources required. If Requests is omitted for a container,
   300                          it defaults to Limits if that is explicitly specified, otherwise
   301                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   302                        type: object
   303                    type: object
   304                  luWorkers:
   305                    description: IOWorkers sets the number of threads that are working
   306                      on above queue
   307                    format: int64
   308                    type: integer
   309                  monitor:
   310                    description: Monitor enables or disables the target exporter sidecar
   311                    type: boolean
   312                  nodeSelector:
   313                    additionalProperties:
   314                      type: string
   315                    description: NodeSelector is the labels that will be used to select
   316                      a node for target pod scheduleing Required field
   317                    type: object
   318                  priorityClassName:
   319                    description: PriorityClassName if specified applies to this target
   320                      pod If left empty, no priority class is applied.
   321                    type: string
   322                  queueDepth:
   323                    description: QueueDepth sets the queue size at iSCSI target which
   324                      limits the ongoing IO count from client
   325                    type: string
   326                  replicationFactor:
   327                    description: ReplicationFactor represents maximum number of replicas
   328                      that are allowed to connect to the target
   329                    format: int64
   330                    type: integer
   331                  resources:
   332                    description: Resources are the compute resources required by the
   333                      cstor-target container.
   334                    properties:
   335                      limits:
   336                        additionalProperties:
   337                          anyOf:
   338                          - type: integer
   339                          - type: string
   340                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   341                          x-kubernetes-int-or-string: true
   342                        description: 'Limits describes the maximum amount of compute
   343                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   344                        type: object
   345                      requests:
   346                        additionalProperties:
   347                          anyOf:
   348                          - type: integer
   349                          - type: string
   350                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   351                          x-kubernetes-int-or-string: true
   352                        description: 'Requests describes the minimum amount of compute
   353                          resources required. If Requests is omitted for a container,
   354                          it defaults to Limits if that is explicitly specified, otherwise
   355                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
   356                        type: object
   357                    type: object
   358                  tolerations:
   359                    description: Tolerations, if specified, are the target pod's tolerations
   360                    items:
   361                      description: The pod this Toleration is attached to tolerates
   362                        any taint that matches the triple <key,value,effect> using the
   363                        matching operator <operator>.
   364                      properties:
   365                        effect:
   366                          description: Effect indicates the taint effect to match. Empty
   367                            means match all taint effects. When specified, allowed values
   368                            are NoSchedule, PreferNoSchedule and NoExecute.
   369                          type: string
   370                        key:
   371                          description: Key is the taint key that the toleration applies
   372                            to. Empty means match all taint keys. If the key is empty,
   373                            operator must be Exists; this combination means to match
   374                            all values and all keys.
   375                          type: string
   376                        operator:
   377                          description: Operator represents a key's relationship to the
   378                            value. Valid operators are Exists and Equal. Defaults to
   379                            Equal. Exists is equivalent to wildcard for value, so that
   380                            a pod can tolerate all taints of a particular category.
   381                          type: string
   382                        tolerationSeconds:
   383                          description: TolerationSeconds represents the period of time
   384                            the toleration (which must be of effect NoExecute, otherwise
   385                            this field is ignored) tolerates the taint. By default,
   386                            it is not set, which means tolerate the taint forever (do
   387                            not evict). Zero and negative values will be treated as
   388                            0 (evict immediately) by the system.
   389                          format: int64
   390                          type: integer
   391                        value:
   392                          description: Value is the taint value the toleration matches
   393                            to. If the operator is Exists, the value should be empty,
   394                            otherwise just a regular string.
   395                          type: string
   396                      type: object
   397                    type: array
   398                type: object
   399            required:
   400            - provision
   401            - replica
   402            - replicaPoolInfo
   403            - target
   404            type: object
   405          status:
   406            description: CStorVolumePolicyStatus is for handling status of CstorVolumePolicy
   407            properties:
   408              phase:
   409                type: string
   410            required:
   411            - phase
   412            type: object
   413        required:
   414        - spec
   415        - status
   416        type: object
   417    version: v1
   418    versions:
   419    - name: v1
   420      served: true
   421      storage: true
   422  status:
   423    acceptedNames:
   424      kind: ""
   425      plural: ""
   426    conditions: []
   427    storedVersions: []