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: []