sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config-capi/crds/cluster.k8s.io_machines.yaml (about)

     1  
     2  ---
     3  apiVersion: apiextensions.k8s.io/v1beta1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    creationTimestamp: null
     7    name: machines.cluster.k8s.io
     8  spec:
     9    group: cluster.k8s.io
    10    names:
    11      kind: Machine
    12      plural: machines
    13      shortNames:
    14      - ma
    15    scope: Namespaced
    16    validation:
    17      openAPIV3Schema:
    18        description: / [Machine] Machine is the Schema for the machines API
    19        properties:
    20          apiVersion:
    21            description: 'APIVersion defines the versioned schema of this representation
    22              of an object. Servers should convert recognized schemas to the latest
    23              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    24            type: string
    25          kind:
    26            description: 'Kind is a string value representing the REST resource this
    27              object represents. Servers may infer this from the endpoint the client
    28              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    29            type: string
    30          metadata:
    31            type: object
    32          spec:
    33            description: / [MachineSpec] MachineSpec defines the desired state of Machine
    34            properties:
    35              configSource:
    36                description: ConfigSource is used to populate in the associated Node
    37                  for dynamic kubelet config. This field already exists in Node, so
    38                  any updates to it in the Machine spec will be automatically copied
    39                  to the linked NodeRef from the status. The rest of dynamic kubelet
    40                  config support should then work as-is.
    41                properties:
    42                  configMap:
    43                    description: ConfigMap is a reference to a Node's ConfigMap
    44                    properties:
    45                      kubeletConfigKey:
    46                        description: KubeletConfigKey declares which key of the referenced
    47                          ConfigMap corresponds to the KubeletConfiguration structure
    48                          This field is required in all cases.
    49                        type: string
    50                      name:
    51                        description: Name is the metadata.name of the referenced ConfigMap.
    52                          This field is required in all cases.
    53                        type: string
    54                      namespace:
    55                        description: Namespace is the metadata.namespace of the referenced
    56                          ConfigMap. This field is required in all cases.
    57                        type: string
    58                      resourceVersion:
    59                        description: ResourceVersion is the metadata.ResourceVersion
    60                          of the referenced ConfigMap. This field is forbidden in Node.Spec,
    61                          and required in Node.Status.
    62                        type: string
    63                      uid:
    64                        description: UID is the metadata.UID of the referenced ConfigMap.
    65                          This field is forbidden in Node.Spec, and required in Node.Status.
    66                        type: string
    67                    required:
    68                    - kubeletConfigKey
    69                    - name
    70                    - namespace
    71                    type: object
    72                type: object
    73              metadata:
    74                description: ObjectMeta will autopopulate the Node created. Use this
    75                  to indicate what labels, annotations, name prefix, etc., should be
    76                  used when creating the Node.
    77                properties:
    78                  annotations:
    79                    additionalProperties:
    80                      type: string
    81                    description: 'Annotations is an unstructured key value map stored
    82                      with a resource that may be set by external tools to store and
    83                      retrieve arbitrary metadata. They are not queryable and should
    84                      be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
    85                    type: object
    86                  generateName:
    87                    description: "GenerateName is an optional prefix, used by the server,
    88                      to generate a unique name ONLY IF the Name field has not been
    89                      provided. If this field is used, the name returned to the client
    90                      will be different than the name passed. This value will also be
    91                      combined with a unique suffix. The provided value has the same
    92                      validation rules as the Name field, and may be truncated by the
    93                      length of the suffix required to make the value unique on the
    94                      server. \n If this field is specified and the generated name exists,
    95                      the server will NOT return a 409 - instead, it will either return
    96                      201 Created or 500 with Reason ServerTimeout indicating a unique
    97                      name could not be found in the time allotted, and the client should
    98                      retry (optionally after the time indicated in the Retry-After
    99                      header). \n Applied only if Name is not specified. More info:
   100                      https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency"
   101                    type: string
   102                  labels:
   103                    additionalProperties:
   104                      type: string
   105                    description: 'Map of string keys and values that can be used to
   106                      organize and categorize (scope and select) objects. May match
   107                      selectors of replication controllers and services. More info:
   108                      http://kubernetes.io/docs/user-guide/labels'
   109                    type: object
   110                  name:
   111                    description: 'Name must be unique within a namespace. Is required
   112                      when creating resources, although some resources may allow a client
   113                      to request the generation of an appropriate name automatically.
   114                      Name is primarily intended for creation idempotence and configuration
   115                      definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   116                    type: string
   117                  namespace:
   118                    description: "Namespace defines the space within each name must
   119                      be unique. An empty namespace is equivalent to the \"default\"
   120                      namespace, but \"default\" is the canonical representation. Not
   121                      all objects are required to be scoped to a namespace - the value
   122                      of this field for those objects will be empty. \n Must be a DNS_LABEL.
   123                      Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
   124                    type: string
   125                  ownerReferences:
   126                    description: List of objects depended by this object. If ALL objects
   127                      in the list have been deleted, this object will be garbage collected.
   128                      If this object is managed by a controller, then an entry in this
   129                      list will point to this controller, with the controller field
   130                      set to true. There cannot be more than one managing controller.
   131                    items:
   132                      description: OwnerReference contains enough information to let
   133                        you identify an owning object. An owning object must be in the
   134                        same namespace as the dependent, or be cluster-scoped, so there
   135                        is no namespace field.
   136                      properties:
   137                        apiVersion:
   138                          description: API version of the referent.
   139                          type: string
   140                        blockOwnerDeletion:
   141                          description: If true, AND if the owner has the "foregroundDeletion"
   142                            finalizer, then the owner cannot be deleted from the key-value
   143                            store until this reference is removed. Defaults to false.
   144                            To set this field, a user needs "delete" permission of the
   145                            owner, otherwise 422 (Unprocessable Entity) will be returned.
   146                          type: boolean
   147                        controller:
   148                          description: If true, this reference points to the managing
   149                            controller.
   150                          type: boolean
   151                        kind:
   152                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   153                          type: string
   154                        name:
   155                          description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
   156                          type: string
   157                        uid:
   158                          description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
   159                          type: string
   160                      required:
   161                      - apiVersion
   162                      - kind
   163                      - name
   164                      - uid
   165                      type: object
   166                    type: array
   167                type: object
   168              providerID:
   169                description: ProviderID is the identification ID of the machine provided
   170                  by the provider. This field must match the provider ID as seen on
   171                  the node object corresponding to this machine. This field is required
   172                  by higher level consumers of cluster-api. Example use case is cluster
   173                  autoscaler with cluster-api as provider. Clean-up logic in the autoscaler
   174                  compares machines to nodes to find out machines at provider which
   175                  could not get registered as Kubernetes nodes. With cluster-api as
   176                  a generic out-of-tree provider for autoscaler, this field is required
   177                  by autoscaler to be able to have a provider view of the list of machines.
   178                  Another list of nodes is queried from the k8s apiserver and then a
   179                  comparison is done to find out unregistered machines and are marked
   180                  for delete. This field will be set by the actuators and consumed by
   181                  higher level entities like autoscaler that will be interfacing with
   182                  cluster-api as generic provider.
   183                type: string
   184              providerSpec:
   185                description: ProviderSpec details Provider-specific configuration to
   186                  use during node creation.
   187                properties:
   188                  value:
   189                    description: Value is an inlined, serialized representation of the
   190                      resource configuration. It is recommended that providers maintain
   191                      their own versioned API types that should be serialized/deserialized
   192                      from this field, akin to component config.
   193                    type: object
   194                  valueFrom:
   195                    description: Source for the provider configuration. Cannot be used
   196                      if value is not empty.
   197                    properties:
   198                      machineClass:
   199                        description: The machine class from which the provider config
   200                          should be sourced.
   201                        properties:
   202                          apiVersion:
   203                            description: API version of the referent.
   204                            type: string
   205                          fieldPath:
   206                            description: 'If referring to a piece of an object instead
   207                              of an entire object, this string should contain a valid
   208                              JSON/Go field access statement, such as desiredState.manifest.containers[2].
   209                              For example, if the object reference is to a container
   210                              within a pod, this would take on a value like: "spec.containers{name}"
   211                              (where "name" refers to the name of the container that
   212                              triggered the event) or if no container name is specified
   213                              "spec.containers[2]" (container with index 2 in this pod).
   214                              This syntax is chosen only to have some well-defined way
   215                              of referencing a part of an object. TODO: this design
   216                              is not final and this field is subject to change in the
   217                              future.'
   218                            type: string
   219                          kind:
   220                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   221                            type: string
   222                          name:
   223                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   224                            type: string
   225                          namespace:
   226                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   227                            type: string
   228                          provider:
   229                            description: Provider is the name of the cloud-provider
   230                              which MachineClass is intended for.
   231                            type: string
   232                          resourceVersion:
   233                            description: 'Specific resourceVersion to which this reference
   234                              is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
   235                            type: string
   236                          uid:
   237                            description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   238                            type: string
   239                        type: object
   240                    type: object
   241                type: object
   242              taints:
   243                description: The list of the taints to be applied to the corresponding
   244                  Node in additive manner. This list will not overwrite any other taints
   245                  added to the Node on an ongoing basis by other entities. These taints
   246                  should be actively reconciled e.g. if you ask the machine controller
   247                  to apply a taint and then manually remove the taint the machine controller
   248                  will put it back) but not have the machine controller remove any taints
   249                items:
   250                  description: The node this Taint is attached to has the "effect" on
   251                    any pod that does not tolerate the Taint.
   252                  properties:
   253                    effect:
   254                      description: Required. The effect of the taint on pods that do
   255                        not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule
   256                        and NoExecute.
   257                      type: string
   258                    key:
   259                      description: Required. The taint key to be applied to a node.
   260                      type: string
   261                    timeAdded:
   262                      description: TimeAdded represents the time at which the taint
   263                        was added. It is only written for NoExecute taints.
   264                      format: date-time
   265                      type: string
   266                    value:
   267                      description: Required. The taint value corresponding to the taint
   268                        key.
   269                      type: string
   270                  required:
   271                  - effect
   272                  - key
   273                  type: object
   274                type: array
   275              versions:
   276                description: Versions of key software to use. This field is optional
   277                  at cluster creation time, and omitting the field indicates that the
   278                  cluster installation tool should select defaults for the user. These
   279                  defaults may differ based on the cluster installer, but the tool should
   280                  populate the values it uses when persisting Machine objects. A Machine
   281                  spec missing this field at runtime is invalid.
   282                properties:
   283                  controlPlane:
   284                    description: ControlPlane is the semantic version of the Kubernetes
   285                      control plane to run. This should only be populated when the machine
   286                      is a control plane.
   287                    type: string
   288                  kubelet:
   289                    description: Kubelet is the semantic version of kubelet to run
   290                    type: string
   291                required:
   292                - kubelet
   293                type: object
   294            type: object
   295          status:
   296            description: / [MachineStatus] MachineStatus defines the observed state
   297              of Machine
   298            properties:
   299              addresses:
   300                description: Addresses is a list of addresses assigned to the machine.
   301                  Queried from cloud provider, if available.
   302                items:
   303                  description: NodeAddress contains information for the node's address.
   304                  properties:
   305                    address:
   306                      description: The node address.
   307                      type: string
   308                    type:
   309                      description: Node address type, one of Hostname, ExternalIP or
   310                        InternalIP.
   311                      type: string
   312                  required:
   313                  - address
   314                  - type
   315                  type: object
   316                type: array
   317              conditions:
   318                description: 'Conditions lists the conditions synced from the node conditions
   319                  of the corresponding node-object. Machine-controller is responsible
   320                  for keeping conditions up-to-date. MachineSet controller will be taking
   321                  these conditions as a signal to decide if machine is healthy or needs
   322                  to be replaced. Refer: https://kubernetes.io/docs/concepts/architecture/nodes/#condition'
   323                items:
   324                  description: NodeCondition contains condition information for a node.
   325                  properties:
   326                    lastHeartbeatTime:
   327                      description: Last time we got an update on a given condition.
   328                      format: date-time
   329                      type: string
   330                    lastTransitionTime:
   331                      description: Last time the condition transit from one status to
   332                        another.
   333                      format: date-time
   334                      type: string
   335                    message:
   336                      description: Human readable message indicating details about last
   337                        transition.
   338                      type: string
   339                    reason:
   340                      description: (brief) reason for the condition's last transition.
   341                      type: string
   342                    status:
   343                      description: Status of the condition, one of True, False, Unknown.
   344                      type: string
   345                    type:
   346                      description: Type of node condition.
   347                      type: string
   348                  required:
   349                  - status
   350                  - type
   351                  type: object
   352                type: array
   353              errorMessage:
   354                description: "ErrorMessage will be set in the event that there is a
   355                  terminal problem reconciling the Machine and will contain a more verbose
   356                  string suitable for logging and human consumption. \n This field should
   357                  not be set for transitive errors that a controller faces that are
   358                  expected to be fixed automatically over time (like service outages),
   359                  but instead indicate that something is fundamentally wrong with the
   360                  Machine's spec or the configuration of the controller, and that manual
   361                  intervention is required. Examples of terminal errors would be invalid
   362                  combinations of settings in the spec, values that are unsupported
   363                  by the controller, or the responsible controller itself being critically
   364                  misconfigured. \n Any transient errors that occur during the reconciliation
   365                  of Machines can be added as events to the Machine object and/or logged
   366                  in the controller's output."
   367                type: string
   368              errorReason:
   369                description: "ErrorReason will be set in the event that there is a terminal
   370                  problem reconciling the Machine and will contain a succinct value
   371                  suitable for machine interpretation. \n This field should not be set
   372                  for transitive errors that a controller faces that are expected to
   373                  be fixed automatically over time (like service outages), but instead
   374                  indicate that something is fundamentally wrong with the Machine's
   375                  spec or the configuration of the controller, and that manual intervention
   376                  is required. Examples of terminal errors would be invalid combinations
   377                  of settings in the spec, values that are unsupported by the controller,
   378                  or the responsible controller itself being critically misconfigured.
   379                  \n Any transient errors that occur during the reconciliation of Machines
   380                  can be added as events to the Machine object and/or logged in the
   381                  controller's output."
   382                type: string
   383              lastOperation:
   384                description: LastOperation describes the last-operation performed by
   385                  the machine-controller. This API should be useful as a history in
   386                  terms of the latest operation performed on the specific machine. It
   387                  should also convey the state of the latest-operation for example if
   388                  it is still on-going, failed or completed successfully.
   389                properties:
   390                  description:
   391                    description: Description is the human-readable description of the
   392                      last operation.
   393                    type: string
   394                  lastUpdated:
   395                    description: LastUpdated is the timestamp at which LastOperation
   396                      API was last-updated.
   397                    format: date-time
   398                    type: string
   399                  state:
   400                    description: State is the current status of the last performed operation.
   401                      E.g. Processing, Failed, Successful etc
   402                    type: string
   403                  type:
   404                    description: Type is the type of operation which was last performed.
   405                      E.g. Create, Delete, Update etc
   406                    type: string
   407                type: object
   408              lastUpdated:
   409                description: LastUpdated identifies when this status was last observed.
   410                format: date-time
   411                type: string
   412              nodeRef:
   413                description: NodeRef will point to the corresponding Node if it exists.
   414                properties:
   415                  apiVersion:
   416                    description: API version of the referent.
   417                    type: string
   418                  fieldPath:
   419                    description: 'If referring to a piece of an object instead of an
   420                      entire object, this string should contain a valid JSON/Go field
   421                      access statement, such as desiredState.manifest.containers[2].
   422                      For example, if the object reference is to a container within
   423                      a pod, this would take on a value like: "spec.containers{name}"
   424                      (where "name" refers to the name of the container that triggered
   425                      the event) or if no container name is specified "spec.containers[2]"
   426                      (container with index 2 in this pod). This syntax is chosen only
   427                      to have some well-defined way of referencing a part of an object.
   428                      TODO: this design is not final and this field is subject to change
   429                      in the future.'
   430                    type: string
   431                  kind:
   432                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
   433                    type: string
   434                  name:
   435                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   436                    type: string
   437                  namespace:
   438                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   439                    type: string
   440                  resourceVersion:
   441                    description: 'Specific resourceVersion to which this reference is
   442                      made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency'
   443                    type: string
   444                  uid:
   445                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   446                    type: string
   447                type: object
   448              phase:
   449                description: Phase represents the current phase of machine actuation.
   450                  E.g. Pending, Running, Terminating, Failed etc.
   451                type: string
   452              providerStatus:
   453                description: ProviderStatus details a Provider-specific status. It is
   454                  recommended that providers maintain their own versioned API types
   455                  that should be serialized/deserialized from this field.
   456                type: object
   457              versions:
   458                description: "Versions specifies the current versions of software on
   459                  the corresponding Node (if it exists). This is provided for a few
   460                  reasons: \n 1) It is more convenient than checking the NodeRef, traversing
   461                  it to    the Node, and finding the appropriate field in Node.Status.NodeInfo
   462                  \   (which uses different field names and formatting). 2) It removes
   463                  some of the dependency on the structure of the Node,    so that if
   464                  the structure of Node.Status.NodeInfo changes, only    machine controllers
   465                  need to be updated, rather than every client    of the Machines API.
   466                  3) There is no other simple way to check the control plane    version.
   467                  A client would have to connect directly to the apiserver    running
   468                  on the target node in order to find out its version."
   469                properties:
   470                  controlPlane:
   471                    description: ControlPlane is the semantic version of the Kubernetes
   472                      control plane to run. This should only be populated when the machine
   473                      is a control plane.
   474                    type: string
   475                  kubelet:
   476                    description: Kubelet is the semantic version of kubelet to run
   477                    type: string
   478                required:
   479                - kubelet
   480                type: object
   481            type: object
   482        type: object
   483    version: v1alpha1
   484    versions:
   485    - name: v1alpha1
   486      served: true
   487      storage: true
   488  status:
   489    acceptedNames:
   490      kind: ""
   491      plural: ""
   492    conditions: []
   493    storedVersions: []