Documentation ¶
Index ¶
- Constants
- Variables
- func AddressPoolID(subscriptionID, resourceGroup, loadBalancerName, backendPoolName string) string
- func AutoRestClientAppendUserAgent(c *autorest.Client, extension string)
- func AvailabilitySetID(subscriptionID, resourceGroup, availabilitySetName string) string
- func BootstrapExtensionCommand() string
- func FrontendIPConfigID(subscriptionID, resourceGroup, loadBalancerName, configName string) string
- func GenerateAvailabilitySetName(clusterName, nodeGroup string) string
- func GenerateBackendAddressPoolName(lbName string) string
- func GenerateControlPlaneOutboundIPName(clusterName string) string
- func GenerateControlPlaneOutboundLBName(clusterName string) string
- func GenerateDataDiskName(machineName, nameSuffix string) string
- func GenerateFrontendIPConfigName(lbName string) string
- func GenerateNICName(machineName string) string
- func GenerateNatGatewayIPName(clusterName, subnetName string) string
- func GenerateNodeOutboundIPName(clusterName string) string
- func GenerateNodePublicIPName(machineName string) string
- func GenerateOSDiskName(machineName string) string
- func GenerateOutboundBackendAddressPoolName(lbName string) string
- func GeneratePrivateDNSZoneName(clusterName string) string
- func GeneratePrivateFQDN(clusterName string) string
- func GeneratePublicNICName(machineName string) string
- func GenerateVNetLinkName(vnetName string) string
- func GetBootstrappingVMExtension(osType string, cloud string) (name, publisher, version string)
- func GetDefaultUbuntuImage(k8sVersion string) (*infrav1.Image, error)
- func GetDefaultWindowsImage(k8sVersion string) (*infrav1.Image, error)
- func NATRuleID(subscriptionID, resourceGroup, loadBalancerName, natRuleName string) string
- func NatGatewayID(subscriptionID, resourceGroup, natgatewayName string) string
- func NetworkInterfaceID(subscriptionID, resourceGroup, nicName string) string
- func ProbeID(subscriptionID, resourceGroup, loadBalancerName, probeName string) string
- func PublicIPID(subscriptionID, resourceGroup, ipName string) string
- func ResourceConflict(err error) bool
- func ResourceGroupNotFound(err error) bool
- func ResourceNotFound(err error) bool
- func RouteTableID(subscriptionID, resourceGroup, routeTableName string) string
- func SecurityGroupID(subscriptionID, resourceGroup, nsgName string) string
- func SetAutoRestClientDefaults(c *autorest.Client, auth autorest.Authorizer)
- func SubnetID(subscriptionID, resourceGroup, vnetName, subnetName string) string
- func UserAgent() string
- func VMID(subscriptionID, resourceGroup, vmName string) string
- func VNetID(subscriptionID, resourceGroup, vnetName string) string
- func WithIndex(name string, n int) string
- type Authorizer
- type AvailabilitySetSpec
- type AzureBastionSpec
- type BastionSpec
- type ClusterDescriber
- type ClusterScoper
- type CredentialGetter
- type DiskSpec
- type InboundNatSpec
- type LBSpec
- type NICSpec
- type NSGSpec
- type NatGatewaySpec
- type NetworkDescriber
- type OldService
- type OperationNotDoneError
- type PrivateDNSSpec
- type PublicIPSpec
- type ReconcileError
- type ReconcileErrorType
- type Reconciler
- type ResourceType
- type RoleAssignmentSpec
- type RouteTableRole
- type RouteTableSpec
- type ScaleSetSpec
- type SubnetSpec
- type TagsSpec
- type VMDeletedError
- type VMExtensionSpec
- type VMSS
- type VMSSExtensionSpec
- type VMSSVM
- type VMSpec
- type VNetSpec
Constants ¶
const ( // DefaultImageOfferID is the default Azure Marketplace offer ID. DefaultImageOfferID = "capi" // DefaultWindowsImageOfferID is the default Azure Marketplace offer ID for Windows. DefaultWindowsImageOfferID = "capi-windows" // DefaultImagePublisherID is the default Azure Marketplace publisher ID. DefaultImagePublisherID = "cncf-upstream" // LatestVersion is the image version latest. LatestVersion = "latest" )
const ( // VirtualMachine ... VirtualMachine = "VirtualMachine" // VirtualMachineScaleSet ... VirtualMachineScaleSet = "VirtualMachineScaleSet" )
const (
// ControlPlaneNodeGroup will be used to create availability set for control plane machines.
ControlPlaneNodeGroup = "control-plane"
)
const (
// DefaultUserName is the default username for a created VM.
DefaultUserName = "capi"
)
const (
// Global is the Azure global location value.
Global = "global"
)
const (
// PrivateAPIServerHostname will be used as the api server hostname for private clusters.
PrivateAPIServerHostname = "apiserver"
)
const ( // ProviderIDPrefix will be appended to the beginning of Azure resource IDs to form the Kubernetes Provider ID. // NOTE: this format matches the 2 slashes format used in cloud-provider and cluster-autoscaler. ProviderIDPrefix = "azure://" )
const (
// WindowsOS is Windows OS value for OSDisk.
WindowsOS = "Windows"
)
Variables ¶
var ErrNotOwned = errors.New("resource is not managed and cannot be deleted")
ErrNotOwned is returned when a resource can't be deleted because it isn't owned.
Functions ¶
func AddressPoolID ¶
AddressPoolID returns the azure resource ID for a given backend address pool.
func AutoRestClientAppendUserAgent ¶
AutoRestClientAppendUserAgent autorest client calls "AddToUserAgent" but ignores errors.
func AvailabilitySetID ¶
AvailabilitySetID returns the azure resource ID for a given availability set.
func BootstrapExtensionCommand ¶
func BootstrapExtensionCommand() string
BootstrapExtensionCommand is the command that runs on the Boostrap VM extension to check for bootstrap success. The command checks for the existence of the bootstrapSentinelFile on the machine, with retries and sleep between retries.
func FrontendIPConfigID ¶
FrontendIPConfigID returns the azure resource ID for a given frontend IP config.
func GenerateAvailabilitySetName ¶
GenerateAvailabilitySetName generates the name of a availability set based on the cluster name and the node group. node group identifies the set of nodes that belong to this availability set: For control plane nodes, this will be `control-plane`. For worker nodes, this will be the machine deployment name.
func GenerateBackendAddressPoolName ¶
GenerateBackendAddressPoolName generates a load balancer backend address pool name.
func GenerateControlPlaneOutboundIPName ¶
GenerateControlPlaneOutboundIPName generates a public IP name, based on the cluster name.
func GenerateControlPlaneOutboundLBName ¶
GenerateControlPlaneOutboundLBName generates the name of the control plane outbound LB.
func GenerateDataDiskName ¶
GenerateDataDiskName generates the name of a data disk based on the name of a VM.
func GenerateFrontendIPConfigName ¶
GenerateFrontendIPConfigName generates a load balancer frontend IP config name.
func GenerateNICName ¶
GenerateNICName generates the name of a network interface based on the name of a VM.
func GenerateNatGatewayIPName ¶
GenerateNatGatewayIPName generates a nat gateway IP name.
func GenerateNodeOutboundIPName ¶
GenerateNodeOutboundIPName generates a public IP name, based on the cluster name.
func GenerateNodePublicIPName ¶
GenerateNodePublicIPName generates a node public IP name, based on the machine name.
func GenerateOSDiskName ¶
GenerateOSDiskName generates the name of an OS disk based on the name of a VM.
func GenerateOutboundBackendAddressPoolName ¶
GenerateOutboundBackendAddressPoolName generates a load balancer outbound backend address pool name.
func GeneratePrivateDNSZoneName ¶
GeneratePrivateDNSZoneName generates the name of a private DNS zone based on the cluster name.
func GeneratePrivateFQDN ¶
GeneratePrivateFQDN generates FQDN for a private API Server.
func GeneratePublicNICName ¶
GeneratePublicNICName generates the name of a public network interface based on the name of a VM.
func GenerateVNetLinkName ¶
GenerateVNetLinkName generates the name of a virtual network link name based on the vnet name.
func GetBootstrappingVMExtension ¶
GetBootstrappingVMExtension returns the CAPZ Bootstrapping VM extension. The CAPZ Bootstrapping extension is a simple clone of https://github.com/Azure/custom-script-extension-linux which allows running arbitrary scripts on the VM. Its role is to detect and report Kubernetes bootstrap failure or success.
func GetDefaultUbuntuImage ¶
GetDefaultUbuntuImage returns the default image spec for Ubuntu.
func GetDefaultWindowsImage ¶
GetDefaultWindowsImage returns the default image spec for Windows.
func NatGatewayID ¶
NatGatewayID returns the azure resource ID for a given nat gateway.
func NetworkInterfaceID ¶
NetworkInterfaceID returns the azure resource ID for a given network interface.
func PublicIPID ¶
PublicIPID returns the azure resource ID for a given public IP.
func ResourceConflict ¶
ResourceConflict parses the error to check if it's a resource conflict error (409).
func ResourceGroupNotFound ¶
ResourceGroupNotFound parses the error to check if it's a resource group not found error.
func ResourceNotFound ¶
ResourceNotFound parses the error to check if it's a resource not found error.
func RouteTableID ¶
RouteTableID returns the azure resource ID for a given route table.
func SecurityGroupID ¶
SecurityGroupID returns the azure resource ID for a given security group.
func SetAutoRestClientDefaults ¶
func SetAutoRestClientDefaults(c *autorest.Client, auth autorest.Authorizer)
SetAutoRestClientDefaults set authorizer and user agent for autorest client.
func UserAgent ¶
func UserAgent() string
UserAgent specifies a string to append to the agent identifier.
Types ¶
type Authorizer ¶
type Authorizer interface { SubscriptionID() string ClientID() string ClientSecret() string CloudEnvironment() string TenantID() string BaseURI() string Authorizer() autorest.Authorizer HashKey() string }
Authorizer is an interface which can get the subscription ID, base URI, and authorizer for an Azure service.
type AvailabilitySetSpec ¶
type AvailabilitySetSpec struct {
Name string
}
AvailabilitySetSpec defines the specification for an availability set.
type AzureBastionSpec ¶
type AzureBastionSpec struct { Name string SubnetSpec infrav1.SubnetSpec PublicIPName string VNetName string }
AzureBastionSpec defines the specification for azure bastion feature.
type BastionSpec ¶
type BastionSpec struct {
AzureBastion *AzureBastionSpec
}
BastionSpec defines the specification for the generic bastion feature.
type ClusterDescriber ¶
type ClusterDescriber interface { Authorizer ResourceGroup() string ClusterName() string Location() string AdditionalTags() infrav1.Tags AvailabilitySetEnabled() bool CloudProviderConfigOverrides() *infrav1.CloudProviderConfigOverrides }
ClusterDescriber is an interface which can get common Azure Cluster information.
type ClusterScoper ¶
type ClusterScoper interface { ClusterDescriber NetworkDescriber }
ClusterScoper combines the ClusterDescriber and NetworkDescriber interfaces.
type CredentialGetter ¶
type CredentialGetter interface { Reconciler GetCredentials(ctx context.Context, group string, cluster string) ([]byte, error) }
CredentialGetter is a Service which knows how to retrieve credentials for an Azure resource in a resource group.
type InboundNatSpec ¶
InboundNatSpec defines the specification for an inbound NAT rule.
type LBSpec ¶
type LBSpec struct { Name string Role string Type infrav1.LBType SKU infrav1.SKU SubnetName string BackendPoolName string FrontendIPConfigs []infrav1.FrontendIP APIServerPort int32 IdleTimeoutInMinutes *int32 }
LBSpec defines the specification for a Load Balancer.
type NICSpec ¶
type NICSpec struct { Name string MachineName string SubnetName string VNetName string VNetResourceGroup string StaticIPAddress string PublicLBName string PublicLBAddressPoolName string PublicLBNATRuleName string InternalLBName string InternalLBAddressPoolName string PublicIPName string VMSize string AcceleratedNetworking *bool IPv6Enabled bool EnableIPForwarding bool }
NICSpec defines the specification for a Network Interface.
type NSGSpec ¶
type NSGSpec struct { Name string SecurityRules infrav1.SecurityRules }
NSGSpec defines the specification for a Security Group.
type NatGatewaySpec ¶
type NatGatewaySpec struct { NatGatewayIP infrav1.PublicIPSpec Name string Subnet infrav1.SubnetSpec }
NatGatewaySpec defines the specification for a Nat Gateway.
type NetworkDescriber ¶
type NetworkDescriber interface { Vnet() *infrav1.VnetSpec IsVnetManaged() bool NodeSubnet() infrav1.SubnetSpec ControlPlaneSubnet() infrav1.SubnetSpec SetSubnet(infrav1.SubnetSpec) IsIPv6Enabled() bool NodeRouteTable() infrav1.RouteTable ControlPlaneRouteTable() infrav1.RouteTable NodeNatGateway() infrav1.NatGateway APIServerLBName() string APIServerLBPoolName(string) string IsAPIServerPrivate() bool GetPrivateDNSZoneName() string OutboundLBName(string) string OutboundPoolName(string) string }
NetworkDescriber is an interface which can get common Azure Cluster Networking information.
type OldService ¶
type OldService interface { Reconcile(ctx context.Context, spec interface{}) error Delete(ctx context.Context, spec interface{}) error }
OldService is a generic interface for services that have not yet been refactored. Once all services have been converted to use Service, this should be removed. Example: virtualnetworks service would offer Reconcile/Delete methods.
type OperationNotDoneError ¶
OperationNotDoneError is used to represent a long-running operation that is not yet complete.
func NewOperationNotDoneError ¶
func NewOperationNotDoneError(future *infrav1.Future) *OperationNotDoneError
NewOperationNotDoneError returns a new OperationNotDoneError wrapping a Future.
func (OperationNotDoneError) Error ¶
func (onde OperationNotDoneError) Error() string
Error returns the error represented as a string.
func (OperationNotDoneError) Is ¶
func (onde OperationNotDoneError) Is(target error) bool
Is returns true if the target is an OperationNotDoneError.
type PrivateDNSSpec ¶
type PrivateDNSSpec struct { ZoneName string VNetName string VNetResourceGroup string LinkName string Records []infrav1.AddressRecord }
PrivateDNSSpec defines the specification for a private DNS zone.
type PublicIPSpec ¶
PublicIPSpec defines the specification for a Public IP.
type ReconcileError ¶
type ReconcileError struct {
// contains filtered or unexported fields
}
ReconcileError represents an error that is not automatically recoverable errorType indicates what type of action is required to recover. It can take two values: 1. `Transient` - Can be recovered through manual intervention, will be requeued after. 2. `Terminal` - Cannot be recovered, will not be requeued.
func WithTerminalError ¶
func WithTerminalError(err error) ReconcileError
WithTerminalError wraps the error in a ReconcileError with errorType as `Terminal`.
func WithTransientError ¶
func WithTransientError(err error, requeueAfter time.Duration) ReconcileError
WithTransientError wraps the error in a ReconcileError with errorType as `Transient`.
func (ReconcileError) Error ¶
func (t ReconcileError) Error() string
Error returns the error message for a ReconcileError.
func (ReconcileError) Is ¶
func (t ReconcileError) Is(target error) bool
Is returns true if the target is a ReconcileError.
func (ReconcileError) IsTerminal ¶
func (t ReconcileError) IsTerminal() bool
IsTerminal returns if the ReconcileError is recoverable.
func (ReconcileError) IsTransient ¶
func (t ReconcileError) IsTransient() bool
IsTransient returns if the ReconcileError is recoverable.
func (ReconcileError) RequeueAfter ¶
func (t ReconcileError) RequeueAfter() time.Duration
RequeueAfter returns requestAfter value.
type ReconcileErrorType ¶
type ReconcileErrorType string
ReconcileErrorType represents the type of a ReconcileError.
const ( // TransientErrorType can be recovered, will be requeued after a configured time interval. TransientErrorType ReconcileErrorType = "Transient" // TerminalErrorType cannot be recovered, will not be requeued. TerminalErrorType ReconcileErrorType = "Terminal" )
type Reconciler ¶
type Reconciler interface { Reconcile(ctx context.Context) error Delete(ctx context.Context) error }
Reconciler is a generic interface used by components offering a type of service. Example: virtualnetworks service would offer Reconcile/Delete methods.
type ResourceType ¶
type ResourceType string
ResourceType defines the type azure resource being reconciled. Eg. Virtual Machine, Virtual Machine Scale Sets.
type RoleAssignmentSpec ¶
RoleAssignmentSpec defines the specification for a Role Assignment.
type RouteTableRole ¶
type RouteTableRole string
RouteTableRole defines the unique role of a route table.
type RouteTableSpec ¶
type RouteTableSpec struct { Name string Subnet infrav1.SubnetSpec }
RouteTableSpec defines the specification for a Route Table.
type ScaleSetSpec ¶
type ScaleSetSpec struct { Name string Size string Capacity int64 SSHKeyData string OSDisk infrav1.OSDisk DataDisks []infrav1.DataDisk SubnetName string VNetName string VNetResourceGroup string PublicLBName string PublicLBAddressPoolName string AcceleratedNetworking *bool TerminateNotificationTimeout *int Identity infrav1.VMIdentity UserAssignedIdentities []infrav1.UserAssignedIdentity SecurityProfile *infrav1.SecurityProfile SpotVMOptions *infrav1.SpotVMOptions FailureDomains []string }
ScaleSetSpec defines the specification for a Scale Set.
type SubnetSpec ¶
type SubnetSpec struct { Name string CIDRs []string VNetName string RouteTableName string SecurityGroupName string Role infrav1.SubnetRole NatGatewayName string }
SubnetSpec defines the specification for a Subnet.
type VMDeletedError ¶
type VMDeletedError struct {
ProviderID string
}
VMDeletedError is returned when a virtual machine is deleted outside of capz.
func (VMDeletedError) Error ¶
func (vde VMDeletedError) Error() string
Error returns the error string.
type VMExtensionSpec ¶
type VMExtensionSpec struct { Name string VMName string Publisher string Version string ProtectedSettings map[string]string }
VMExtensionSpec defines the specification for a VM extension.
type VMSS ¶
type VMSS struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Sku string `json:"sku,omitempty"` Capacity int64 `json:"capacity,omitempty"` Zones []string `json:"zones,omitempty"` Image infrav1.Image `json:"image,omitempty"` State infrav1.ProvisioningState `json:"vmState,omitempty"` Identity infrav1.VMIdentity `json:"identity,omitempty"` Tags infrav1.Tags `json:"tags,omitempty"` Instances []VMSSVM `json:"instances,omitempty"` }
VMSS defines a virtual machine scale set.
func (VMSS) HasEnoughLatestModelOrNotMixedModel ¶
HasEnoughLatestModelOrNotMixedModel returns true if VMSS instance have the latest model applied to all or equal to the capacity.
func (VMSS) HasLatestModelApplied ¶
HasLatestModelApplied returns true if the VMSS instance matches the VMSS image reference.
func (VMSS) HasLatestModelAppliedToAll ¶
HasLatestModelAppliedToAll returns true if all VMSS instance have the latest model applied.
func (VMSS) HasModelChanges ¶
HasModelChanges returns true if the spec fields which will mutate the Azure VMSS model are different.
func (VMSS) InstancesByProviderID ¶
InstancesByProviderID returns VMSSVMs by ID.
type VMSSExtensionSpec ¶
type VMSSExtensionSpec struct { Name string ScaleSetName string Publisher string Version string ProtectedSettings map[string]string }
VMSSExtensionSpec defines the specification for a VMSS extension.
type VMSSVM ¶
type VMSSVM struct { ID string `json:"id,omitempty"` InstanceID string `json:"instanceID,omitempty"` Image infrav1.Image `json:"image,omitempty"` Name string `json:"name,omitempty"` AvailabilityZone string `json:"availabilityZone,omitempty"` State infrav1.ProvisioningState `json:"vmState,omitempty"` }
VMSSVM defines a VM in a virtual machine scale set.
func (VMSSVM) ProviderID ¶
ProviderID returns the K8s provider ID for the VMSS instance.
type VMSpec ¶
type VMSpec struct { Name string Role string NICNames []string SSHKeyData string Size string Zone string Identity infrav1.VMIdentity OSDisk infrav1.OSDisk DataDisks []infrav1.DataDisk UserAssignedIdentities []infrav1.UserAssignedIdentity SpotVMOptions *infrav1.SpotVMOptions SecurityProfile *infrav1.SecurityProfile }
VMSpec defines the specification for a Virtual Machine.
Directories ¶
Path | Synopsis |
---|---|
Run go generate to regenerate this mock.
|
Run go generate to regenerate this mock. |
mocks
Run go generate to regenerate this mock.
|
Run go generate to regenerate this mock. |
services
|
|
agentpools/mock_agentpools
Package mock_agentpools is a generated GoMock package.
|
Package mock_agentpools is a generated GoMock package. |
availabilitysets/mock_availabilitysets
Package mock_availabilitysets is a generated GoMock package.
|
Package mock_availabilitysets is a generated GoMock package. |
bastionhosts/mocks_bastionhosts
Package mock_bastionhosts is a generated GoMock package.
|
Package mock_bastionhosts is a generated GoMock package. |
disks/mock_disks
Package mock_disks is a generated GoMock package.
|
Package mock_disks is a generated GoMock package. |
groups/mock_groups
Package mock_groups is a generated GoMock package.
|
Package mock_groups is a generated GoMock package. |
inboundnatrules/mock_inboundnatrules
Package mock_inboundnatrules is a generated GoMock package.
|
Package mock_inboundnatrules is a generated GoMock package. |
loadbalancers/mock_loadbalancers
Package mock_loadbalancers is a generated GoMock package.
|
Package mock_loadbalancers is a generated GoMock package. |
managedclusters/mock_managedclusters
Run go generate to regenerate this mock.
|
Run go generate to regenerate this mock. |
natgateways/mock_natgateways
Package mock_natgateways is a generated GoMock package.
|
Package mock_natgateways is a generated GoMock package. |
networkinterfaces/mock_networkinterfaces
Package mock_networkinterfaces is a generated GoMock package.
|
Package mock_networkinterfaces is a generated GoMock package. |
privatedns/mock_privatedns
Package mock_privatedns is a generated GoMock package.
|
Package mock_privatedns is a generated GoMock package. |
publicips/mock_publicips
Package mock_publicips is a generated GoMock package.
|
Package mock_publicips is a generated GoMock package. |
resourceskus/mock_resourceskus
Run go generate to regenerate this mock.
|
Run go generate to regenerate this mock. |
roleassignments/mock_roleassignments
Package mock_roleassignments is a generated GoMock package.
|
Package mock_roleassignments is a generated GoMock package. |
routetables/mock_routetables
Package mock_routetables is a generated GoMock package.
|
Package mock_routetables is a generated GoMock package. |
scalesets/mock_scalesets
Package mock_scalesets is a generated GoMock package.
|
Package mock_scalesets is a generated GoMock package. |
scalesetvms/mock_scalesetvms
Package mock_scalesetvms is a generated GoMock package.
|
Package mock_scalesetvms is a generated GoMock package. |
securitygroups/mock_securitygroups
Package mock_securitygroups is a generated GoMock package.
|
Package mock_securitygroups is a generated GoMock package. |
subnets/mock_subnets
Package mock_subnets is a generated GoMock package.
|
Package mock_subnets is a generated GoMock package. |
tags/mock_tags
Package mock_tags is a generated GoMock package.
|
Package mock_tags is a generated GoMock package. |
virtualmachines/mock_virtualmachines
Package mock_virtualmachines is a generated GoMock package.
|
Package mock_virtualmachines is a generated GoMock package. |
virtualnetworks/mock_virtualnetworks
Package mock_virtualnetworks is a generated GoMock package.
|
Package mock_virtualnetworks is a generated GoMock package. |
vmextensions/mock_vmextensions
Package mock_vmextensions is a generated GoMock package.
|
Package mock_vmextensions is a generated GoMock package. |
vmssextensions/mock_vmssextensions
Package mock_vmssextensions is a generated GoMock package.
|
Package mock_vmssextensions is a generated GoMock package. |