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.