
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    exclude.release.openshift.io/internal-openshift-hosted: "true"
  creationTimestamp: null
  name: machines.machine.openshift.io
spec:
  additionalPrinterColumns:
  - JSONPath: .status.phase
    description: Phase of machine
    name: Phase
    type: string
  - JSONPath: .metadata.labels['machine\.openshift\.io/instance-type']
    description: Type of instance
    name: Type
    type: string
  - JSONPath: .metadata.labels['machine\.openshift\.io/region']
    description: Region associated with machine
    name: Region
    type: string
  - JSONPath: .metadata.labels['machine\.openshift\.io/zone']
    description: Zone associated with machine
    name: Zone
    type: string
  - JSONPath: .metadata.creationTimestamp
    description: Machine age
    name: Age
    type: date
  - JSONPath: .status.nodeRef.name
    description: Node associated with machine
    name: Node
    priority: 1
    type: string
  - JSONPath: .spec.providerID
    description: Provider ID of machine created in cloud provider
    name: ProviderID
    priority: 1
    type: string
  - JSONPath: .metadata.annotations['machine\.openshift\.io/instance-state']
    description: State of instance
    name: State
    priority: 1
    type: string
  group: machine.openshift.io
  names:
    kind: Machine
    listKind: MachineList
    plural: machines
    singular: machine
  scope: ""
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: / [Machine] Machine is the Schema for the machines API
      properties:
        apiVersion:
          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'
          type: string
        kind:
          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'
          type: string
        metadata:
          type: object
        spec:
          description: / [MachineSpec] MachineSpec defines the desired state of Machine
          properties:
            metadata:
              description: ObjectMeta will autopopulate the Node created. Use this
                to indicate what labels, annotations, name prefix, etc., should be
                used when creating the Node.
              type: object
            providerID:
              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.
              type: string
            providerSpec:
              description: ProviderSpec details Provider-specific configuration to
                use during node creation.
              properties:
                value:
                  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.
                  type: object
              type: object
            taints:
              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
              items:
                description: The node this Taint is attached to has the "effect" on
                  any pod that does not tolerate the Taint.
                properties:
                  effect:
                    description: Required. The effect of the taint on pods that do
                      not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule
                      and NoExecute.
                    type: string
                  key:
                    description: Required. The taint key to be applied to a node.
                    type: string
                  timeAdded:
                    description: TimeAdded represents the time at which the taint
                      was added. It is only written for NoExecute taints.
                    format: date-time
                    type: string
                  value:
                    description: Required. The taint value corresponding to the taint
                      key.
                    type: string
                required:
                - effect
                - key
                type: object
              type: array
          type: object
        status:
          description: / [MachineStatus] MachineStatus defines the observed state
            of Machine
          properties:
            addresses:
              description: Addresses is a list of addresses assigned to the machine.
                Queried from cloud provider, if available.
              items:
                description: NodeAddress contains information for the node's address.
                properties:
                  address:
                    description: The node address.
                    type: string
                  type:
                    description: Node address type, one of Hostname, ExternalIP or
                      InternalIP.
                    type: string
                required:
                - address
                - type
                type: object
              type: array
            errorMessage:
              description: "ErrorMessage will be set in the event that there is a
                terminal problem reconciling the Machine and will contain a more verbose
                string suitable for logging and human consumption. \n This field 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
                Machine's spec or the configuration of the 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 controller, or the responsible controller itself being critically
                misconfigured. \n Any transient errors that occur during the reconciliation
                of Machines can be added as events to the Machine object and/or logged
                in the controller's output."
              type: string
            errorReason:
              description: "ErrorReason will be set in the event that there is a terminal
                problem reconciling the Machine and will contain a succinct value
                suitable for machine interpretation. \n This field 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 Machine's
                spec or the configuration of the 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 controller,
                or the responsible controller itself being critically misconfigured.
                \n Any transient errors that occur during the reconciliation of Machines
                can be added as events to the Machine object and/or logged in the
                controller's output."
              type: string
            lastOperation:
              description: LastOperation describes the last-operation performed by
                the machine-controller. This API should be useful as a history in
                terms of the latest operation performed on the specific machine. It
                should also convey the state of the latest-operation for example if
                it is still on-going, failed or completed successfully.
              properties:
                description:
                  description: Description is the human-readable description of the
                    last operation.
                  type: string
                lastUpdated:
                  description: LastUpdated is the timestamp at which LastOperation
                    API was last-updated.
                  format: date-time
                  type: string
                state:
                  description: State is the current status of the last performed operation.
                    E.g. Processing, Failed, Successful etc
                  type: string
                type:
                  description: Type is the type of operation which was last performed.
                    E.g. Create, Delete, Update etc
                  type: string
              type: object
            lastUpdated:
              description: LastUpdated identifies when this status was last observed.
              format: date-time
              type: string
            nodeRef:
              description: NodeRef will point to the corresponding Node if it exists.
              properties:
                apiVersion:
                  description: API version of the referent.
                  type: string
                fieldPath:
                  description: 'If referring to a piece of an object instead of an
                    entire object, this string should contain a valid JSON/Go field
                    access statement, such as desiredState.manifest.containers[2].
                    For example, if the object reference is to a container within
                    a pod, this would take on a value like: "spec.containers{name}"
                    (where "name" refers to the name of the container that triggered
                    the event) or if no container name is specified "spec.containers[2]"
                    (container with index 2 in this pod). This syntax is chosen only
                    to have some well-defined way of referencing a part of an object.
                    TODO: this design is not final and this field is subject to change
                    in the future.'
                  type: string
                kind:
                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                  type: string
                name:
                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                  type: string
                namespace:
                  description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                  type: string
                resourceVersion:
                  description: 'Specific resourceVersion to which this reference is
                    made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                  type: string
                uid:
                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                  type: string
              type: object
            phase:
              description: 'Phase represents the current phase of machine actuation.
                One of: Failed, Provisioning, Provisioned, Running, Deleting'
              type: string
            providerStatus:
              description: ProviderStatus details a Provider-specific status. It is
                recommended that providers maintain their own versioned API types
                that should be serialized/deserialized from this field.
              type: object
          type: object
      type: object
  version: v1beta1
  versions:
  - name: v1beta1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
