Skip to content

Latest commit

 

History

History
2649 lines (2649 loc) · 44.5 KB

File metadata and controls

2649 lines (2649 loc) · 44.5 KB

Specification

ProviderSpec Schema


Machine

Machine is the representation of a physical or virtual machine.

Field Type Description
apiVersion string machine.sapcloud.io/v1alpha1
kind string Machine
metadata Kubernetes meta/v1.ObjectMeta

ObjectMeta for machine object

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec MachineSpec

Spec contains the specification of the machine



class ClassSpec (Optional)

Class contains the machineclass attributes of a machine

providerID string (Optional)

ProviderID represents the provider’s unique ID given to a machine

nodeTemplate NodeTemplateSpec (Optional)

NodeTemplateSpec describes the data a node should have when created from a template

MachineConfiguration MachineConfiguration

(Members of MachineConfiguration are embedded into this type.)

(Optional)

Configuration for the machine-controller.

status MachineStatus

Status contains fields depicting the status


MachineClass

MachineClass can be used to templatize and re-use provider configuration across multiple Machines / MachineSets / MachineDeployments.

Field Type Description
apiVersion string machine.sapcloud.io/v1alpha1
kind string MachineClass
metadata Kubernetes meta/v1.ObjectMeta (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field.
nodeTemplate NodeTemplate (Optional)

NodeTemplate contains subfields to track all node resources and other node info required to scale nodegroup from zero

credentialsSecretRef Kubernetes core/v1.SecretReference

CredentialsSecretRef can optionally store the credentials (in this case the SecretRef does not need to store them). This might be useful if multiple machine classes with the same credentials but different user-datas are used.

providerSpec k8s.io/apimachinery/pkg/runtime.RawExtension

Provider-specific configuration to use during node creation.

provider string

Provider is the combination of name and location of cloud-specific drivers.

secretRef Kubernetes core/v1.SecretReference

SecretRef stores the necessary secrets such as credentials or userdata.


MachineDeployment

MachineDeployment enables declarative updates for machines and MachineSets.

Field Type Description
apiVersion string machine.sapcloud.io/v1alpha1
kind string MachineDeployment
metadata Kubernetes meta/v1.ObjectMeta (Optional)

Standard object metadata.

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec MachineDeploymentSpec (Optional)

Specification of the desired behavior of the MachineDeployment.



replicas int32 (Optional)

Number of desired machines. This is a pointer to distinguish between explicit zero and not specified. Defaults to 0.

selector Kubernetes meta/v1.LabelSelector (Optional)

Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this MachineDeployment.

template MachineTemplateSpec

Template describes the machines that will be created.

strategy MachineDeploymentStrategy (Optional)

The MachineDeployment strategy to use to replace existing machines with new ones.

minReadySeconds int32 (Optional)

Minimum number of seconds for which a newly created machine should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (machine will be considered available as soon as it is ready)

revisionHistoryLimit *int32 (Optional)

The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.

paused bool (Optional)

Indicates that the MachineDeployment is paused and will not be processed by the MachineDeployment controller.

rollbackTo RollbackConfig (Optional)

DEPRECATED. The config this MachineDeployment is rolling back to. Will be cleared after rollback is done.

progressDeadlineSeconds *int32 (Optional)

The maximum time in seconds for a MachineDeployment to make progress before it is considered to be failed. The MachineDeployment controller will continue to process failed MachineDeployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the MachineDeployment status. Note that progress will not be estimated during the time a MachineDeployment is paused. This is not set by default, which is treated as infinite deadline.

status MachineDeploymentStatus (Optional)

Most recently observed status of the MachineDeployment.


MachineSet

MachineSet TODO

Field Type Description
apiVersion string machine.sapcloud.io/v1alpha1
kind string MachineSet
metadata Kubernetes meta/v1.ObjectMeta (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field.
spec MachineSetSpec (Optional)

replicas int32 (Optional)
selector Kubernetes meta/v1.LabelSelector (Optional)
machineClass ClassSpec (Optional)
template MachineTemplateSpec (Optional)
minReadySeconds int32 (Optional)
status MachineSetStatus (Optional)

ClassSpec

(Appears on: MachineSetSpec, MachineSpec)

ClassSpec is the class specification of machine

Field Type Description
apiGroup string

API group to which it belongs

kind string

Kind for machine class

name string

Name of machine class


ConditionStatus (string alias)

(Appears on: MachineDeploymentCondition, MachineSetCondition)

ConditionStatus are valid condition statuses


CurrentStatus

(Appears on: MachineStatus)

CurrentStatus contains information about the current status of Machine.

Field Type Description
phase MachinePhase
timeoutActive bool
lastUpdateTime Kubernetes meta/v1.Time

Last update time of current status


LastOperation

(Appears on: MachineSetStatus, MachineStatus, MachineSummary)

LastOperation suggests the last operation performed on the object

Field Type Description
description string

Description of the current operation

errorCode string (Optional)

ErrorCode of the current operation if any

lastUpdateTime Kubernetes meta/v1.Time

Last update time of current operation

state MachineState

State of operation

type MachineOperationType

Type of operation


MachineConfiguration

(Appears on: MachineSpec)

MachineConfiguration describes the configurations useful for the machine-controller.

Field Type Description
drainTimeout Kubernetes meta/v1.Duration (Optional)

MachineDraintimeout is the timeout after which machine is forcefully deleted.

healthTimeout Kubernetes meta/v1.Duration (Optional)

MachineHealthTimeout is the timeout after which machine is declared unhealhty/failed.

creationTimeout Kubernetes meta/v1.Duration (Optional)

MachineCreationTimeout is the timeout after which machinie creation is declared failed.

maxEvictRetries *int32 (Optional)

MaxEvictRetries is the number of retries that will be attempted while draining the node.

nodeConditions *string (Optional)

NodeConditions are the set of conditions if set to true for MachineHealthTimeOut, machine will be declared failed.


MachineDeploymentCondition

(Appears on: MachineDeploymentStatus)

MachineDeploymentCondition describes the state of a MachineDeployment at a certain point.

Field Type Description
type MachineDeploymentConditionType

Type of MachineDeployment condition.

status ConditionStatus

Status of the condition, one of True, False, Unknown.

lastUpdateTime Kubernetes meta/v1.Time

The last time this condition was updated.

lastTransitionTime Kubernetes meta/v1.Time

Last time the condition transitioned from one status to another.

reason string

The reason for the condition’s last transition.

message string

A human readable message indicating details about the transition.


MachineDeploymentConditionType (string alias)

(Appears on: MachineDeploymentCondition)

MachineDeploymentConditionType are valid conditions of MachineDeployments


MachineDeploymentSpec

(Appears on: MachineDeployment)

MachineDeploymentSpec is the specification of the desired behavior of the MachineDeployment.

Field Type Description
replicas int32 (Optional)

Number of desired machines. This is a pointer to distinguish between explicit zero and not specified. Defaults to 0.

selector Kubernetes meta/v1.LabelSelector (Optional)

Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this MachineDeployment.

template MachineTemplateSpec

Template describes the machines that will be created.

strategy MachineDeploymentStrategy (Optional)

The MachineDeployment strategy to use to replace existing machines with new ones.

minReadySeconds int32 (Optional)

Minimum number of seconds for which a newly created machine should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (machine will be considered available as soon as it is ready)

revisionHistoryLimit *int32 (Optional)

The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.

paused bool (Optional)

Indicates that the MachineDeployment is paused and will not be processed by the MachineDeployment controller.

rollbackTo RollbackConfig (Optional)

DEPRECATED. The config this MachineDeployment is rolling back to. Will be cleared after rollback is done.

progressDeadlineSeconds *int32 (Optional)

The maximum time in seconds for a MachineDeployment to make progress before it is considered to be failed. The MachineDeployment controller will continue to process failed MachineDeployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the MachineDeployment status. Note that progress will not be estimated during the time a MachineDeployment is paused. This is not set by default, which is treated as infinite deadline.


MachineDeploymentStatus

(Appears on: MachineDeployment)

MachineDeploymentStatus is the most recently observed status of the MachineDeployment.

Field Type Description
observedGeneration int64 (Optional)

The generation observed by the MachineDeployment controller.

replicas int32 (Optional)

Total number of non-terminated machines targeted by this MachineDeployment (their labels match the selector).

updatedReplicas int32 (Optional)

Total number of non-terminated machines targeted by this MachineDeployment that have the desired template spec.

readyReplicas int32 (Optional)

Total number of ready machines targeted by this MachineDeployment.

availableReplicas int32 (Optional)

Total number of available machines (ready for at least minReadySeconds) targeted by this MachineDeployment.

unavailableReplicas int32 (Optional)

Total number of unavailable machines targeted by this MachineDeployment. This is the total number of machines that are still required for the MachineDeployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created.

conditions []MachineDeploymentCondition

Represents the latest available observations of a MachineDeployment’s current state.

collisionCount *int32 (Optional)

Count of hash collisions for the MachineDeployment. The MachineDeployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest MachineSet.

failedMachines []*github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1.MachineSummary (Optional)

FailedMachines has summary of machines on which lastOperation Failed


MachineDeploymentStrategy

(Appears on: MachineDeploymentSpec)

MachineDeploymentStrategy describes how to replace existing machines with new ones.

Field Type Description
type MachineDeploymentStrategyType (Optional)

Type of MachineDeployment. Can be “Recreate” or “RollingUpdate”. Default is RollingUpdate.

rollingUpdate RollingUpdateMachineDeployment (Optional)

Rolling update config params. Present only if MachineDeploymentStrategyType =

RollingUpdate.

TODO: Update this to follow our convention for oneOf, whatever we decide it to be.


MachineDeploymentStrategyType (string alias)

(Appears on: MachineDeploymentStrategy)

MachineDeploymentStrategyType are valid strategy types for rolling MachineDeployments


MachineOperationType (string alias)

(Appears on: LastOperation)

MachineOperationType is a label for the operation performed on a machine object.


MachinePhase (string alias)

(Appears on: CurrentStatus)

MachinePhase is a label for the condition of a machine at the current time.


MachineSetCondition

(Appears on: MachineSetStatus)

MachineSetCondition describes the state of a machine set at a certain point.

Field Type Description
type MachineSetConditionType

Type of machine set condition.

status ConditionStatus

Status of the condition, one of True, False, Unknown.

lastTransitionTime Kubernetes meta/v1.Time (Optional)

The last time the condition transitioned from one status to another.

reason string (Optional)

The reason for the condition’s last transition.

message string (Optional)

A human readable message indicating details about the transition.


MachineSetConditionType (string alias)

(Appears on: MachineSetCondition)

MachineSetConditionType is the condition on machineset object


MachineSetSpec

(Appears on: MachineSet)

MachineSetSpec is the specification of a MachineSet.

Field Type Description
replicas int32 (Optional)
selector Kubernetes meta/v1.LabelSelector (Optional)
machineClass ClassSpec (Optional)
template MachineTemplateSpec (Optional)
minReadySeconds int32 (Optional)

MachineSetStatus

(Appears on: MachineSet)

MachineSetStatus holds the most recently observed status of MachineSet.

Field Type Description
replicas int32

Replicas is the number of actual replicas.

fullyLabeledReplicas int32 (Optional)

The number of pods that have labels matching the labels of the pod template of the replicaset.

readyReplicas int32 (Optional)

The number of ready replicas for this replica set.

availableReplicas int32 (Optional)

The number of available replicas (ready for at least minReadySeconds) for this replica set.

observedGeneration int64 (Optional)

ObservedGeneration is the most recent generation observed by the controller.

machineSetCondition []MachineSetCondition (Optional)

Represents the latest available observations of a replica set’s current state.

lastOperation LastOperation

LastOperation performed

failedMachines []github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1.MachineSummary (Optional)

FailedMachines has summary of machines on which lastOperation Failed


MachineSpec

(Appears on: Machine, MachineTemplateSpec)

MachineSpec is the specification of a Machine.

Field Type Description
class ClassSpec (Optional)

Class contains the machineclass attributes of a machine

providerID string (Optional)

ProviderID represents the provider’s unique ID given to a machine

nodeTemplate NodeTemplateSpec (Optional)

NodeTemplateSpec describes the data a node should have when created from a template

MachineConfiguration MachineConfiguration

(Members of MachineConfiguration are embedded into this type.)

(Optional)

Configuration for the machine-controller.


MachineState (string alias)

(Appears on: LastOperation)

MachineState is a current state of the operation.


MachineStatus

(Appears on: Machine)

MachineStatus holds the most recently observed status of Machine.

Field Type Description
conditions []Kubernetes core/v1.NodeCondition

Conditions of this machine, same as node

lastOperation LastOperation

Last operation refers to the status of the last operation performed

currentStatus CurrentStatus

Current status of the machine object

lastKnownState string (Optional)

LastKnownState can store details of the last known state of the VM by the plugins. It can be used by future operation calls to determine current infrastucture state


MachineSummary

MachineSummary store the summary of machine.

Field Type Description
name string

Name of the machine object

providerID string

ProviderID represents the provider’s unique ID given to a machine

lastOperation LastOperation

Last operation refers to the status of the last operation performed

ownerRef string

OwnerRef


MachineTemplateSpec

(Appears on: MachineDeploymentSpec, MachineSetSpec)

MachineTemplateSpec describes the data a machine should have when created from a template

Field Type Description
metadata Kubernetes meta/v1.ObjectMeta (Optional)

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

Refer to the Kubernetes API documentation for the fields of the metadata field.
spec MachineSpec (Optional)

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



class ClassSpec (Optional)

Class contains the machineclass attributes of a machine

providerID string (Optional)

ProviderID represents the provider’s unique ID given to a machine

nodeTemplate NodeTemplateSpec (Optional)

NodeTemplateSpec describes the data a node should have when created from a template

MachineConfiguration MachineConfiguration

(Members of MachineConfiguration are embedded into this type.)

(Optional)

Configuration for the machine-controller.


NodeTemplate

(Appears on: MachineClass)

NodeTemplate contains subfields to track all node resources and other node info required to scale nodegroup from zero

Field Type Description
capacity Kubernetes core/v1.ResourceList

Capacity contains subfields to track all node resources required to scale nodegroup from zero

instanceType string

Instance type of the node belonging to nodeGroup

region string

Region of the expected node belonging to nodeGroup

zone string

Zone of the expected node belonging to nodeGroup

architecture *string (Optional)

CPU Architecture of the node belonging to nodeGroup


NodeTemplateSpec

(Appears on: MachineSpec)

NodeTemplateSpec describes the data a node should have when created from a template

Field Type Description
metadata Kubernetes meta/v1.ObjectMeta (Optional) Refer to the Kubernetes API documentation for the fields of the metadata field.
spec Kubernetes core/v1.NodeSpec (Optional)

NodeSpec describes the attributes that a node is created with.



podCIDR string (Optional)

PodCIDR represents the pod IP range assigned to the node.

podCIDRs []string (Optional)

podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.

providerID string (Optional)

ID of the node assigned by the cloud provider in the format: ://

unschedulable bool (Optional)

Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration

taints []Kubernetes core/v1.Taint (Optional)

If specified, the node’s taints.

configSource Kubernetes core/v1.NodeConfigSource (Optional)

Deprecated: Previously used to specify the source of the node’s configuration for the DynamicKubeletConfig feature. This feature is removed.

externalID string (Optional)

Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966


RollbackConfig

(Appears on: MachineDeploymentSpec)

RollbackConfig is the config to rollback a MachineDeployment

Field Type Description
revision int64 (Optional)

The revision to rollback to. If set to 0, rollback to the last revision.


RollingUpdateMachineDeployment

(Appears on: MachineDeploymentStrategy)

RollingUpdateMachineDeployment is the spec to control the desired behavior of rolling update.

Field Type Description
maxUnavailable k8s.io/apimachinery/pkg/util/intstr.IntOrString (Optional)

The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old MC can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MC can be scaled down further, followed by scaling up the new MC, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.

maxSurge k8s.io/apimachinery/pkg/util/intstr.IntOrString (Optional)

The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new MC can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MC can be scaled up further, ensuring that total number of machines running at any time during the update is atmost 130% of desired machines.


Generated with gen-crd-api-reference-docs