Documentation ¶
Overview ¶
+kubebuilder:validation:Optional +groupName=machine.openshift.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AWSLoadBalancerType
- type AWSMachineProviderConfig
- type AWSMachineProviderConfigList
- type AWSMachineProviderStatus
- type AWSNetworkInterfaceType
- type AWSResourceReference
- type AzureImageType
- type AzureMachineProviderSpec
- type AzureMachineProviderStatus
- type AzureUltraSSDCapabilityState
- type AzureVMState
- type BlockDeviceMappingSpec
- type CachingTypeOption
- type CloneMode
- type ClusterStatusError
- type Condition
- type ConditionSeverity
- type ConditionType
- type Conditions
- type DataDisk
- type DataDiskManagedDiskParameters
- type DiskDeletionPolicyType
- type DiskEncryptionSetParameters
- type DiskSettings
- type EBSBlockDeviceSpec
- type Filter
- type GCPDisk
- type GCPEncryptionKeyReference
- type GCPGPUConfig
- type GCPHostMaintenanceType
- type GCPKMSKeyReference
- type GCPMachineProviderSpec
- type GCPMachineProviderStatus
- type GCPMetadata
- type GCPNetworkInterface
- type GCPRestartPolicyType
- type GCPServiceAccount
- type Image
- type InstanceTenancy
- type LastOperation
- type LifecycleHook
- type LifecycleHooks
- type LoadBalancerReference
- type Machine
- type MachineDeploymentStrategyType
- type MachineHealthCheck
- type MachineHealthCheckList
- type MachineHealthCheckSpec
- type MachineHealthCheckStatus
- type MachineList
- type MachineSet
- type MachineSetDeletePolicy
- type MachineSetList
- type MachineSetSpec
- type MachineSetStatus
- type MachineSetStatusError
- type MachineSpec
- type MachineStatus
- type MachineStatusError
- type MachineTemplateSpec
- type MetadataServiceAuthentication
- type MetadataServiceOptions
- type NetworkDeviceSpec
- type NetworkSpec
- type OSDisk
- type OSDiskManagedDiskParameters
- type ObjectMeta
- type Placement
- type ProviderSpec
- type RemediationStrategyType
- type SecurityProfile
- type SpotMarketOptions
- type SpotVMOptions
- type StorageAccountType
- type TagSpecification
- type UnhealthyCondition
- type VSphereMachineProviderSpec
- type VSphereMachineProviderStatus
- type Workspace
Constants ¶
const ( // MetadataServiceAuthenticationRequired enforces sending of a signed token header with any instance metadata retrieval (GET) requests. // Enforces IMDSv2 usage. MetadataServiceAuthenticationRequired = "Required" // MetadataServiceAuthenticationOptional allows IMDSv1 usage along with IMDSv2 MetadataServiceAuthenticationOptional = "Optional" )
const ( // ProvisioningState related values // VMStateCreating ... VMStateCreating = AzureVMState("Creating") // VMStateDeleting ... VMStateDeleting = AzureVMState("Deleting") // VMStateFailed ... VMStateFailed = AzureVMState("Failed") // VMStateMigrating ... VMStateMigrating = AzureVMState("Migrating") // VMStateSucceeded ... VMStateSucceeded = AzureVMState("Succeeded") // VMStateUpdating ... VMStateUpdating = AzureVMState("Updating") // PowerState related values // VMStateStarting ... VMStateStarting = AzureVMState("Starting") // VMStateRunning ... VMStateRunning = AzureVMState("Running") // VMStateStopping ... VMStateStopping = AzureVMState("Stopping") // VMStateStopped ... VMStateStopped = AzureVMState("Stopped") // VMStateDeallocating ... VMStateDeallocating = AzureVMState("Deallocating") // VMStateDeallocated ... VMStateDeallocated = AzureVMState("Deallocated") // VMStateUnknown ... VMStateUnknown = AzureVMState("Unknown") )
const ( // MachineFinalizer is set on PrepareForCreate callback. MachineFinalizer = "machine.machine.openshift.io" // MachineClusterLabelName is the label set on machines linked to a cluster. MachineClusterLabelName = "cluster.k8s.io/cluster-name" // MachineClusterIDLabel is the label that a machine must have to identify the // cluster to which it belongs. MachineClusterIDLabel = "machine.openshift.io/cluster-api-cluster" )
const ( // MachineCreationSucceeded indicates machine creation success. MachineCreationSucceededConditionReason string = "MachineCreationSucceeded" // MachineCreationFailed indicates machine creation failure. MachineCreationFailedConditionReason string = "MachineCreationFailed" // ErrorCheckingProviderReason is the reason used when the exist operation fails. // This would normally be because we cannot contact the provider. ErrorCheckingProviderReason = "ErrorCheckingProvider" // InstanceMissingReason is the reason used when the machine was provisioned, but the instance has gone missing. InstanceMissingReason = "InstanceMissing" // InstanceNotCreatedReason is the reason used when the machine has not yet been provisioned. InstanceNotCreatedReason = "InstanceNotCreated" // TooManyUnhealthy is the reason used when too many Machines are unhealthy and the MachineHealthCheck is blocked // from making any further remediations. TooManyUnhealthyReason = "TooManyUnhealthy" // ExternalRemediationTemplateNotFound is the reason used when a machine health check fails to find external remediation template. ExternalRemediationTemplateNotFound = "ExternalRemediationTemplateNotFound" // ExternalRemediationRequestCreationFailed is the reason used when a machine health check fails to create external remediation request. ExternalRemediationRequestCreationFailed = "ExternalRemediationRequestCreationFailed" // MachineHookPresent indicates that a machine lifecycle hook is blocking part of the lifecycle of the machine. // This should be used with the `Drainable` and `Terminable` machine condition types. MachineHookPresent = "HookPresent" // MachineDrainError indicates an error occurred when draining the machine. // This should be used with the `Drained` condition type. MachineDrainError = "DrainError" )
Variables ¶
var ( GroupName = "machine.openshift.io" GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} // Install is a function which adds this version to a scheme Install = schemeBuilder.AddToScheme // SchemeGroupVersion generated code relies on this name // Deprecated SchemeGroupVersion = GroupVersion // AddToScheme exists solely to keep the old generators creating valid code // DEPRECATED AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED
Types ¶
type AWSLoadBalancerType ¶
type AWSLoadBalancerType string
AWSLoadBalancerType is the type of LoadBalancer to use when registering an instance with load balancers specified in LoadBalancerNames
const ( ClassicLoadBalancerType AWSLoadBalancerType = "classic" // AWS classic ELB NetworkLoadBalancerType AWSLoadBalancerType = "network" // AWS Network Load Balancer (NLB) )
Possible values for AWSLoadBalancerType. Add to this list as other types of load balancer are supported by the actuator.
type AWSMachineProviderConfig ¶
type AWSMachineProviderConfig struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // AMI is the reference to the AMI from which to create the machine instance. AMI AWSResourceReference `json:"ami"` // InstanceType is the type of instance to create. Example: m4.xlarge InstanceType string `json:"instanceType"` // Tags is the set of tags to add to apply to an instance, in addition to the ones // added by default by the actuator. These tags are additive. The actuator will ensure // these tags are present, but will not remove any other tags that may exist on the // instance. // +optional Tags []TagSpecification `json:"tags,omitempty"` // IAMInstanceProfile is a reference to an IAM role to assign to the instance // +optional IAMInstanceProfile *AWSResourceReference `json:"iamInstanceProfile,omitempty"` // UserDataSecret contains a local reference to a secret that contains the // UserData to apply to the instance // +optional UserDataSecret *corev1.LocalObjectReference `json:"userDataSecret,omitempty"` // CredentialsSecret is a reference to the secret with AWS credentials. Otherwise, defaults to permissions // provided by attached IAM role where the actuator is running. // +optional CredentialsSecret *corev1.LocalObjectReference `json:"credentialsSecret,omitempty"` // KeyName is the name of the KeyPair to use for SSH // +optional KeyName *string `json:"keyName,omitempty"` // DeviceIndex is the index of the device on the instance for the network interface attachment. // Defaults to 0. DeviceIndex int64 `json:"deviceIndex"` // PublicIP specifies whether the instance should get a public IP. If not present, // it should use the default of its subnet. // +optional PublicIP *bool `json:"publicIp,omitempty"` // NetworkInterfaceType specifies the type of network interface to be used for the primary // network interface. // Valid values are "ENA", "EFA", and omitted, which means no opinion and the platform // chooses a good default which may change over time. // The current default value is "ENA". // Please visit https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html to learn more // about the AWS Elastic Fabric Adapter interface option. // +kubebuilder:validation:Enum:="ENA";"EFA" // +optional NetworkInterfaceType AWSNetworkInterfaceType `json:"networkInterfaceType,omitempty"` // SecurityGroups is an array of references to security groups that should be applied to the // instance. // +optional SecurityGroups []AWSResourceReference `json:"securityGroups,omitempty"` // Subnet is a reference to the subnet to use for this instance Subnet AWSResourceReference `json:"subnet"` // Placement specifies where to create the instance in AWS Placement Placement `json:"placement"` // LoadBalancers is the set of load balancers to which the new instance // should be added once it is created. // +optional LoadBalancers []LoadBalancerReference `json:"loadBalancers,omitempty"` // BlockDevices is the set of block device mapping associated to this instance, // block device without a name will be used as a root device and only one device without a name is allowed // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html // +optional BlockDevices []BlockDeviceMappingSpec `json:"blockDevices,omitempty"` // SpotMarketOptions allows users to configure instances to be run using AWS Spot instances. // +optional SpotMarketOptions *SpotMarketOptions `json:"spotMarketOptions,omitempty"` // MetadataServiceOptions allows users to configure instance metadata service interaction options. // If nothing specified, default AWS IMDS settings will be applied. // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html // +optional MetadataServiceOptions MetadataServiceOptions `json:"metadataServiceOptions,omitempty"` }
AWSMachineProviderConfig is the Schema for the awsmachineproviderconfigs API Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2 +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*AWSMachineProviderConfig) DeepCopy ¶
func (in *AWSMachineProviderConfig) DeepCopy() *AWSMachineProviderConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSMachineProviderConfig.
func (*AWSMachineProviderConfig) DeepCopyInto ¶
func (in *AWSMachineProviderConfig) DeepCopyInto(out *AWSMachineProviderConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AWSMachineProviderConfig) DeepCopyObject ¶
func (in *AWSMachineProviderConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (AWSMachineProviderConfig) SwaggerDoc ¶
func (AWSMachineProviderConfig) SwaggerDoc() map[string]string
type AWSMachineProviderConfigList ¶
type AWSMachineProviderConfigList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty"` Items []AWSMachineProviderConfig `json:"items"` }
AWSMachineProviderConfigList contains a list of AWSMachineProviderConfig Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*AWSMachineProviderConfigList) DeepCopy ¶
func (in *AWSMachineProviderConfigList) DeepCopy() *AWSMachineProviderConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSMachineProviderConfigList.
func (*AWSMachineProviderConfigList) DeepCopyInto ¶
func (in *AWSMachineProviderConfigList) DeepCopyInto(out *AWSMachineProviderConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AWSMachineProviderConfigList) SwaggerDoc ¶
func (AWSMachineProviderConfigList) SwaggerDoc() map[string]string
type AWSMachineProviderStatus ¶
type AWSMachineProviderStatus struct { metav1.TypeMeta `json:",inline"` // InstanceID is the instance ID of the machine created in AWS // +optional InstanceID *string `json:"instanceId,omitempty"` // InstanceState is the state of the AWS instance for this machine // +optional InstanceState *string `json:"instanceState,omitempty"` // Conditions is a set of conditions associated with the Machine to indicate // errors or other status // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` }
AWSMachineProviderStatus is the type that will be embedded in a Machine.Status.ProviderStatus field. It contains AWS-specific status information. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*AWSMachineProviderStatus) DeepCopy ¶
func (in *AWSMachineProviderStatus) DeepCopy() *AWSMachineProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSMachineProviderStatus.
func (*AWSMachineProviderStatus) DeepCopyInto ¶
func (in *AWSMachineProviderStatus) DeepCopyInto(out *AWSMachineProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AWSMachineProviderStatus) SwaggerDoc ¶
func (AWSMachineProviderStatus) SwaggerDoc() map[string]string
type AWSNetworkInterfaceType ¶
type AWSNetworkInterfaceType string
AWSNetworkInterfaceType defines the network interface type of the the AWS EC2 network interface.
const ( // AWSENANetworkInterfaceType is the default network interface type, // the EC2 Elastic Network Adapter commonly used with EC2 instances. // This should be used for standard network operations. AWSENANetworkInterfaceType AWSNetworkInterfaceType = "ENA" // AWSEFANetworkInterfaceType is the Elastic Fabric Adapter network interface type. AWSEFANetworkInterfaceType AWSNetworkInterfaceType = "EFA" )
type AWSResourceReference ¶
type AWSResourceReference struct { // ID of resource // +optional ID *string `json:"id,omitempty"` // ARN of resource // +optional ARN *string `json:"arn,omitempty"` // Filters is a set of filters used to identify a resource // +optional Filters []Filter `json:"filters,omitempty"` }
AWSResourceReference is a reference to a specific AWS resource by ID, ARN, or filters. Only one of ID, ARN or Filters may be specified. Specifying more than one will result in a validation error.
func (*AWSResourceReference) DeepCopy ¶
func (in *AWSResourceReference) DeepCopy() *AWSResourceReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSResourceReference.
func (*AWSResourceReference) DeepCopyInto ¶
func (in *AWSResourceReference) DeepCopyInto(out *AWSResourceReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AWSResourceReference) SwaggerDoc ¶
func (AWSResourceReference) SwaggerDoc() map[string]string
type AzureImageType ¶
type AzureImageType string
AzureImageType provides an enumeration for the valid image types.
const ( // AzureImageTypeID specifies that the image should be referenced by its resource ID. AzureImageTypeID AzureImageType = "ID" // AzureImageTypeMarketplaceNoPlan are images available from the marketplace that do not require a purchase plan. AzureImageTypeMarketplaceNoPlan AzureImageType = "MarketplaceNoPlan" // AzureImageTypeMarketplaceWithPlan require a purchase plan. Upstream these images are referred to as "ThirdParty." AzureImageTypeMarketplaceWithPlan AzureImageType = "MarketplaceWithPlan" )
type AzureMachineProviderSpec ¶
type AzureMachineProviderSpec struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // UserDataSecret contains a local reference to a secret that contains the // UserData to apply to the instance // +optional UserDataSecret *corev1.SecretReference `json:"userDataSecret,omitempty"` // CredentialsSecret is a reference to the secret with Azure credentials. // +optional CredentialsSecret *corev1.SecretReference `json:"credentialsSecret,omitempty"` // Location is the region to use to create the instance // +optional Location string `json:"location,omitempty"` // VMSize is the size of the VM to create. // +optional VMSize string `json:"vmSize,omitempty"` // Image is the OS image to use to create the instance. Image Image `json:"image"` // OSDisk represents the parameters for creating the OS disk. OSDisk OSDisk `json:"osDisk"` // DataDisk specifies the parameters that are used to add one or more data disks to the machine. // +optional DataDisks []DataDisk `json:"dataDisks,omitempty"` // SSHPublicKey is the public key to use to SSH to the virtual machine. // +optional SSHPublicKey string `json:"sshPublicKey,omitempty"` // PublicIP if true a public IP will be used PublicIP bool `json:"publicIP"` // Tags is a list of tags to apply to the machine. // +optional Tags map[string]string `json:"tags,omitempty"` // Network Security Group that needs to be attached to the machine's interface. // No security group will be attached if empty. // +optional SecurityGroup string `json:"securityGroup,omitempty"` // Application Security Groups that need to be attached to the machine's interface. // No application security groups will be attached if zero-length. // +optional ApplicationSecurityGroups []string `json:"applicationSecurityGroups,omitempty"` // Subnet to use for this instance Subnet string `json:"subnet"` // PublicLoadBalancer to use for this instance // +optional PublicLoadBalancer string `json:"publicLoadBalancer,omitempty"` // InternalLoadBalancerName to use for this instance // +optional InternalLoadBalancer string `json:"internalLoadBalancer,omitempty"` // NatRule to set inbound NAT rule of the load balancer // +optional NatRule *int64 `json:"natRule,omitempty"` // ManagedIdentity to set managed identity name // +optional ManagedIdentity string `json:"managedIdentity,omitempty"` // Vnet to set virtual network name // +optional Vnet string `json:"vnet,omitempty"` // Availability Zone for the virtual machine. // If nil, the virtual machine should be deployed to no zone // +optional Zone *string `json:"zone,omitempty"` // NetworkResourceGroup is the resource group for the virtual machine's network // +optional NetworkResourceGroup string `json:"networkResourceGroup,omitempty"` // ResourceGroup is the resource group for the virtual machine // +optional ResourceGroup string `json:"resourceGroup,omitempty"` // SpotVMOptions allows the ability to specify the Machine should use a Spot VM // +optional SpotVMOptions *SpotVMOptions `json:"spotVMOptions,omitempty"` // SecurityProfile specifies the Security profile settings for a virtual machine. // +optional SecurityProfile *SecurityProfile `json:"securityProfile,omitempty"` // UltraSSDCapability enables or disables Azure UltraSSD capability for a virtual machine. // This can be used to allow/disallow binding of Azure UltraSSD to the Machine both as Data Disks or via Persistent Volumes. // This Azure feature is subject to a specific scope and certain limitations. // More informations on this can be found in the official Azure documentation for Ultra Disks: // (https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd?tabs=azure-portal#ga-scope-and-limitations). // // When omitted, if at least one Data Disk of type UltraSSD is specified, the platform will automatically enable the capability. // If a Perisistent Volume backed by an UltraSSD is bound to a Pod on the Machine, when this field is ommitted, the platform will *not* automatically enable the capability (unless already enabled by the presence of an UltraSSD as Data Disk). // This may manifest in the Pod being stuck in `ContainerCreating` phase. // This defaulting behaviour may be subject to change in future. // // When set to "Enabled", if the capability is available for the Machine based on the scope and limitations described above, the capability will be set on the Machine. // This will thus allow UltraSSD both as Data Disks and Persistent Volumes. // If set to "Enabled" when the capability can't be available due to scope and limitations, the Machine will go into "Failed" state. // // When set to "Disabled", UltraSSDs will not be allowed either as Data Disks nor as Persistent Volumes. // In this case if any UltraSSDs are specified as Data Disks on a Machine, the Machine will go into a "Failed" state. // If instead any UltraSSDs are backing the volumes (via Persistent Volumes) of any Pods scheduled on a Node which is backed by the Machine, the Pod may get stuck in `ContainerCreating` phase. // // +kubebuilder:validation:Enum:="Enabled";"Disabled" // +optional UltraSSDCapability AzureUltraSSDCapabilityState `json:"ultraSSDCapability,omitempty"` // AcceleratedNetworking enables or disables Azure accelerated networking feature. // Set to false by default. If true, then this will depend on whether the requested // VMSize is supported. If set to true with an unsupported VMSize, Azure will return an error. // +optional AcceleratedNetworking bool `json:"acceleratedNetworking,omitempty"` // AvailabilitySet specifies the availability set to use for this instance. // Availability set should be precreated, before using this field. // +optional AvailabilitySet string `json:"availabilitySet,omitempty"` }
AzureMachineProviderSpec is the type that will be embedded in a Machine.Spec.ProviderSpec field for an Azure virtual machine. It is used by the Azure machine actuator to create a single Machine. Required parameters such as location that are not specified by this configuration, will be defaulted by the actuator. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2 +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*AzureMachineProviderSpec) DeepCopy ¶
func (in *AzureMachineProviderSpec) DeepCopy() *AzureMachineProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureMachineProviderSpec.
func (*AzureMachineProviderSpec) DeepCopyInto ¶
func (in *AzureMachineProviderSpec) DeepCopyInto(out *AzureMachineProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AzureMachineProviderSpec) DeepCopyObject ¶
func (in *AzureMachineProviderSpec) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (AzureMachineProviderSpec) SwaggerDoc ¶
func (AzureMachineProviderSpec) SwaggerDoc() map[string]string
type AzureMachineProviderStatus ¶
type AzureMachineProviderStatus struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // VMID is the ID of the virtual machine created in Azure. // +optional VMID *string `json:"vmId,omitempty"` // VMState is the provisioning state of the Azure virtual machine. // +optional VMState *AzureVMState `json:"vmState,omitempty"` // Conditions is a set of conditions associated with the Machine to indicate // errors or other status. // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` }
AzureMachineProviderStatus is the type that will be embedded in a Machine.Status.ProviderStatus field. It contains Azure-specific status information. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*AzureMachineProviderStatus) DeepCopy ¶
func (in *AzureMachineProviderStatus) DeepCopy() *AzureMachineProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureMachineProviderStatus.
func (*AzureMachineProviderStatus) DeepCopyInto ¶
func (in *AzureMachineProviderStatus) DeepCopyInto(out *AzureMachineProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (AzureMachineProviderStatus) SwaggerDoc ¶
func (AzureMachineProviderStatus) SwaggerDoc() map[string]string
type AzureUltraSSDCapabilityState ¶
type AzureUltraSSDCapabilityState string
AzureUltraSSDCapabilityState defines the different states of an UltraSSDCapability
const ( // "AzureUltraSSDCapabilityEnabled" means the Azure UltraSSDCapability is Enabled AzureUltraSSDCapabilityEnabled AzureUltraSSDCapabilityState = "Enabled" // "AzureUltraSSDCapabilityDisabled" means the Azure UltraSSDCapability is Disabled AzureUltraSSDCapabilityDisabled AzureUltraSSDCapabilityState = "Disabled" )
These are the valid AzureUltraSSDCapabilityState states.
type AzureVMState ¶
type AzureVMState string
VMState describes the state of an Azure virtual machine.
type BlockDeviceMappingSpec ¶
type BlockDeviceMappingSpec struct { // The device name exposed to the machine (for example, /dev/sdh or xvdh). // +optional DeviceName *string `json:"deviceName,omitempty"` // Parameters used to automatically set up EBS volumes when the machine is // launched. // +optional EBS *EBSBlockDeviceSpec `json:"ebs,omitempty"` // Suppresses the specified device included in the block device mapping of the // AMI. // +optional NoDevice *string `json:"noDevice,omitempty"` // The virtual device name (ephemeralN). Machine store volumes are numbered // starting from 0. An machine type with 2 available machine store volumes // can specify mappings for ephemeral0 and ephemeral1.The number of available // machine store volumes depends on the machine type. After you connect to // the machine, you must mount the volume. // // Constraints: For M3 machines, you must specify machine store volumes in // the block device mapping for the machine. When you launch an M3 machine, // we ignore any machine store volumes specified in the block device mapping // for the AMI. // +optional VirtualName *string `json:"virtualName,omitempty"` }
BlockDeviceMappingSpec describes a block device mapping
func (*BlockDeviceMappingSpec) DeepCopy ¶
func (in *BlockDeviceMappingSpec) DeepCopy() *BlockDeviceMappingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceMappingSpec.
func (*BlockDeviceMappingSpec) DeepCopyInto ¶
func (in *BlockDeviceMappingSpec) DeepCopyInto(out *BlockDeviceMappingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BlockDeviceMappingSpec) SwaggerDoc ¶
func (BlockDeviceMappingSpec) SwaggerDoc() map[string]string
type CachingTypeOption ¶
type CachingTypeOption string
CachingTypeOption defines the different values for a CachingType.
const ( // CachingTypeReadOnly means the CachingType is "ReadOnly". CachingTypeReadOnly CachingTypeOption = "ReadOnly" // CachingTypeReadWrite means the CachingType is "ReadWrite". CachingTypeReadWrite CachingTypeOption = "ReadWrite" // CachingTypeNone means the CachingType is "None". CachingTypeNone CachingTypeOption = "None" )
These are the valid CachingTypeOption values.
type CloneMode ¶
type CloneMode string
CloneMode is the type of clone operation used to clone a VM from a template.
const ( // FullClone indicates a VM will have no relationship to the source of the // clone operation once the operation is complete. This is the safest clone // mode, but it is not the fastest. FullClone CloneMode = "fullClone" // LinkedClone means resulting VMs will be dependent upon the snapshot of // the source VM/template from which the VM was cloned. This is the fastest // clone mode, but it also prevents expanding a VMs disk beyond the size of // the source VM/template. LinkedClone CloneMode = "linkedClone" )
type ClusterStatusError ¶
type ClusterStatusError string
const ( // InvalidConfigurationClusterError indicates that the cluster // configuration is invalid. InvalidConfigurationClusterError ClusterStatusError = "InvalidConfiguration" // UnsupportedChangeClusterError indicates that the cluster // spec has been updated in an unsupported way. That cannot be // reconciled. UnsupportedChangeClusterError ClusterStatusError = "UnsupportedChange" // CreateClusterError indicates that an error was encountered // when trying to create the cluster. CreateClusterError ClusterStatusError = "CreateError" // UpdateClusterError indicates that an error was encountered // when trying to update the cluster. UpdateClusterError ClusterStatusError = "UpdateError" // DeleteClusterError indicates that an error was encountered // when trying to delete the cluster. DeleteClusterError ClusterStatusError = "DeleteError" )
type Condition ¶
type Condition struct { // Type of condition in CamelCase or in foo.example.com/CamelCase. // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions // can be useful (see .node.status.conditions), the ability to deconflict is important. // +required Type ConditionType `json:"type"` // Status of the condition, one of True, False, Unknown. // +required Status corev1.ConditionStatus `json:"status"` // Severity provides an explicit classification of Reason code, so the users or machines can immediately // understand the current situation and act accordingly. // The Severity field MUST be set only when Status=False. // +optional Severity ConditionSeverity `json:"severity,omitempty"` // Last time the condition transitioned from one status to another. // This should be when the underlying condition changed. If that is not known, then using the time when // the API field changed is acceptable. // +required LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` // The reason for the condition's last transition in CamelCase. // The specific API may choose whether or not this field is considered a guaranteed API. // This field may not be empty. // +optional Reason string `json:"reason,omitempty"` // A human readable message indicating details about the transition. // This field may be empty. // +optional Message string `json:"message,omitempty"` }
Condition defines an observation of a Machine API resource operational state.
func (*Condition) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (*Condition) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Condition) SwaggerDoc ¶
type ConditionSeverity ¶
type ConditionSeverity string
ConditionSeverity expresses the severity of a Condition Type failing.
const ( // ConditionSeverityError specifies that a condition with `Status=False` is an error. ConditionSeverityError ConditionSeverity = "Error" // ConditionSeverityWarning specifies that a condition with `Status=False` is a warning. ConditionSeverityWarning ConditionSeverity = "Warning" // ConditionSeverityInfo specifies that a condition with `Status=False` is informative. ConditionSeverityInfo ConditionSeverity = "Info" // ConditionSeverityNone should apply only to conditions with `Status=True`. ConditionSeverityNone ConditionSeverity = "" )
type ConditionType ¶
type ConditionType string
ConditionType is a valid value for Condition.Type.
const ( // MachineCreated indicates whether the machine has been created or not. If not, // it should include a reason and message for the failure. // NOTE: MachineCreation is here for historical reasons, MachineCreated should be used instead MachineCreation ConditionType = "MachineCreation" // MachineCreated indicates whether the machine has been created or not. If not, // it should include a reason and message for the failure. MachineCreated ConditionType = "MachineCreated" // InstanceExistsCondition is set on the Machine to show whether a virtual mahcine has been created by the cloud provider. InstanceExistsCondition ConditionType = "InstanceExists" // RemediationAllowedCondition is set on MachineHealthChecks to show the status of whether the MachineHealthCheck is // allowed to remediate any Machines or whether it is blocked from remediating any further. RemediationAllowedCondition ConditionType = "RemediationAllowed" // ExternalRemediationTemplateAvailable is set on machinehealthchecks when MachineHealthCheck controller uses external remediation. // ExternalRemediationTemplateAvailable is set to false if external remediation template is not found. ExternalRemediationTemplateAvailable ConditionType = "ExternalRemediationTemplateAvailable" // ExternalRemediationRequestAvailable is set on machinehealthchecks when MachineHealthCheck controller uses external remediation. // ExternalRemediationRequestAvailable is set to false if creating external remediation request fails. ExternalRemediationRequestAvailable ConditionType = "ExternalRemediationRequestAvailable" // MachineDrained is set on a machine to indicate that the machine has been drained. When an error occurs during // the drain process, the condition will be added with a false status and details of the error. MachineDrained ConditionType = "Drained" // MachineDrainable is set on a machine to indicate whether or not the machine can be drained, or, whether some // deletion hook is blocking the drain operation. MachineDrainable ConditionType = "Drainable" // MachineTerminable is set on a machine to indicate whether or not the machine can be terminated, or, whether some // deletion hook is blocking the termination operation. MachineTerminable ConditionType = "Terminable" )
Valid conditions for a machine.
type Conditions ¶
type Conditions []Condition
Conditions provide observations of the operational state of a Machine API resource.
func (Conditions) DeepCopy ¶
func (in Conditions) DeepCopy() Conditions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions.
func (Conditions) DeepCopyInto ¶
func (in Conditions) DeepCopyInto(out *Conditions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataDisk ¶
type DataDisk struct { // NameSuffix is the suffix to be appended to the machine name to generate the disk name. // Each disk name will be in format <machineName>_<nameSuffix>. // NameSuffix name must start and finish with an alphanumeric character and can only contain letters, numbers, underscores, periods or hyphens. // The overall disk name must not exceed 80 chars in length. // +kubebuilder:validation:Pattern:=`^[a-zA-Z0-9](?:[\w\.-]*[a-zA-Z0-9])?$` // +kubebuilder:validation:MaxLength:=78 // +kubebuilder:validation:Required NameSuffix string `json:"nameSuffix"` // DiskSizeGB is the size in GB to assign to the data disk. // +kubebuilder:validation:Minimum=4 // +kubebuilder:validation:Required DiskSizeGB int32 `json:"diskSizeGB"` // ManagedDisk specifies the Managed Disk parameters for the data disk. // Empty value means no opinion and the platform chooses a default, which is subject to change over time. // Currently the default is a ManagedDisk with with storageAccountType: "Premium_LRS" and diskEncryptionSet.id: "Default". // +optional ManagedDisk DataDiskManagedDiskParameters `json:"managedDisk,omitempty"` // Lun Specifies the logical unit number of the data disk. // This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. // This value is also needed for referencing the data disks devices within userdata to perform disk initialization through Ignition (e.g. partition/format/mount). // The value must be between 0 and 63. // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=63 // +kubebuilder:validation:Required Lun int32 `json:"lun,omitempty"` // CachingType specifies the caching requirements. // Empty value means no opinion and the platform chooses a default, which is subject to change over time. // Currently the default is CachingTypeNone. // +optional // +kubebuilder:validation:Enum=None;ReadOnly;ReadWrite CachingType CachingTypeOption `json:"cachingType,omitempty"` // DeletionPolicy specifies the data disk deletion policy upon Machine deletion. // Possible values are "Delete","Detach". // When "Delete" is used the data disk is deleted when the Machine is deleted. // When "Detach" is used the data disk is detached from the Machine and retained when the Machine is deleted. // +kubebuilder:validation:Enum=Delete;Detach // +kubebuilder:validation:Required DeletionPolicy DiskDeletionPolicyType `json:"deletionPolicy"` }
DataDisk specifies the parameters that are used to add one or more data disks to the machine. A Data Disk is a managed disk that's attached to a virtual machine to store application data. It differs from an OS Disk as it doesn't come with a pre-installed OS, and it cannot contain the boot volume. It is registered as SCSI drive and labeled with the chosen `lun`. e.g. for `lun: 0` the raw disk device will be available at `/dev/disk/azure/scsi1/lun0`.
As the Data Disk disk device is attached raw to the virtual machine, it will need to be partitioned, formatted with a filesystem and mounted, in order for it to be usable. This can be done by creating a custom userdata Secret with custom Ignition configuration to achieve the desired initialization. At this stage the previously defined `lun` is to be used as the "device" key for referencing the raw disk device to be initialized. Once the custom userdata Secret has been created, it can be referenced in the Machine's `.providerSpec.userDataSecret`. For further guidance and examples, please refer to the official OpenShift docs.
func (*DataDisk) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataDisk.
func (*DataDisk) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (DataDisk) SwaggerDoc ¶
type DataDiskManagedDiskParameters ¶
type DataDiskManagedDiskParameters struct { // StorageAccountType is the storage account type to use. // Possible values include "Standard_LRS", "Premium_LRS" and "UltraSSD_LRS". // +kubebuilder:validation:Enum=Standard_LRS;Premium_LRS;UltraSSD_LRS StorageAccountType StorageAccountType `json:"storageAccountType"` // DiskEncryptionSet is the disk encryption set properties. // Empty value means no opinion and the platform chooses a default, which is subject to change over time. // Currently the default is a DiskEncryptionSet with id: "Default". // +optional DiskEncryptionSet *DiskEncryptionSetParameters `json:"diskEncryptionSet,omitempty"` }
DataDiskManagedDiskParameters is the parameters of a DataDisk managed disk.
func (*DataDiskManagedDiskParameters) DeepCopy ¶
func (in *DataDiskManagedDiskParameters) DeepCopy() *DataDiskManagedDiskParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataDiskManagedDiskParameters.
func (*DataDiskManagedDiskParameters) DeepCopyInto ¶
func (in *DataDiskManagedDiskParameters) DeepCopyInto(out *DataDiskManagedDiskParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (DataDiskManagedDiskParameters) SwaggerDoc ¶
func (DataDiskManagedDiskParameters) SwaggerDoc() map[string]string
type DiskDeletionPolicyType ¶
type DiskDeletionPolicyType string
DiskDeletionPolicyType defines the possible values for DeletionPolicy.
const ( // DiskDeletionPolicyTypeDelete means the DiskDeletionPolicyType is "Delete". DiskDeletionPolicyTypeDelete DiskDeletionPolicyType = "Delete" // DiskDeletionPolicyTypeDetach means the DiskDeletionPolicyType is "Detach". DiskDeletionPolicyTypeDetach DiskDeletionPolicyType = "Detach" )
These are the valid DiskDeletionPolicyType values.
type DiskEncryptionSetParameters ¶
type DiskEncryptionSetParameters struct { // ID is the disk encryption set ID // Empty value means no opinion and the platform chooses a default, which is subject to change over time. // Currently the default is: "Default". // +optional ID string `json:"id,omitempty"` }
DiskEncryptionSetParameters is the disk encryption set properties
func (*DiskEncryptionSetParameters) DeepCopy ¶
func (in *DiskEncryptionSetParameters) DeepCopy() *DiskEncryptionSetParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskEncryptionSetParameters.
func (*DiskEncryptionSetParameters) DeepCopyInto ¶
func (in *DiskEncryptionSetParameters) DeepCopyInto(out *DiskEncryptionSetParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (DiskEncryptionSetParameters) SwaggerDoc ¶
func (DiskEncryptionSetParameters) SwaggerDoc() map[string]string
type DiskSettings ¶
type DiskSettings struct { // EphemeralStorageLocation enables ephemeral OS when set to 'Local'. // Possible values include: 'Local'. // See https://docs.microsoft.com/en-us/azure/virtual-machines/ephemeral-os-disks for full details. // Empty value means no opinion and the platform chooses a default, which is subject to change over // time. Currently the default is that disks are saved to remote Azure storage. // +optional // +kubebuilder:validation:Enum=Local EphemeralStorageLocation string `json:"ephemeralStorageLocation,omitempty"` }
DiskSettings describe ephemeral disk settings for the os disk.
func (*DiskSettings) DeepCopy ¶
func (in *DiskSettings) DeepCopy() *DiskSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskSettings.
func (*DiskSettings) DeepCopyInto ¶
func (in *DiskSettings) DeepCopyInto(out *DiskSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (DiskSettings) SwaggerDoc ¶
func (DiskSettings) SwaggerDoc() map[string]string
type EBSBlockDeviceSpec ¶
type EBSBlockDeviceSpec struct { // Indicates whether the EBS volume is deleted on machine termination. // +optional DeleteOnTermination *bool `json:"deleteOnTermination,omitempty"` // Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS volumes // may only be attached to machines that support Amazon EBS encryption. // +optional Encrypted *bool `json:"encrypted,omitempty"` // Indicates the KMS key that should be used to encrypt the Amazon EBS volume. // +optional KMSKey AWSResourceReference `json:"kmsKey,omitempty"` // The number of I/O operations per second (IOPS) that the volume supports. // For io1, this represents the number of IOPS that are provisioned for the // volume. For gp2, this represents the baseline performance of the volume and // the rate at which the volume accumulates I/O credits for bursting. For more // information about General Purpose SSD baseline performance, I/O credits, // and bursting, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) // in the Amazon Elastic Compute Cloud User Guide. // // Minimal and maximal IOPS for io1 and gp2 are constrained. Please, check // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html // for precise boundaries for individual volumes. // // Condition: This parameter is required for requests to create io1 volumes; // it is not used in requests to create gp2, st1, sc1, or standard volumes. // +optional Iops *int64 `json:"iops,omitempty"` // The size of the volume, in GiB. // // Constraints: 1-16384 for General Purpose SSD (gp2), 4-16384 for Provisioned // IOPS SSD (io1), 500-16384 for Throughput Optimized HDD (st1), 500-16384 for // Cold HDD (sc1), and 1-1024 for Magnetic (standard) volumes. If you specify // a snapshot, the volume size must be equal to or larger than the snapshot // size. // // Default: If you're creating the volume from a snapshot and don't specify // a volume size, the default is the snapshot size. // +optional VolumeSize *int64 `json:"volumeSize,omitempty"` // The volume type: gp2, io1, st1, sc1, or standard. // Default: standard // +optional VolumeType *string `json:"volumeType,omitempty"` }
EBSBlockDeviceSpec describes a block device for an EBS volume. https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsBlockDevice
func (*EBSBlockDeviceSpec) DeepCopy ¶
func (in *EBSBlockDeviceSpec) DeepCopy() *EBSBlockDeviceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EBSBlockDeviceSpec.
func (*EBSBlockDeviceSpec) DeepCopyInto ¶
func (in *EBSBlockDeviceSpec) DeepCopyInto(out *EBSBlockDeviceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (EBSBlockDeviceSpec) SwaggerDoc ¶
func (EBSBlockDeviceSpec) SwaggerDoc() map[string]string
type Filter ¶
type Filter struct { // Name of the filter. Filter names are case-sensitive. Name string `json:"name"` // Values includes one or more filter values. Filter values are case-sensitive. // +optional Values []string `json:"values,omitempty"` }
Filter is a filter used to identify an AWS resource
func (*Filter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Filter.
func (*Filter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Filter) SwaggerDoc ¶
type GCPDisk ¶
type GCPDisk struct { // AutoDelete indicates if the disk will be auto-deleted when the instance is deleted (default false). AutoDelete bool `json:"autoDelete"` // Boot indicates if this is a boot disk (default false). Boot bool `json:"boot"` // SizeGB is the size of the disk (in GB). SizeGB int64 `json:"sizeGb"` // Type is the type of the disk (eg: pd-standard). Type string `json:"type"` // Image is the source image to create this disk. Image string `json:"image"` // Labels list of labels to apply to the disk. Labels map[string]string `json:"labels"` // EncryptionKey is the customer-supplied encryption key of the disk. // +optional EncryptionKey *GCPEncryptionKeyReference `json:"encryptionKey,omitempty"` }
GCPDisk describes disks for GCP.
func (*GCPDisk) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPDisk.
func (*GCPDisk) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPDisk) SwaggerDoc ¶
type GCPEncryptionKeyReference ¶
type GCPEncryptionKeyReference struct { // KMSKeyName is the reference KMS key, in the format // +optional KMSKey *GCPKMSKeyReference `json:"kmsKey,omitempty"` // KMSKeyServiceAccount is the service account being used for the // encryption request for the given KMS key. If absent, the Compute // Engine default service account is used. // See https://cloud.google.com/compute/docs/access/service-accounts#compute_engine_service_account // for details on the default service account. // +optional KMSKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"` }
GCPEncryptionKeyReference describes the encryptionKey to use for a disk's encryption.
func (*GCPEncryptionKeyReference) DeepCopy ¶
func (in *GCPEncryptionKeyReference) DeepCopy() *GCPEncryptionKeyReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPEncryptionKeyReference.
func (*GCPEncryptionKeyReference) DeepCopyInto ¶
func (in *GCPEncryptionKeyReference) DeepCopyInto(out *GCPEncryptionKeyReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPEncryptionKeyReference) SwaggerDoc ¶
func (GCPEncryptionKeyReference) SwaggerDoc() map[string]string
type GCPGPUConfig ¶
type GCPGPUConfig struct { // Count is the number of GPUs to be attached to an instance. Count int32 `json:"count"` // Type is the type of GPU to be attached to an instance. // Supported GPU types are: nvidia-tesla-k80, nvidia-tesla-p100, nvidia-tesla-v100, nvidia-tesla-p4, nvidia-tesla-t4 // +kubebuilder:validation:Pattern=`^nvidia-tesla-(k80|p100|v100|p4|t4)$` Type string `json:"type"` }
GCPGPUConfig describes type and count of GPUs attached to the instance on GCP.
func (*GCPGPUConfig) DeepCopy ¶
func (in *GCPGPUConfig) DeepCopy() *GCPGPUConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPGPUConfig.
func (*GCPGPUConfig) DeepCopyInto ¶
func (in *GCPGPUConfig) DeepCopyInto(out *GCPGPUConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPGPUConfig) SwaggerDoc ¶
func (GCPGPUConfig) SwaggerDoc() map[string]string
type GCPHostMaintenanceType ¶
type GCPHostMaintenanceType string
GCPHostMaintenanceType is a type representing acceptable values for OnHostMaintenance field in GCPMachineProviderSpec
const ( // MigrateHostMaintenanceType [default] - causes Compute Engine to live migrate an instance when there is a maintenance event. MigrateHostMaintenanceType GCPHostMaintenanceType = "Migrate" // TerminateHostMaintenanceType - stops an instance instead of migrating it. TerminateHostMaintenanceType GCPHostMaintenanceType = "Terminate" )
type GCPKMSKeyReference ¶
type GCPKMSKeyReference struct { // Name is the name of the customer managed encryption key to be used for the disk encryption. Name string `json:"name"` // KeyRing is the name of the KMS Key Ring which the KMS Key belongs to. KeyRing string `json:"keyRing"` // ProjectID is the ID of the Project in which the KMS Key Ring exists. // Defaults to the VM ProjectID if not set. // +optional ProjectID string `json:"projectID,omitempty"` // Location is the GCP location in which the Key Ring exists. Location string `json:"location"` }
GCPKMSKeyReference gathers required fields for looking up a GCP KMS Key
func (*GCPKMSKeyReference) DeepCopy ¶
func (in *GCPKMSKeyReference) DeepCopy() *GCPKMSKeyReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPKMSKeyReference.
func (*GCPKMSKeyReference) DeepCopyInto ¶
func (in *GCPKMSKeyReference) DeepCopyInto(out *GCPKMSKeyReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPKMSKeyReference) SwaggerDoc ¶
func (GCPKMSKeyReference) SwaggerDoc() map[string]string
type GCPMachineProviderSpec ¶
type GCPMachineProviderSpec struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // UserDataSecret contains a local reference to a secret that contains the // UserData to apply to the instance // +optional UserDataSecret *corev1.LocalObjectReference `json:"userDataSecret,omitempty"` // CredentialsSecret is a reference to the secret with GCP credentials. // +optional CredentialsSecret *corev1.LocalObjectReference `json:"credentialsSecret,omitempty"` // CanIPForward Allows this instance to send and receive packets with non-matching destination or source IPs. // This is required if you plan to use this instance to forward routes. CanIPForward bool `json:"canIPForward"` // DeletionProtection whether the resource should be protected against deletion. DeletionProtection bool `json:"deletionProtection"` // Disks is a list of disks to be attached to the VM. // +optional Disks []*GCPDisk `json:"disks,omitempty"` // Labels list of labels to apply to the VM. // +optional Labels map[string]string `json:"labels,omitempty"` // Metadata key/value pairs to apply to the VM. // +optional Metadata []*GCPMetadata `json:"gcpMetadata,omitempty"` // NetworkInterfaces is a list of network interfaces to be attached to the VM. // +optional NetworkInterfaces []*GCPNetworkInterface `json:"networkInterfaces,omitempty"` // ServiceAccounts is a list of GCP service accounts to be used by the VM. ServiceAccounts []GCPServiceAccount `json:"serviceAccounts"` // Tags list of tags to apply to the VM. Tags []string `json:"tags,omitempty"` // TargetPools are used for network TCP/UDP load balancing. A target pool references member instances, // an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool // +optional TargetPools []string `json:"targetPools,omitempty"` // MachineType is the machine type to use for the VM. MachineType string `json:"machineType"` // Region is the region in which the GCP machine provider will create the VM. Region string `json:"region"` // Zone is the zone in which the GCP machine provider will create the VM. Zone string `json:"zone"` // ProjectID is the project in which the GCP machine provider will create the VM. // +optional ProjectID string `json:"projectID,omitempty"` // GPUs is a list of GPUs to be attached to the VM. // +optional GPUs []GCPGPUConfig `json:"gpus,omitempty"` // Preemptible indicates if created instance is preemptible. // +optional Preemptible bool `json:"preemptible,omitempty"` // OnHostMaintenance determines the behavior when a maintenance event occurs that might cause the instance to reboot. // This is required to be set to "Terminate" if you want to provision machine with attached GPUs. // Otherwise, allowed values are "Migrate" and "Terminate". // If omitted, the platform chooses a default, which is subject to change over time, currently that default is "Migrate". // +kubebuilder:validation:Enum=Migrate;Terminate; // +optional OnHostMaintenance GCPHostMaintenanceType `json:"onHostMaintenance,omitempty"` // RestartPolicy determines the behavior when an instance crashes or the underlying infrastructure provider stops the instance as part of a maintenance event (default "Always"). // Cannot be "Always" with preemptible instances. // Otherwise, allowed values are "Always" and "Never". // If omitted, the platform chooses a default, which is subject to change over time, currently that default is "Always". // RestartPolicy represents AutomaticRestart in GCP compute api // +kubebuilder:validation:Enum=Always;Never; // +optional RestartPolicy GCPRestartPolicyType `json:"restartPolicy,omitempty"` }
GCPMachineProviderSpec is the type that will be embedded in a Machine.Spec.ProviderSpec field for an GCP virtual machine. It is used by the GCP machine actuator to create a single Machine. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2 +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*GCPMachineProviderSpec) DeepCopy ¶
func (in *GCPMachineProviderSpec) DeepCopy() *GCPMachineProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPMachineProviderSpec.
func (*GCPMachineProviderSpec) DeepCopyInto ¶
func (in *GCPMachineProviderSpec) DeepCopyInto(out *GCPMachineProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GCPMachineProviderSpec) DeepCopyObject ¶
func (in *GCPMachineProviderSpec) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (GCPMachineProviderSpec) SwaggerDoc ¶
func (GCPMachineProviderSpec) SwaggerDoc() map[string]string
type GCPMachineProviderStatus ¶
type GCPMachineProviderStatus struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // InstanceID is the ID of the instance in GCP // +optional InstanceID *string `json:"instanceId,omitempty"` // InstanceState is the provisioning state of the GCP Instance. // +optional InstanceState *string `json:"instanceState,omitempty"` // Conditions is a set of conditions associated with the Machine to indicate // errors or other status // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` }
GCPMachineProviderStatus is the type that will be embedded in a Machine.Status.ProviderStatus field. It contains GCP-specific status information. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*GCPMachineProviderStatus) DeepCopy ¶
func (in *GCPMachineProviderStatus) DeepCopy() *GCPMachineProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPMachineProviderStatus.
func (*GCPMachineProviderStatus) DeepCopyInto ¶
func (in *GCPMachineProviderStatus) DeepCopyInto(out *GCPMachineProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPMachineProviderStatus) SwaggerDoc ¶
func (GCPMachineProviderStatus) SwaggerDoc() map[string]string
type GCPMetadata ¶
type GCPMetadata struct { // Key is the metadata key. Key string `json:"key"` // Value is the metadata value. Value *string `json:"value"` }
GCPMetadata describes metadata for GCP.
func (*GCPMetadata) DeepCopy ¶
func (in *GCPMetadata) DeepCopy() *GCPMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPMetadata.
func (*GCPMetadata) DeepCopyInto ¶
func (in *GCPMetadata) DeepCopyInto(out *GCPMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPMetadata) SwaggerDoc ¶
func (GCPMetadata) SwaggerDoc() map[string]string
type GCPNetworkInterface ¶
type GCPNetworkInterface struct { // PublicIP indicates if true a public IP will be used PublicIP bool `json:"publicIP,omitempty"` // Network is the network name. Network string `json:"network,omitempty"` // ProjectID is the project in which the GCP machine provider will create the VM. ProjectID string `json:"projectID,omitempty"` // Subnetwork is the subnetwork name. Subnetwork string `json:"subnetwork,omitempty"` }
GCPNetworkInterface describes network interfaces for GCP
func (*GCPNetworkInterface) DeepCopy ¶
func (in *GCPNetworkInterface) DeepCopy() *GCPNetworkInterface
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPNetworkInterface.
func (*GCPNetworkInterface) DeepCopyInto ¶
func (in *GCPNetworkInterface) DeepCopyInto(out *GCPNetworkInterface)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPNetworkInterface) SwaggerDoc ¶
func (GCPNetworkInterface) SwaggerDoc() map[string]string
type GCPRestartPolicyType ¶
type GCPRestartPolicyType string
GCPHostMaintenanceType is a type representing acceptable values for RestartPolicy field in GCPMachineProviderSpec
const ( // Restart an instance if an instance crashes or the underlying infrastructure provider stops the instance as part of a maintenance event. RestartPolicyAlways GCPRestartPolicyType = "Always" // Do not restart an instance if an instance crashes or the underlying infrastructure provider stops the instance as part of a maintenance event. RestartPolicyNever GCPRestartPolicyType = "Never" )
type GCPServiceAccount ¶
type GCPServiceAccount struct { // Email is the service account email. Email string `json:"email"` // Scopes list of scopes to be assigned to the service account. Scopes []string `json:"scopes"` }
GCPServiceAccount describes service accounts for GCP.
func (*GCPServiceAccount) DeepCopy ¶
func (in *GCPServiceAccount) DeepCopy() *GCPServiceAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPServiceAccount.
func (*GCPServiceAccount) DeepCopyInto ¶
func (in *GCPServiceAccount) DeepCopyInto(out *GCPServiceAccount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (GCPServiceAccount) SwaggerDoc ¶
func (GCPServiceAccount) SwaggerDoc() map[string]string
type Image ¶
type Image struct { // Publisher is the name of the organization that created the image Publisher string `json:"publisher"` // Offer specifies the name of a group of related images created by the publisher. // For example, UbuntuServer, WindowsServer Offer string `json:"offer"` // SKU specifies an instance of an offer, such as a major release of a distribution. // For example, 18.04-LTS, 2019-Datacenter SKU string `json:"sku"` // Version specifies the version of an image sku. The allowed formats // are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. // Specify 'latest' to use the latest version of an image available at deploy time. // Even if you use 'latest', the VM image will not automatically update after deploy // time even if a new version becomes available. Version string `json:"version"` // ResourceID specifies an image to use by ID ResourceID string `json:"resourceID"` // Type identifies the source of the image and related information, such as purchase plans. // Valid values are "ID", "MarketplaceWithPlan", "MarketplaceNoPlan", and omitted, which // means no opinion and the platform chooses a good default which may change over time. // Currently that default is "MarketplaceNoPlan" if publisher data is supplied, or "ID" if not. // For more information about purchase plans, see: // https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage#check-the-purchase-plan-information // +optional Type AzureImageType `json:"type,omitempty"` }
Image is a mirror of azure sdk compute.ImageReference
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Image) SwaggerDoc ¶
type InstanceTenancy ¶
type InstanceTenancy string
InstanceTenancy indicates if instance should run on shared or single-tenant hardware.
const ( // DefaultTenancy instance runs on shared hardware DefaultTenancy InstanceTenancy = "default" // DedicatedTenancy instance runs on single-tenant hardware DedicatedTenancy InstanceTenancy = "dedicated" // HostTenancy instance runs on a Dedicated Host, which is an isolated server with configurations that you can control. HostTenancy InstanceTenancy = "host" )
type LastOperation ¶
type LastOperation struct { // Description is the human-readable description of the last operation. Description *string `json:"description,omitempty"` // LastUpdated is the timestamp at which LastOperation API was last-updated. LastUpdated *metav1.Time `json:"lastUpdated,omitempty"` // State is the current status of the last performed operation. // E.g. Processing, Failed, Successful etc State *string `json:"state,omitempty"` // Type is the type of operation which was last performed. // E.g. Create, Delete, Update etc Type *string `json:"type,omitempty"` }
LastOperation represents the detail of the last performed operation on the MachineObject.
func (*LastOperation) DeepCopy ¶
func (in *LastOperation) DeepCopy() *LastOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastOperation.
func (*LastOperation) DeepCopyInto ¶
func (in *LastOperation) DeepCopyInto(out *LastOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LastOperation) SwaggerDoc ¶
func (LastOperation) SwaggerDoc() map[string]string
type LifecycleHook ¶
type LifecycleHook struct { // 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. // +kubebuilder:validation: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])$` // +kubebuilder:validation:MinLength:=3 // +kubebuilder:validation:MaxLength:=256 // +kubebuilder:validation:Required Name string `json:"name"` // 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. // +kubebuilder:validation:MinLength:=3 // +kubebuilder:validation:MaxLength:=512 // +kubebuilder:validation:Required Owner string `json:"owner"` }
LifecycleHook represents a single instance of a lifecycle hook
func (*LifecycleHook) DeepCopy ¶
func (in *LifecycleHook) DeepCopy() *LifecycleHook
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleHook.
func (*LifecycleHook) DeepCopyInto ¶
func (in *LifecycleHook) DeepCopyInto(out *LifecycleHook)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LifecycleHook) SwaggerDoc ¶
func (LifecycleHook) SwaggerDoc() map[string]string
type LifecycleHooks ¶
type LifecycleHooks struct { // PreDrain hooks prevent the machine from being drained. // This also blocks further lifecycle events, such as termination. // +listType=map // +listMapKey=name // +optional PreDrain []LifecycleHook `json:"preDrain,omitempty"` // PreTerminate hooks prevent the machine from being terminated. // PreTerminate hooks be actioned after the Machine has been drained. // +listType=map // +listMapKey=name // +optional PreTerminate []LifecycleHook `json:"preTerminate,omitempty"` }
LifecycleHooks allow users to pause operations on the machine at certain prefedined points within the machine lifecycle.
func (*LifecycleHooks) DeepCopy ¶
func (in *LifecycleHooks) DeepCopy() *LifecycleHooks
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleHooks.
func (*LifecycleHooks) DeepCopyInto ¶
func (in *LifecycleHooks) DeepCopyInto(out *LifecycleHooks)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LifecycleHooks) SwaggerDoc ¶
func (LifecycleHooks) SwaggerDoc() map[string]string
type LoadBalancerReference ¶
type LoadBalancerReference struct { Name string `json:"name"` Type AWSLoadBalancerType `json:"type"` }
LoadBalancerReference is a reference to a load balancer on AWS.
func (*LoadBalancerReference) DeepCopy ¶
func (in *LoadBalancerReference) DeepCopy() *LoadBalancerReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerReference.
func (*LoadBalancerReference) DeepCopyInto ¶
func (in *LoadBalancerReference) DeepCopyInto(out *LoadBalancerReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LoadBalancerReference) SwaggerDoc ¶
func (LoadBalancerReference) SwaggerDoc() map[string]string
type Machine ¶
type Machine struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec MachineSpec `json:"spec,omitempty"` Status MachineStatus `json:"status,omitempty"` }
Machine is the Schema for the machines API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="Phase of machine" +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/instance-type']",description="Type of instance" +kubebuilder:printcolumn:name="Region",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/region']",description="Region associated with machine" +kubebuilder:printcolumn:name="Zone",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/zone']",description="Zone associated with machine" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Machine age" +kubebuilder:printcolumn:name="Node",type="string",JSONPath=".status.nodeRef.name",description="Node associated with machine",priority=1 +kubebuilder:printcolumn:name="ProviderID",type="string",JSONPath=".spec.providerID",description="Provider ID of machine created in cloud provider",priority=1 +kubebuilder:printcolumn:name="State",type="string",JSONPath=".metadata.annotations['machine\\.openshift\\.io/instance-state']",description="State of instance",priority=1 Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*Machine) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Machine.
func (*Machine) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Machine) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (Machine) SwaggerDoc ¶
type MachineDeploymentStrategyType ¶
type MachineDeploymentStrategyType string
const ( // Replace the old MachineSet by new one using rolling update // i.e. gradually scale down the old MachineSet and scale up the new one. RollingUpdateMachineDeploymentStrategyType MachineDeploymentStrategyType = "RollingUpdate" )
type MachineHealthCheck ¶
type MachineHealthCheck struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Specification of machine health check policy // +optional Spec MachineHealthCheckSpec `json:"spec,omitempty"` // Most recently observed status of MachineHealthCheck resource // +optional Status MachineHealthCheckStatus `json:"status,omitempty"` }
MachineHealthCheck is the Schema for the machinehealthchecks API +kubebuilder:subresource:status +kubebuilder:resource:shortName=mhc;mhcs +k8s:openapi-gen=true +kubebuilder:printcolumn:name="MaxUnhealthy",type="string",JSONPath=".spec.maxUnhealthy",description="Maximum number of unhealthy machines allowed" +kubebuilder:printcolumn:name="ExpectedMachines",type="integer",JSONPath=".status.expectedMachines",description="Number of machines currently monitored" +kubebuilder:printcolumn:name="CurrentHealthy",type="integer",JSONPath=".status.currentHealthy",description="Current observed healthy machines" Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*MachineHealthCheck) DeepCopy ¶
func (in *MachineHealthCheck) DeepCopy() *MachineHealthCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineHealthCheck.
func (*MachineHealthCheck) DeepCopyInto ¶
func (in *MachineHealthCheck) DeepCopyInto(out *MachineHealthCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineHealthCheck) DeepCopyObject ¶
func (in *MachineHealthCheck) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineHealthCheck) SwaggerDoc ¶
func (MachineHealthCheck) SwaggerDoc() map[string]string
type MachineHealthCheckList ¶
type MachineHealthCheckList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []MachineHealthCheck `json:"items"` }
MachineHealthCheckList contains a list of MachineHealthCheck Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*MachineHealthCheckList) DeepCopy ¶
func (in *MachineHealthCheckList) DeepCopy() *MachineHealthCheckList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineHealthCheckList.
func (*MachineHealthCheckList) DeepCopyInto ¶
func (in *MachineHealthCheckList) DeepCopyInto(out *MachineHealthCheckList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineHealthCheckList) DeepCopyObject ¶
func (in *MachineHealthCheckList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineHealthCheckList) SwaggerDoc ¶
func (MachineHealthCheckList) SwaggerDoc() map[string]string
type MachineHealthCheckSpec ¶
type MachineHealthCheckSpec struct { // Label selector to match machines whose health will be exercised. // Note: An empty selector will match all machines. Selector metav1.LabelSelector `json:"selector"` // UnhealthyConditions contains a list of the conditions that determine // whether a node is considered unhealthy. The conditions are combined in a // logical OR, i.e. if any of the conditions is met, the node is unhealthy. // // +kubebuilder:validation:MinItems=1 UnhealthyConditions []UnhealthyCondition `json:"unhealthyConditions"` // Any farther remediation is only allowed if at most "MaxUnhealthy" machines selected by // "selector" are not healthy. // Expects either a postive integer value or a percentage value. // Percentage values must be positive whole numbers and are capped at 100%. // Both 0 and 0% are valid and will block all remediation. // +kubebuilder:default:="100%" // +kubebuilder:validation:XIntOrString // +kubebuilder:validation:Pattern="^((100|[0-9]{1,2})%|[0-9]+)$" // +optional MaxUnhealthy *intstr.IntOrString `json:"maxUnhealthy,omitempty"` // Machines older than this duration without a node will be considered to have // failed and will be remediated. // To prevent Machines without Nodes from being removed, disable startup checks // by setting this value explicitly to "0". // Expects an unsigned duration string of decimal numbers each with optional // fraction and a unit suffix, eg "300ms", "1.5h" or "2h45m". // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". // +optional // +kubebuilder:default:="10m" // +kubebuilder:validation:Pattern="^0|([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$" // +kubebuilder:validation:Type:=string // +optional NodeStartupTimeout *metav1.Duration `json:"nodeStartupTimeout,omitempty"` // RemediationTemplate is a reference to a remediation template // provided by an infrastructure provider. // // This field is completely optional, when filled, the MachineHealthCheck controller // creates a new object from the template referenced and hands off remediation of the machine to // a controller that lives outside of Machine API Operator. // +optional RemediationTemplate *corev1.ObjectReference `json:"remediationTemplate,omitempty"` }
MachineHealthCheckSpec defines the desired state of MachineHealthCheck
func (*MachineHealthCheckSpec) DeepCopy ¶
func (in *MachineHealthCheckSpec) DeepCopy() *MachineHealthCheckSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineHealthCheckSpec.
func (*MachineHealthCheckSpec) DeepCopyInto ¶
func (in *MachineHealthCheckSpec) DeepCopyInto(out *MachineHealthCheckSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineHealthCheckSpec) SwaggerDoc ¶
func (MachineHealthCheckSpec) SwaggerDoc() map[string]string
type MachineHealthCheckStatus ¶
type MachineHealthCheckStatus struct { // total number of machines counted by this machine health check // +kubebuilder:validation:Minimum=0 ExpectedMachines *int `json:"expectedMachines"` // total number of machines counted by this machine health check // +kubebuilder:validation:Minimum=0 CurrentHealthy *int `json:"currentHealthy"` // RemediationsAllowed is the number of further remediations allowed by this machine health check before // maxUnhealthy short circuiting will be applied // +kubebuilder:validation:Minimum=0 // +optional RemediationsAllowed int32 `json:"remediationsAllowed"` // Conditions defines the current state of the MachineHealthCheck // +optional Conditions Conditions `json:"conditions,omitempty"` }
MachineHealthCheckStatus defines the observed state of MachineHealthCheck
func (*MachineHealthCheckStatus) DeepCopy ¶
func (in *MachineHealthCheckStatus) DeepCopy() *MachineHealthCheckStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineHealthCheckStatus.
func (*MachineHealthCheckStatus) DeepCopyInto ¶
func (in *MachineHealthCheckStatus) DeepCopyInto(out *MachineHealthCheckStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineHealthCheckStatus) SwaggerDoc ¶
func (MachineHealthCheckStatus) SwaggerDoc() map[string]string
type MachineList ¶
type MachineList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Machine `json:"items"` }
MachineList contains a list of Machine Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*MachineList) DeepCopy ¶
func (in *MachineList) DeepCopy() *MachineList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineList.
func (*MachineList) DeepCopyInto ¶
func (in *MachineList) DeepCopyInto(out *MachineList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineList) DeepCopyObject ¶
func (in *MachineList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineList) SwaggerDoc ¶
func (MachineList) SwaggerDoc() map[string]string
type MachineSet ¶
type MachineSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec MachineSetSpec `json:"spec,omitempty"` Status MachineSetStatus `json:"status,omitempty"` }
MachineSet ensures that a specified number of machines replicas are running at any given time. +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.labelSelector +kubebuilder:printcolumn:name="Desired",type="integer",JSONPath=".spec.replicas",description="Desired Replicas" +kubebuilder:printcolumn:name="Current",type="integer",JSONPath=".status.replicas",description="Current Replicas" +kubebuilder:printcolumn:name="Ready",type="integer",JSONPath=".status.readyReplicas",description="Ready Replicas" +kubebuilder:printcolumn:name="Available",type="string",JSONPath=".status.availableReplicas",description="Observed number of available replicas" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Machineset age" Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*MachineSet) DeepCopy ¶
func (in *MachineSet) DeepCopy() *MachineSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSet.
func (*MachineSet) DeepCopyInto ¶
func (in *MachineSet) DeepCopyInto(out *MachineSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineSet) DeepCopyObject ¶
func (in *MachineSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineSet) SwaggerDoc ¶
func (MachineSet) SwaggerDoc() map[string]string
type MachineSetDeletePolicy ¶
type MachineSetDeletePolicy string
MachineSetDeletePolicy defines how priority is assigned to nodes to delete when downscaling a MachineSet. Defaults to "Random".
const ( // RandomMachineSetDeletePolicy prioritizes both Machines that have the annotation // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). // Finally, it picks Machines at random to delete. RandomMachineSetDeletePolicy MachineSetDeletePolicy = "Random" // NewestMachineSetDeletePolicy prioritizes both Machines that have the annotation // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). // It then prioritizes the newest Machines for deletion based on the Machine's CreationTimestamp. NewestMachineSetDeletePolicy MachineSetDeletePolicy = "Newest" // OldestMachineSetDeletePolicy prioritizes both Machines that have the annotation // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). // It then prioritizes the oldest Machines for deletion based on the Machine's CreationTimestamp. OldestMachineSetDeletePolicy MachineSetDeletePolicy = "Oldest" )
type MachineSetList ¶
type MachineSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []MachineSet `json:"items"` }
MachineSetList contains a list of MachineSet Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*MachineSetList) DeepCopy ¶
func (in *MachineSetList) DeepCopy() *MachineSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetList.
func (*MachineSetList) DeepCopyInto ¶
func (in *MachineSetList) DeepCopyInto(out *MachineSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MachineSetList) DeepCopyObject ¶
func (in *MachineSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (MachineSetList) SwaggerDoc ¶
func (MachineSetList) SwaggerDoc() map[string]string
type MachineSetSpec ¶
type MachineSetSpec struct { // Replicas is the number of desired replicas. // This is a pointer to distinguish between explicit zero and unspecified. // Defaults to 1. // +kubebuilder:default=1 Replicas *int32 `json:"replicas,omitempty"` // 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) // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` // DeletePolicy defines the policy used to identify nodes to delete when downscaling. // Defaults to "Random". Valid values are "Random, "Newest", "Oldest" // +kubebuilder:validation:Enum=Random;Newest;Oldest DeletePolicy string `json:"deletePolicy,omitempty"` // 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 Selector metav1.LabelSelector `json:"selector"` // Template is the object that describes the machine that will be created if // insufficient replicas are detected. // +optional Template MachineTemplateSpec `json:"template,omitempty"` }
MachineSetSpec defines the desired state of MachineSet
func (*MachineSetSpec) DeepCopy ¶
func (in *MachineSetSpec) DeepCopy() *MachineSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetSpec.
func (*MachineSetSpec) DeepCopyInto ¶
func (in *MachineSetSpec) DeepCopyInto(out *MachineSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineSetSpec) SwaggerDoc ¶
func (MachineSetSpec) SwaggerDoc() map[string]string
type MachineSetStatus ¶
type MachineSetStatus struct { // Replicas is the most recently observed number of replicas. Replicas int32 `json:"replicas"` // The number of replicas that have labels matching the labels of the machine template of the MachineSet. // +optional FullyLabeledReplicas int32 `json:"fullyLabeledReplicas,omitempty"` // The number of ready replicas for this MachineSet. A machine is considered ready when the node has been created and is "Ready". // +optional ReadyReplicas int32 `json:"readyReplicas,omitempty"` // The number of available replicas (ready for at least minReadySeconds) for this MachineSet. // +optional AvailableReplicas int32 `json:"availableReplicas,omitempty"` // ObservedGeneration reflects the generation of the most recently observed MachineSet. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // 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. // // 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. // // 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. // +optional ErrorReason *MachineSetStatusError `json:"errorReason,omitempty"` // +optional ErrorMessage *string `json:"errorMessage,omitempty"` }
MachineSetStatus defines the observed state of MachineSet
func (*MachineSetStatus) DeepCopy ¶
func (in *MachineSetStatus) DeepCopy() *MachineSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetStatus.
func (*MachineSetStatus) DeepCopyInto ¶
func (in *MachineSetStatus) DeepCopyInto(out *MachineSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineSetStatus) SwaggerDoc ¶
func (MachineSetStatus) SwaggerDoc() map[string]string
type MachineSetStatusError ¶
type MachineSetStatusError string
const ( // Represents that the combination of configuration in the MachineTemplateSpec // is not supported by this cluster. This is not a transient error, but // indicates a state that must be fixed before progress can be made. // // Example: the ProviderSpec specifies an instance type that doesn't exist. InvalidConfigurationMachineSetError MachineSetStatusError = "InvalidConfiguration" )
type MachineSpec ¶
type MachineSpec struct { // ObjectMeta will autopopulate the Node created. Use this to // indicate what labels, annotations, name prefix, etc., should be used // when creating the Node. // +optional ObjectMeta `json:"metadata,omitempty"` // LifecycleHooks allow users to pause operations on the machine at // certain predefined points within the machine lifecycle. // +optional LifecycleHooks LifecycleHooks `json:"lifecycleHooks,omitempty"` // 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 // +optional Taints []corev1.Taint `json:"taints,omitempty"` // ProviderSpec details Provider-specific configuration to use during node creation. // +optional ProviderSpec ProviderSpec `json:"providerSpec"` // 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. // +optional ProviderID *string `json:"providerID,omitempty"` }
MachineSpec defines the desired state of Machine
func (*MachineSpec) DeepCopy ¶
func (in *MachineSpec) DeepCopy() *MachineSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSpec.
func (*MachineSpec) DeepCopyInto ¶
func (in *MachineSpec) DeepCopyInto(out *MachineSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineSpec) SwaggerDoc ¶
func (MachineSpec) SwaggerDoc() map[string]string
type MachineStatus ¶
type MachineStatus struct { // NodeRef will point to the corresponding Node if it exists. // +optional NodeRef *corev1.ObjectReference `json:"nodeRef,omitempty"` // LastUpdated identifies when this status was last observed. // +optional LastUpdated *metav1.Time `json:"lastUpdated,omitempty"` // 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. // // 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. // // 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. // +optional ErrorReason *MachineStatusError `json:"errorReason,omitempty"` // 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. // // 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. // // 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. // +optional ErrorMessage *string `json:"errorMessage,omitempty"` // 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. // +optional // +kubebuilder:validation:XPreserveUnknownFields ProviderStatus *runtime.RawExtension `json:"providerStatus,omitempty"` // Addresses is a list of addresses assigned to the machine. Queried from cloud provider, if available. // +optional Addresses []corev1.NodeAddress `json:"addresses,omitempty"` // 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. // +optional LastOperation *LastOperation `json:"lastOperation,omitempty"` // Phase represents the current phase of machine actuation. // One of: Failed, Provisioning, Provisioned, Running, Deleting // +optional Phase *string `json:"phase,omitempty"` // Conditions defines the current state of the Machine Conditions Conditions `json:"conditions,omitempty"` }
MachineStatus defines the observed state of Machine
func (*MachineStatus) DeepCopy ¶
func (in *MachineStatus) DeepCopy() *MachineStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineStatus.
func (*MachineStatus) DeepCopyInto ¶
func (in *MachineStatus) DeepCopyInto(out *MachineStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineStatus) SwaggerDoc ¶
func (MachineStatus) SwaggerDoc() map[string]string
type MachineStatusError ¶
type MachineStatusError string
const ( // Represents that the combination of configuration in the MachineSpec // is not supported by this cluster. This is not a transient error, but // indicates a state that must be fixed before progress can be made. // // Example: the ProviderSpec specifies an instance type that doesn't exist, InvalidConfigurationMachineError MachineStatusError = "InvalidConfiguration" // This indicates that the MachineSpec has been updated in a way that // is not supported for reconciliation on this cluster. The spec may be // completely valid from a configuration standpoint, but the controller // does not support changing the real world state to match the new // spec. // // Example: the responsible controller is not capable of changing the // container runtime from docker to rkt. UnsupportedChangeMachineError MachineStatusError = "UnsupportedChange" // This generally refers to exceeding one's quota in a cloud provider, // or running out of physical machines in an on-premise environment. InsufficientResourcesMachineError MachineStatusError = "InsufficientResources" // There was an error while trying to create a Node to match this // Machine. This may indicate a transient problem that will be fixed // automatically with time, such as a service outage, or a terminal // error during creation that doesn't match a more specific // MachineStatusError value. // // Example: timeout trying to connect to GCE. CreateMachineError MachineStatusError = "CreateError" // There was an error while trying to update a Node that this // Machine represents. This may indicate a transient problem that will be // fixed automatically with time, such as a service outage, // // Example: error updating load balancers UpdateMachineError MachineStatusError = "UpdateError" // An error was encountered while trying to delete the Node that this // Machine represents. This could be a transient or terminal error, but // will only be observable if the provider's Machine controller has // added a finalizer to the object to more gracefully handle deletions. // // Example: cannot resolve EC2 IP address. DeleteMachineError MachineStatusError = "DeleteError" // TemplateClonedFromGroupKindAnnotation is the infrastructure machine // annotation that stores the group-kind of the infrastructure template resource // that was cloned for the machine. This annotation is set only during cloning a // template. Older/adopted machines will not have this annotation. TemplateClonedFromGroupKindAnnotation = "machine.openshift.io/cloned-from-groupkind" // TemplateClonedFromNameAnnotation is the infrastructure machine annotation that // stores the name of the infrastructure template resource // that was cloned for the machine. This annotation is set only during cloning a // template. Older/adopted machines will not have this annotation. TemplateClonedFromNameAnnotation = "machine.openshift.io/cloned-from-name" // This error indicates that the machine did not join the cluster // as a new node within the expected timeframe after instance // creation at the provider succeeded // // Example use case: A controller that deletes Machines which do // not result in a Node joining the cluster within a given timeout // and that are managed by a MachineSet JoinClusterTimeoutMachineError = "JoinClusterTimeoutError" )
type MachineTemplateSpec ¶
type MachineTemplateSpec struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional ObjectMeta `json:"metadata,omitempty"` // 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 // +optional Spec MachineSpec `json:"spec,omitempty"` }
MachineTemplateSpec describes the data needed to create a Machine from a template
func (*MachineTemplateSpec) DeepCopy ¶
func (in *MachineTemplateSpec) DeepCopy() *MachineTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineTemplateSpec.
func (*MachineTemplateSpec) DeepCopyInto ¶
func (in *MachineTemplateSpec) DeepCopyInto(out *MachineTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MachineTemplateSpec) SwaggerDoc ¶
func (MachineTemplateSpec) SwaggerDoc() map[string]string
type MetadataServiceAuthentication ¶
type MetadataServiceAuthentication string
type MetadataServiceOptions ¶
type MetadataServiceOptions struct { // Authentication determines whether or not the host requires the use of authentication when interacting with the metadata service. // When using authentication, this enforces v2 interaction method (IMDSv2) with the metadata service. // When omitted, this means the user has no opinion and the value is left to the platform to choose a good // default, which is subject to change over time. The current default is optional. // At this point this field represents `HttpTokens` parameter from `InstanceMetadataOptionsRequest` structure in AWS EC2 API // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html // +kubebuilder:validation:Enum=Required;Optional // +optional Authentication MetadataServiceAuthentication `json:"authentication,omitempty"` }
MetadataServiceOptions defines the options available to a user when configuring Instance Metadata Service (IMDS) Options.
func (*MetadataServiceOptions) DeepCopy ¶
func (in *MetadataServiceOptions) DeepCopy() *MetadataServiceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataServiceOptions.
func (*MetadataServiceOptions) DeepCopyInto ¶
func (in *MetadataServiceOptions) DeepCopyInto(out *MetadataServiceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (MetadataServiceOptions) SwaggerDoc ¶
func (MetadataServiceOptions) SwaggerDoc() map[string]string
type NetworkDeviceSpec ¶
type NetworkDeviceSpec struct { // NetworkName is the name of the vSphere network to which the device // will be connected. NetworkName string `json:"networkName"` }
NetworkDeviceSpec defines the network configuration for a virtual machine's network device.
func (*NetworkDeviceSpec) DeepCopy ¶
func (in *NetworkDeviceSpec) DeepCopy() *NetworkDeviceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkDeviceSpec.
func (*NetworkDeviceSpec) DeepCopyInto ¶
func (in *NetworkDeviceSpec) DeepCopyInto(out *NetworkDeviceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (NetworkDeviceSpec) SwaggerDoc ¶
func (NetworkDeviceSpec) SwaggerDoc() map[string]string
type NetworkSpec ¶
type NetworkSpec struct { // Devices defines the virtual machine's network interfaces. Devices []NetworkDeviceSpec `json:"devices"` }
NetworkSpec defines the virtual machine's network configuration.
func (*NetworkSpec) DeepCopy ¶
func (in *NetworkSpec) DeepCopy() *NetworkSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.
func (*NetworkSpec) DeepCopyInto ¶
func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (NetworkSpec) SwaggerDoc ¶
func (NetworkSpec) SwaggerDoc() map[string]string
type OSDisk ¶
type OSDisk struct { // OSType is the operating system type of the OS disk. Possible values include "Linux" and "Windows". OSType string `json:"osType"` // ManagedDisk specifies the Managed Disk parameters for the OS disk. ManagedDisk OSDiskManagedDiskParameters `json:"managedDisk"` // DiskSizeGB is the size in GB to assign to the data disk. DiskSizeGB int32 `json:"diskSizeGB"` // DiskSettings describe ephemeral disk settings for the os disk. // +optional DiskSettings DiskSettings `json:"diskSettings,omitempty"` // CachingType specifies the caching requirements. // Possible values include: 'None', 'ReadOnly', 'ReadWrite'. // Empty value means no opinion and the platform chooses a default, which is subject to change over // time. Currently the default is `None`. // +optional // +kubebuilder:validation:Enum=None;ReadOnly;ReadWrite CachingType string `json:"cachingType,omitempty"` }
func (*OSDisk) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDisk.
func (*OSDisk) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSDisk) SwaggerDoc ¶
type OSDiskManagedDiskParameters ¶
type OSDiskManagedDiskParameters struct { // StorageAccountType is the storage account type to use. // Possible values include "Standard_LRS", "Premium_LRS". StorageAccountType string `json:"storageAccountType"` // DiskEncryptionSet is the disk encryption set properties // +optional DiskEncryptionSet *DiskEncryptionSetParameters `json:"diskEncryptionSet,omitempty"` }
OSDiskManagedDiskParameters is the parameters of a OSDisk managed disk.
func (*OSDiskManagedDiskParameters) DeepCopy ¶
func (in *OSDiskManagedDiskParameters) DeepCopy() *OSDiskManagedDiskParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSDiskManagedDiskParameters.
func (*OSDiskManagedDiskParameters) DeepCopyInto ¶
func (in *OSDiskManagedDiskParameters) DeepCopyInto(out *OSDiskManagedDiskParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OSDiskManagedDiskParameters) SwaggerDoc ¶
func (OSDiskManagedDiskParameters) SwaggerDoc() map[string]string
type ObjectMeta ¶
type ObjectMeta struct { // 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 // +optional Name string `json:"name,omitempty"` // 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. // // 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). // // Applied only if Name is not specified. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency // +optional GenerateName string `json:"generateName,omitempty"` // 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. // // Must be a DNS_LABEL. // Cannot be updated. // More info: http://kubernetes.io/docs/user-guide/namespaces // +optional Namespace string `json:"namespace,omitempty"` // 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 // +optional Labels map[string]string `json:"labels,omitempty"` // 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 // +optional Annotations map[string]string `json:"annotations,omitempty"` // 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. // +optional // +patchMergeKey=uid // +patchStrategy=merge OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty" patchStrategy:"merge" patchMergeKey:"uid"` }
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. This is a copy of customizable fields from metav1.ObjectMeta.
ObjectMeta is embedded in `Machine.Spec`, `MachineDeployment.Template` and `MachineSet.Template`, which are not top-level Kubernetes objects. Given that metav1.ObjectMeta has lots of special cases and read-only fields which end up in the generated CRD validation, having it as a subset simplifies the API and some issues that can impact user experience.
During the [upgrade to controller-tools@v2](https://github.com/kubernetes-sigs/cluster-api/pull/1054) for v1alpha2, we noticed a failure would occur running Cluster API test suite against the new CRDs, specifically `spec.metadata.creationTimestamp in body must be of type string: "null"`. The investigation showed that `controller-tools@v2` behaves differently than its previous version when handling types from metav1(k8s.io/apimachinery/pkg/apis/meta/v1) package.
In more details, we found that embedded (non-top level) types that embedded `metav1.ObjectMeta` had validation properties, including for `creationTimestamp` (metav1.Time). The `metav1.Time` type specifies a custom json marshaller that, when IsZero() is true, returns `null` which breaks validation because the field isn't marked as nullable.
In future versions, controller-tools@v2 might allow overriding the type and validation for embedded types. When that happens, this hack should be revisited.
func (*ObjectMeta) DeepCopy ¶
func (in *ObjectMeta) DeepCopy() *ObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.
func (*ObjectMeta) DeepCopyInto ¶
func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ObjectMeta) SwaggerDoc ¶
func (ObjectMeta) SwaggerDoc() map[string]string
type Placement ¶
type Placement struct { // Region is the region to use to create the instance // +optional Region string `json:"region,omitempty"` // AvailabilityZone is the availability zone of the instance // +optional AvailabilityZone string `json:"availabilityZone,omitempty"` // Tenancy indicates if instance should run on shared or single-tenant hardware. There are // supported 3 options: default, dedicated and host. // +optional Tenancy InstanceTenancy `json:"tenancy,omitempty"` }
Placement indicates where to create the instance in AWS
func (*Placement) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Placement.
func (*Placement) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Placement) SwaggerDoc ¶
type ProviderSpec ¶
type ProviderSpec struct { // 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. // +optional // +kubebuilder:validation:XPreserveUnknownFields Value *runtime.RawExtension `json:"value,omitempty"` }
ProviderSpec defines the configuration to use during node creation.
func (*ProviderSpec) DeepCopy ¶
func (in *ProviderSpec) DeepCopy() *ProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpec.
func (*ProviderSpec) DeepCopyInto ¶
func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ProviderSpec) SwaggerDoc ¶
func (ProviderSpec) SwaggerDoc() map[string]string
type RemediationStrategyType ¶
type RemediationStrategyType string
RemediationStrategyType contains remediation strategy type
type SecurityProfile ¶
type SecurityProfile struct { // This field indicates whether Host Encryption should be enabled // or disabled for a virtual machine or virtual machine scale // set. Default is disabled. // +optional EncryptionAtHost *bool `json:"encryptionAtHost,omitempty"` }
SecurityProfile specifies the Security profile settings for a virtual machine or virtual machine scale set.
func (*SecurityProfile) DeepCopy ¶
func (in *SecurityProfile) DeepCopy() *SecurityProfile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityProfile.
func (*SecurityProfile) DeepCopyInto ¶
func (in *SecurityProfile) DeepCopyInto(out *SecurityProfile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (SecurityProfile) SwaggerDoc ¶
func (SecurityProfile) SwaggerDoc() map[string]string
type SpotMarketOptions ¶
type SpotMarketOptions struct { // The maximum price the user is willing to pay for their instances // Default: On-Demand price // +optional MaxPrice *string `json:"maxPrice,omitempty"` }
SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.
func (*SpotMarketOptions) DeepCopy ¶
func (in *SpotMarketOptions) DeepCopy() *SpotMarketOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpotMarketOptions.
func (*SpotMarketOptions) DeepCopyInto ¶
func (in *SpotMarketOptions) DeepCopyInto(out *SpotMarketOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (SpotMarketOptions) SwaggerDoc ¶
func (SpotMarketOptions) SwaggerDoc() map[string]string
type SpotVMOptions ¶
type SpotVMOptions struct { // MaxPrice defines the maximum price the user is willing to pay for Spot VM instances // +optional MaxPrice *resource.Quantity `json:"maxPrice,omitempty"` }
SpotVMOptions defines the options relevant to running the Machine on Spot VMs
func (*SpotVMOptions) DeepCopy ¶
func (in *SpotVMOptions) DeepCopy() *SpotVMOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpotVMOptions.
func (*SpotVMOptions) DeepCopyInto ¶
func (in *SpotVMOptions) DeepCopyInto(out *SpotVMOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (SpotVMOptions) SwaggerDoc ¶
func (SpotVMOptions) SwaggerDoc() map[string]string
type StorageAccountType ¶
type StorageAccountType string
StorageAccountType defines the different storage types to use for a ManagedDisk.
const ( // "StorageAccountStandardLRS" means the Standard_LRS storage type. StorageAccountStandardLRS StorageAccountType = "Standard_LRS" // "StorageAccountPremiumLRS" means the Premium_LRS storage type. StorageAccountPremiumLRS StorageAccountType = "Premium_LRS" // "StorageAccountUltraSSDLRS" means the UltraSSD_LRS storage type. StorageAccountUltraSSDLRS StorageAccountType = "UltraSSD_LRS" )
These are the valid StorageAccountType types.
type TagSpecification ¶
type TagSpecification struct { // Name of the tag Name string `json:"name"` // Value of the tag Value string `json:"value"` }
TagSpecification is the name/value pair for a tag
func (*TagSpecification) DeepCopy ¶
func (in *TagSpecification) DeepCopy() *TagSpecification
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagSpecification.
func (*TagSpecification) DeepCopyInto ¶
func (in *TagSpecification) DeepCopyInto(out *TagSpecification)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (TagSpecification) SwaggerDoc ¶
func (TagSpecification) SwaggerDoc() map[string]string
type UnhealthyCondition ¶
type UnhealthyCondition struct { // +kubebuilder:validation:Type=string // +kubebuilder:validation:MinLength=1 Type corev1.NodeConditionType `json:"type"` // +kubebuilder:validation:Type=string // +kubebuilder:validation:MinLength=1 Status corev1.ConditionStatus `json:"status"` // Expects an unsigned duration string of decimal numbers each with optional // fraction and a unit suffix, eg "300ms", "1.5h" or "2h45m". // Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". // +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$" // +kubebuilder:validation:Type:=string Timeout metav1.Duration `json:"timeout"` }
UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy.
func (*UnhealthyCondition) DeepCopy ¶
func (in *UnhealthyCondition) DeepCopy() *UnhealthyCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnhealthyCondition.
func (*UnhealthyCondition) DeepCopyInto ¶
func (in *UnhealthyCondition) DeepCopyInto(out *UnhealthyCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (UnhealthyCondition) SwaggerDoc ¶
func (UnhealthyCondition) SwaggerDoc() map[string]string
type VSphereMachineProviderSpec ¶
type VSphereMachineProviderSpec struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // UserDataSecret contains a local reference to a secret that contains the // UserData to apply to the instance // +optional UserDataSecret *corev1.LocalObjectReference `json:"userDataSecret,omitempty"` // CredentialsSecret is a reference to the secret with vSphere credentials. // +optional CredentialsSecret *corev1.LocalObjectReference `json:"credentialsSecret,omitempty"` // Template is the name, inventory path, or instance UUID of the template // used to clone new machines. Template string `json:"template"` // Workspace describes the workspace to use for the machine. // +optional Workspace *Workspace `json:"workspace,omitempty"` // Network is the network configuration for this machine's VM. Network NetworkSpec `json:"network"` // NumCPUs is the number of virtual processors in a virtual machine. // Defaults to the analogue property value in the template from which this // machine is cloned. // +optional NumCPUs int32 `json:"numCPUs,omitempty"` // NumCPUs is the number of cores among which to distribute CPUs in this // virtual machine. // Defaults to the analogue property value in the template from which this // machine is cloned. // +optional NumCoresPerSocket int32 `json:"numCoresPerSocket,omitempty"` // MemoryMiB is the size of a virtual machine's memory, in MiB. // Defaults to the analogue property value in the template from which this // machine is cloned. // +optional MemoryMiB int64 `json:"memoryMiB,omitempty"` // DiskGiB is the size of a virtual machine's disk, in GiB. // Defaults to the analogue property value in the template from which this // machine is cloned. // +optional DiskGiB int32 `json:"diskGiB,omitempty"` // Snapshot is the name of the snapshot from which the VM was cloned // +optional Snapshot string `json:"snapshot"` // CloneMode specifies the type of clone operation. // The LinkedClone mode is only support for templates that have at least // one snapshot. If the template has no snapshots, then CloneMode defaults // to FullClone. // When LinkedClone mode is enabled the DiskGiB field is ignored as it is // not possible to expand disks of linked clones. // Defaults to LinkedClone, but fails gracefully to FullClone if the source // of the clone operation has no snapshots. // +optional CloneMode CloneMode `json:"cloneMode,omitempty"` }
VSphereMachineProviderSpec is the type that will be embedded in a Machine.Spec.ProviderSpec field for an VSphere virtual machine. It is used by the vSphere machine actuator to create a single Machine. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2 +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*VSphereMachineProviderSpec) DeepCopy ¶
func (in *VSphereMachineProviderSpec) DeepCopy() *VSphereMachineProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereMachineProviderSpec.
func (*VSphereMachineProviderSpec) DeepCopyInto ¶
func (in *VSphereMachineProviderSpec) DeepCopyInto(out *VSphereMachineProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*VSphereMachineProviderSpec) DeepCopyObject ¶
func (in *VSphereMachineProviderSpec) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (VSphereMachineProviderSpec) SwaggerDoc ¶
func (VSphereMachineProviderSpec) SwaggerDoc() map[string]string
type VSphereMachineProviderStatus ¶
type VSphereMachineProviderStatus struct { metav1.TypeMeta `json:",inline"` // InstanceID is the ID of the instance in VSphere // +optional InstanceID *string `json:"instanceId,omitempty"` // InstanceState is the provisioning state of the VSphere Instance. // +optional InstanceState *string `json:"instanceState,omitempty"` // Conditions is a set of conditions associated with the Machine to indicate // errors or other status Conditions []metav1.Condition `json:"conditions,omitempty"` // TaskRef is a managed object reference to a Task related to the machine. // This value is set automatically at runtime and should not be set or // modified by users. // +optional TaskRef string `json:"taskRef,omitempty"` }
VSphereMachineProviderStatus is the type that will be embedded in a Machine.Status.ProviderStatus field. It contains VSphere-specific status information. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer). +openshift:compatibility-gen:level=2
func (*VSphereMachineProviderStatus) DeepCopy ¶
func (in *VSphereMachineProviderStatus) DeepCopy() *VSphereMachineProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereMachineProviderStatus.
func (*VSphereMachineProviderStatus) DeepCopyInto ¶
func (in *VSphereMachineProviderStatus) DeepCopyInto(out *VSphereMachineProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (VSphereMachineProviderStatus) SwaggerDoc ¶
func (VSphereMachineProviderStatus) SwaggerDoc() map[string]string
type Workspace ¶
type Workspace struct { // Server is the IP address or FQDN of the vSphere endpoint. // +optional Server string `gcfg:"server,omitempty" json:"server,omitempty"` // Datacenter is the datacenter in which VMs are created/located. // +optional Datacenter string `gcfg:"datacenter,omitempty" json:"datacenter,omitempty"` // Folder is the folder in which VMs are created/located. // +optional Folder string `gcfg:"folder,omitempty" json:"folder,omitempty"` // Datastore is the datastore in which VMs are created/located. // +optional Datastore string `gcfg:"default-datastore,omitempty" json:"datastore,omitempty"` // ResourcePool is the resource pool in which VMs are created/located. // +optional ResourcePool string `gcfg:"resourcepool-path,omitempty" json:"resourcePool,omitempty"` }
WorkspaceConfig defines a workspace configuration for the vSphere cloud provider.
func (*Workspace) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workspace.
func (*Workspace) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.