...

Text file src/github.com/openshift/api/machine/v1beta1/0000_10_machineset.crd.yaml

Documentation: github.com/openshift/api/machine/v1beta1

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  annotations:
     5    api-approved.openshift.io: https://github.com/openshift/api/pull/1032
     6    exclude.release.openshift.io/internal-openshift-hosted: "true"
     7    include.release.openshift.io/self-managed-high-availability: "true"
     8    include.release.openshift.io/single-node-developer: "true"
     9  creationTimestamp: null
    10  name: machinesets.machine.openshift.io
    11spec:
    12  group: machine.openshift.io
    13  names:
    14    kind: MachineSet
    15    listKind: MachineSetList
    16    plural: machinesets
    17    singular: machineset
    18  scope: Namespaced
    19  versions:
    20    - additionalPrinterColumns:
    21        - description: Desired Replicas
    22          jsonPath: .spec.replicas
    23          name: Desired
    24          type: integer
    25        - description: Current Replicas
    26          jsonPath: .status.replicas
    27          name: Current
    28          type: integer
    29        - description: Ready Replicas
    30          jsonPath: .status.readyReplicas
    31          name: Ready
    32          type: integer
    33        - description: Observed number of available replicas
    34          jsonPath: .status.availableReplicas
    35          name: Available
    36          type: string
    37        - description: Machineset age
    38          jsonPath: .metadata.creationTimestamp
    39          name: Age
    40          type: date
    41      name: v1beta1
    42      schema:
    43        openAPIV3Schema:
    44          description: 'MachineSet ensures that a specified number of machines replicas are running at any given time. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer).'
    45          type: object
    46          properties:
    47            apiVersion:
    48              description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    49              type: string
    50            kind:
    51              description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    52              type: string
    53            metadata:
    54              type: object
    55            spec:
    56              description: MachineSetSpec defines the desired state of MachineSet
    57              type: object
    58              properties:
    59                deletePolicy:
    60                  description: DeletePolicy defines the policy used to identify nodes to delete when downscaling. Defaults to "Random".  Valid values are "Random, "Newest", "Oldest"
    61                  type: string
    62                  enum:
    63                    - Random
    64                    - Newest
    65                    - Oldest
    66                minReadySeconds:
    67                  description: MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready)
    68                  type: integer
    69                  format: int32
    70                replicas:
    71                  description: Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1.
    72                  type: integer
    73                  format: int32
    74                  default: 1
    75                selector:
    76                  description: 'Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors'
    77                  type: object
    78                  properties:
    79                    matchExpressions:
    80                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
    81                      type: array
    82                      items:
    83                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
    84                        type: object
    85                        required:
    86                          - key
    87                          - operator
    88                        properties:
    89                          key:
    90                            description: key is the label key that the selector applies to.
    91                            type: string
    92                          operator:
    93                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
    94                            type: string
    95                          values:
    96                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
    97                            type: array
    98                            items:
    99                              type: string
   100                    matchLabels:
   101                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   102                      type: object
   103                      additionalProperties:
   104                        type: string
   105                  x-kubernetes-map-type: atomic
   106                template:
   107                  description: Template is the object that describes the machine that will be created if insufficient replicas are detected.
   108                  type: object
   109                  properties:
   110                    metadata:
   111                      description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
   112                      type: object
   113                      properties:
   114                        annotations:
   115                          description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   116                          type: object
   117                          additionalProperties:
   118                            type: string
   119                        generateName:
   120                          description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. \n If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
   121                          type: string
   122                        labels:
   123                          description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
   124                          type: object
   125                          additionalProperties:
   126                            type: string
   127                        name:
   128                          description: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   129                          type: string
   130                        namespace:
   131                          description: "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   132                          type: string
   133                        ownerReferences:
   134                          description: List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
   135                          type: array
   136                          items:
   137                            description: OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
   138                            type: object
   139                            required:
   140                              - apiVersion
   141                              - kind
   142                              - name
   143                              - uid
   144                            properties:
   145                              apiVersion:
   146                                description: API version of the referent.
   147                                type: string
   148                              blockOwnerDeletion:
   149                                description: If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
   150                                type: boolean
   151                              controller:
   152                                description: If true, this reference points to the managing controller.
   153                                type: boolean
   154                              kind:
   155                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   156                                type: string
   157                              name:
   158                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names'
   159                                type: string
   160                              uid:
   161                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids'
   162                                type: string
   163                            x-kubernetes-map-type: atomic
   164                    spec:
   165                      description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
   166                      type: object
   167                      properties:
   168                        lifecycleHooks:
   169                          description: LifecycleHooks allow users to pause operations on the machine at certain predefined points within the machine lifecycle.
   170                          type: object
   171                          properties:
   172                            preDrain:
   173                              description: PreDrain hooks prevent the machine from being drained. This also blocks further lifecycle events, such as termination.
   174                              type: array
   175                              items:
   176                                description: LifecycleHook represents a single instance of a lifecycle hook
   177                                type: object
   178                                required:
   179                                  - name
   180                                  - owner
   181                                properties:
   182                                  name:
   183                                    description: Name defines a unique name for the lifcycle hook. The name should be unique and descriptive, ideally 1-3 words, in CamelCase or it may be namespaced, eg. foo.example.com/CamelCase. Names must be unique and should only be managed by a single entity.
   184                                    type: string
   185                                    maxLength: 256
   186                                    minLength: 3
   187                                    pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
   188                                  owner:
   189                                    description: Owner defines the owner of the lifecycle hook. This should be descriptive enough so that users can identify who/what is responsible for blocking the lifecycle. This could be the name of a controller (e.g. clusteroperator/etcd) or an administrator managing the hook.
   190                                    type: string
   191                                    maxLength: 512
   192                                    minLength: 3
   193                              x-kubernetes-list-map-keys:
   194                                - name
   195                              x-kubernetes-list-type: map
   196                            preTerminate:
   197                              description: PreTerminate hooks prevent the machine from being terminated. PreTerminate hooks be actioned after the Machine has been drained.
   198                              type: array
   199                              items:
   200                                description: LifecycleHook represents a single instance of a lifecycle hook
   201                                type: object
   202                                required:
   203                                  - name
   204                                  - owner
   205                                properties:
   206                                  name:
   207                                    description: Name defines a unique name for the lifcycle hook. The name should be unique and descriptive, ideally 1-3 words, in CamelCase or it may be namespaced, eg. foo.example.com/CamelCase. Names must be unique and should only be managed by a single entity.
   208                                    type: string
   209                                    maxLength: 256
   210                                    minLength: 3
   211                                    pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
   212                                  owner:
   213                                    description: Owner defines the owner of the lifecycle hook. This should be descriptive enough so that users can identify who/what is responsible for blocking the lifecycle. This could be the name of a controller (e.g. clusteroperator/etcd) or an administrator managing the hook.
   214                                    type: string
   215                                    maxLength: 512
   216                                    minLength: 3
   217                              x-kubernetes-list-map-keys:
   218                                - name
   219                              x-kubernetes-list-type: map
   220                        metadata:
   221                          description: ObjectMeta will autopopulate the Node created. Use this to indicate what labels, annotations, name prefix, etc., should be used when creating the Node.
   222                          type: object
   223                          properties:
   224                            annotations:
   225                              description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
   226                              type: object
   227                              additionalProperties:
   228                                type: string
   229                            generateName:
   230                              description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. \n If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
   231                              type: string
   232                            labels:
   233                              description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
   234                              type: object
   235                              additionalProperties:
   236                                type: string
   237                            name:
   238                              description: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   239                              type: string
   240                            namespace:
   241                              description: "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   242                              type: string
   243                            ownerReferences:
   244                              description: List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
   245                              type: array
   246                              items:
   247                                description: OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
   248                                type: object
   249                                required:
   250                                  - apiVersion
   251                                  - kind
   252                                  - name
   253                                  - uid
   254                                properties:
   255                                  apiVersion:
   256                                    description: API version of the referent.
   257                                    type: string
   258                                  blockOwnerDeletion:
   259                                    description: If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
   260                                    type: boolean
   261                                  controller:
   262                                    description: If true, this reference points to the managing controller.
   263                                    type: boolean
   264                                  kind:
   265                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   266                                    type: string
   267                                  name:
   268                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names'
   269                                    type: string
   270                                  uid:
   271                                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids'
   272                                    type: string
   273                                x-kubernetes-map-type: atomic
   274                        providerID:
   275                          description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider.
   276                          type: string
   277                        providerSpec:
   278                          description: ProviderSpec details Provider-specific configuration to use during node creation.
   279                          type: object
   280                          properties:
   281                            value:
   282                              description: Value is an inlined, serialized representation of the resource configuration. It is recommended that providers maintain their own versioned API types that should be serialized/deserialized from this field, akin to component config.
   283                              type: object
   284                              x-kubernetes-preserve-unknown-fields: true
   285                        taints:
   286                          description: The list of the taints to be applied to the corresponding Node in additive manner. This list will not overwrite any other taints added to the Node on an ongoing basis by other entities. These taints should be actively reconciled e.g. if you ask the machine controller to apply a taint and then manually remove the taint the machine controller will put it back) but not have the machine controller remove any taints
   287                          type: array
   288                          items:
   289                            description: The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint.
   290                            type: object
   291                            required:
   292                              - effect
   293                              - key
   294                            properties:
   295                              effect:
   296                                description: Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
   297                                type: string
   298                              key:
   299                                description: Required. The taint key to be applied to a node.
   300                                type: string
   301                              timeAdded:
   302                                description: TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.
   303                                type: string
   304                                format: date-time
   305                              value:
   306                                description: The taint value corresponding to the taint key.
   307                                type: string
   308            status:
   309              description: MachineSetStatus defines the observed state of MachineSet
   310              type: object
   311              properties:
   312                availableReplicas:
   313                  description: The number of available replicas (ready for at least minReadySeconds) for this MachineSet.
   314                  type: integer
   315                  format: int32
   316                errorMessage:
   317                  type: string
   318                errorReason:
   319                  description: "In the event that there is a terminal problem reconciling the replicas, both ErrorReason and ErrorMessage will be set. ErrorReason will be populated with a succinct value suitable for machine interpretation, while ErrorMessage will contain a more verbose string suitable for logging and human consumption. \n These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate's spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller's output."
   320                  type: string
   321                fullyLabeledReplicas:
   322                  description: The number of replicas that have labels matching the labels of the machine template of the MachineSet.
   323                  type: integer
   324                  format: int32
   325                observedGeneration:
   326                  description: ObservedGeneration reflects the generation of the most recently observed MachineSet.
   327                  type: integer
   328                  format: int64
   329                readyReplicas:
   330                  description: The number of ready replicas for this MachineSet. A machine is considered ready when the node has been created and is "Ready".
   331                  type: integer
   332                  format: int32
   333                replicas:
   334                  description: Replicas is the most recently observed number of replicas.
   335                  type: integer
   336                  format: int32
   337      served: true
   338      storage: true
   339      subresources:
   340        scale:
   341          labelSelectorPath: .status.labelSelector
   342          specReplicasPath: .spec.replicas
   343          statusReplicasPath: .status.replicas
   344        status: {}
   345status:
   346  acceptedNames:
   347    kind: ""
   348    plural: ""
   349  conditions: []
   350  storedVersions: []

View as plain text