github.com/k8snetworkplumbingwg/sriov-network-operator@v1.2.1-0.20240408194816-2d2e5a45d453/test/util/crds/machineconfiguration.openshift.io_machineconfigpools_crd.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     4    # name must match the spec fields below, and be in the form: <plural>.<group>
     5    name: machineconfigpools.machineconfiguration.openshift.io
     6    labels:
     7      "openshift.io/operator-managed": ""
     8    annotations:
     9      include.release.openshift.io/ibm-cloud-managed: "true"
    10      include.release.openshift.io/self-managed-high-availability: "true"
    11      include.release.openshift.io/single-node-developer: "true"
    12  spec:
    13    # group name to use for REST API: /apis/<group>/<version>
    14    group: machineconfiguration.openshift.io
    15    # either Namespaced or Cluster
    16    scope: Cluster
    17    names:
    18      # plural name to be used in the URL: /apis/<group>/<version>/<plural>
    19      plural: machineconfigpools
    20      # singular name to be used as an alias on the CLI and for display
    21      singular: machineconfigpool
    22      # kind is normally the PascalCased singular type. Your resource manifests use this.
    23      kind: MachineConfigPool
    24      # shortNames allow shorter string to match your resource on the CLI
    25      shortNames:
    26      - mcp
    27    # list of versions supported by this CustomResourceDefinition
    28    versions:
    29    - name: v1
    30      # Each version can be enabled/disabled by Served flag.
    31      served: true
    32      # One and only one version must be marked as the storage version.
    33      storage: true
    34      subresources:
    35        status: {}
    36      additionalPrinterColumns:
    37      - jsonPath: .status.configuration.name
    38        name: Config
    39        type: string
    40      - jsonPath: .status.conditions[?(@.type=="Updated")].status
    41        description: When all the machines in the pool are updated to the correct machine
    42          config.
    43        name: Updated
    44        type: string
    45      - jsonPath: .status.conditions[?(@.type=="Updating")].status
    46        description: When at least one of machine is not either not updated or is in the
    47          process of updating to the desired machine config.
    48        name: Updating
    49        type: string
    50      - jsonPath: .status.conditions[?(@.type=="Degraded")].status
    51        description: When progress is blocked on updating one or more nodes, or the pool
    52          configuration is failing.
    53        name: Degraded
    54        type: string
    55      - jsonPath: .status.machineCount
    56        description: Total number of machines in the machine config pool
    57        name: MachineCount
    58        type: number
    59      - jsonPath: .status.readyMachineCount
    60        description: Total number of ready machines targeted by the pool
    61        name: ReadyMachineCount
    62        type: number
    63      - jsonPath: .status.updatedMachineCount
    64        description: Total number of machines targeted by the pool that have the CurrentMachineConfig
    65          as their config
    66        name: UpdatedMachineCount
    67        type: number
    68      - jsonPath: .status.degradedMachineCount
    69        description: Total number of machines marked degraded (or unreconcilable)
    70        name: DegradedMachineCount
    71        type: number
    72      - jsonPath: .metadata.creationTimestamp
    73        name: Age
    74        type: date
    75      schema:
    76        openAPIV3Schema:
    77          description: MachineConfigPool describes a pool of MachineConfigs.
    78          type: object
    79          properties:
    80            apiVersion:
    81              description: 'APIVersion defines the versioned schema of this representation
    82                of an object. Servers should convert recognized schemas to the latest
    83                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    84              type: string
    85            kind:
    86              description: 'Kind is a string value representing the REST resource this
    87                object represents. Servers may infer this from the endpoint the client
    88                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    89              type: string
    90            metadata:
    91              type: object
    92            spec:
    93              description: MachineConfigPoolSpec is the spec for MachineConfigPool resource.
    94              type: object
    95              properties:
    96                configuration:
    97                  description: The targeted MachineConfig object for the machine config
    98                    pool.
    99                  type: object
   100                  properties:
   101                    apiVersion:
   102                      description: API version of the referent.
   103                      type: string
   104                    fieldPath:
   105                      description: 'If referring to a piece of an object instead of an
   106                        entire object, this string should contain a valid JSON/Go field
   107                        access statement, such as desiredState.manifest.containers[2].
   108                        For example, if the object reference is to a container within
   109                        a pod, this would take on a value like: "spec.containers{name}"
   110                        (where "name" refers to the name of the container that triggered
   111                        the event) or if no container name is specified "spec.containers[2]"
   112                        (container with index 2 in this pod). This syntax is chosen only
   113                        to have some well-defined way of referencing a part of an object.
   114                        TODO: this design is not final and this field is subject to change
   115                        in the future.'
   116                      type: string
   117                    kind:
   118                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   119                      type: string
   120                    name:
   121                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   122                      type: string
   123                    namespace:
   124                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   125                      type: string
   126                    resourceVersion:
   127                      description: 'Specific resourceVersion to which this reference is
   128                        made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   129                      type: string
   130                    source:
   131                      description: source is the list of MachineConfig objects that were
   132                        used to generate the single MachineConfig object specified in
   133                        `content`.
   134                      type: array
   135                      items:
   136                        description: ObjectReference contains enough information to let
   137                          you inspect or modify the referred object.
   138                        type: object
   139                        properties:
   140                          apiVersion:
   141                            description: API version of the referent.
   142                            type: string
   143                          fieldPath:
   144                            description: 'If referring to a piece of an object instead
   145                              of an entire object, this string should contain a valid
   146                              JSON/Go field access statement, such as desiredState.manifest.containers[2].
   147                              For example, if the object reference is to a container within
   148                              a pod, this would take on a value like: "spec.containers{name}"
   149                              (where "name" refers to the name of the container that triggered
   150                              the event) or if no container name is specified "spec.containers[2]"
   151                              (container with index 2 in this pod). This syntax is chosen
   152                              only to have some well-defined way of referencing a part
   153                              of an object. TODO: this design is not final and this field
   154                              is subject to change in the future.'
   155                            type: string
   156                          kind:
   157                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   158                            type: string
   159                          name:
   160                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   161                            type: string
   162                          namespace:
   163                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   164                            type: string
   165                          resourceVersion:
   166                            description: 'Specific resourceVersion to which this reference
   167                              is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   168                            type: string
   169                          uid:
   170                            description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   171                            type: string
   172                    uid:
   173                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   174                      type: string
   175                machineConfigSelector:
   176                  description: machineConfigSelector specifies a label selector for MachineConfigs.
   177                    Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
   178                    on how label and selectors work.
   179                  type: object
   180                  properties:
   181                    matchExpressions:
   182                      description: matchExpressions is a list of label selector requirements.
   183                        The requirements are ANDed.
   184                      type: array
   185                      items:
   186                        description: A label selector requirement is a selector that contains
   187                          values, a key, and an operator that relates the key and values.
   188                        type: object
   189                        required:
   190                        - key
   191                        - operator
   192                        properties:
   193                          key:
   194                            description: key is the label key that the selector applies
   195                              to.
   196                            type: string
   197                          operator:
   198                            description: operator represents a key's relationship to a
   199                              set of values. Valid operators are In, NotIn, Exists and
   200                              DoesNotExist.
   201                            type: string
   202                          values:
   203                            description: values is an array of string values. If the operator
   204                              is In or NotIn, the values array must be non-empty. If the
   205                              operator is Exists or DoesNotExist, the values array must
   206                              be empty. This array is replaced during a strategic merge
   207                              patch.
   208                            type: array
   209                            items:
   210                              type: string
   211                    matchLabels:
   212                      description: matchLabels is a map of {key,value} pairs. A single
   213                        {key,value} in the matchLabels map is equivalent to an element
   214                        of matchExpressions, whose key field is "key", the operator is
   215                        "In", and the values array contains only "value". The requirements
   216                        are ANDed.
   217                      type: object
   218                      additionalProperties:
   219                        type: string
   220                maxUnavailable:
   221                  description: maxUnavailable specifies the percentage or constant number
   222                    of machines that can be updating at any given time. default is 1.
   223                  anyOf:
   224                  - type: integer
   225                  - type: string
   226                  x-kubernetes-int-or-string: true
   227                nodeSelector:
   228                  description: nodeSelector specifies a label selector for Machines
   229                  type: object
   230                  properties:
   231                    matchExpressions:
   232                      description: matchExpressions is a list of label selector requirements.
   233                        The requirements are ANDed.
   234                      type: array
   235                      items:
   236                        description: A label selector requirement is a selector that contains
   237                          values, a key, and an operator that relates the key and values.
   238                        type: object
   239                        required:
   240                        - key
   241                        - operator
   242                        properties:
   243                          key:
   244                            description: key is the label key that the selector applies
   245                              to.
   246                            type: string
   247                          operator:
   248                            description: operator represents a key's relationship to a
   249                              set of values. Valid operators are In, NotIn, Exists and
   250                              DoesNotExist.
   251                            type: string
   252                          values:
   253                            description: values is an array of string values. If the operator
   254                              is In or NotIn, the values array must be non-empty. If the
   255                              operator is Exists or DoesNotExist, the values array must
   256                              be empty. This array is replaced during a strategic merge
   257                              patch.
   258                            type: array
   259                            items:
   260                              type: string
   261                    matchLabels:
   262                      description: matchLabels is a map of {key,value} pairs. A single
   263                        {key,value} in the matchLabels map is equivalent to an element
   264                        of matchExpressions, whose key field is "key", the operator is
   265                        "In", and the values array contains only "value". The requirements
   266                        are ANDed.
   267                      type: object
   268                      additionalProperties:
   269                        type: string
   270                paused:
   271                  description: paused specifies whether or not changes to this machine
   272                    config pool should be stopped. This includes generating new desiredMachineConfig
   273                    and update of machines.
   274                  type: boolean
   275            status:
   276              description: MachineConfigPoolStatus is the status for MachineConfigPool
   277                resource.
   278              type: object
   279              properties:
   280                conditions:
   281                  description: conditions represents the latest available observations
   282                    of current state.
   283                  type: array
   284                  items:
   285                    description: MachineConfigPoolCondition contains condition information
   286                      for an MachineConfigPool.
   287                    type: object
   288                    properties:
   289                      lastTransitionTime:
   290                        description: lastTransitionTime is the timestamp corresponding
   291                          to the last status change of this condition.
   292                        type: string
   293                        format: date-time
   294                        nullable: true
   295                      message:
   296                        description: message is a human readable description of the details
   297                          of the last transition, complementing reason.
   298                        type: string
   299                      reason:
   300                        description: reason is a brief machine readable explanation for
   301                          the condition's last transition.
   302                        type: string
   303                      status:
   304                        description: status of the condition, one of ('True', 'False',
   305                          'Unknown').
   306                        type: string
   307                      type:
   308                        description: type of the condition, currently ('Done', 'Updating',
   309                          'Failed').
   310                        type: string
   311                configuration:
   312                  description: configuration represents the current MachineConfig object
   313                    for the machine config pool.
   314                  type: object
   315                  properties:
   316                    apiVersion:
   317                      description: API version of the referent.
   318                      type: string
   319                    fieldPath:
   320                      description: 'If referring to a piece of an object instead of an
   321                        entire object, this string should contain a valid JSON/Go field
   322                        access statement, such as desiredState.manifest.containers[2].
   323                        For example, if the object reference is to a container within
   324                        a pod, this would take on a value like: "spec.containers{name}"
   325                        (where "name" refers to the name of the container that triggered
   326                        the event) or if no container name is specified "spec.containers[2]"
   327                        (container with index 2 in this pod). This syntax is chosen only
   328                        to have some well-defined way of referencing a part of an object.
   329                        TODO: this design is not final and this field is subject to change
   330                        in the future.'
   331                      type: string
   332                    kind:
   333                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   334                      type: string
   335                    name:
   336                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   337                      type: string
   338                    namespace:
   339                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   340                      type: string
   341                    resourceVersion:
   342                      description: 'Specific resourceVersion to which this reference is
   343                        made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   344                      type: string
   345                    source:
   346                      description: source is the list of MachineConfig objects that were
   347                        used to generate the single MachineConfig object specified in
   348                        `content`.
   349                      type: array
   350                      items:
   351                        description: ObjectReference contains enough information to let
   352                          you inspect or modify the referred object.
   353                        type: object
   354                        properties:
   355                          apiVersion:
   356                            description: API version of the referent.
   357                            type: string
   358                          fieldPath:
   359                            description: 'If referring to a piece of an object instead
   360                              of an entire object, this string should contain a valid
   361                              JSON/Go field access statement, such as desiredState.manifest.containers[2].
   362                              For example, if the object reference is to a container within
   363                              a pod, this would take on a value like: "spec.containers{name}"
   364                              (where "name" refers to the name of the container that triggered
   365                              the event) or if no container name is specified "spec.containers[2]"
   366                              (container with index 2 in this pod). This syntax is chosen
   367                              only to have some well-defined way of referencing a part
   368                              of an object. TODO: this design is not final and this field
   369                              is subject to change in the future.'
   370                            type: string
   371                          kind:
   372                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   373                            type: string
   374                          name:
   375                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   376                            type: string
   377                          namespace:
   378                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   379                            type: string
   380                          resourceVersion:
   381                            description: 'Specific resourceVersion to which this reference
   382                              is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   383                            type: string
   384                          uid:
   385                            description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   386                            type: string
   387                    uid:
   388                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   389                      type: string
   390                degradedMachineCount:
   391                  description: degradedMachineCount represents the total number of machines
   392                    marked degraded (or unreconcilable). A node is marked degraded if
   393                    applying a configuration failed..
   394                  type: integer
   395                  format: int32
   396                machineCount:
   397                  description: machineCount represents the total number of machines in
   398                    the machine config pool.
   399                  type: integer
   400                  format: int32
   401                observedGeneration:
   402                  description: observedGeneration represents the generation observed by
   403                    the controller.
   404                  type: integer
   405                  format: int64
   406                readyMachineCount:
   407                  description: readyMachineCount represents the total number of ready
   408                    machines targeted by the pool.
   409                  type: integer
   410                  format: int32
   411                unavailableMachineCount:
   412                  description: unavailableMachineCount represents the total number of
   413                    unavailable (non-ready) machines targeted by the pool. A node is marked
   414                    unavailable if it is in updating state or NodeReady condition is false.
   415                  type: integer
   416                  format: int32
   417                updatedMachineCount:
   418                  description: updatedMachineCount represents the total number of machines
   419                    targeted by the pool that have the CurrentMachineConfig as their config.
   420                  type: integer
   421                  format: int32