Documentation ¶
Index ¶
- Constants
- Variables
- func ExtractDiskData(diskData interface{}) (provisioningState string, diskState string, err error)
- func ExtractVMData(vmData map[string]interface{}) (dataDisks []interface{}, storageProfile map[string]interface{}, ...)
- func MakeCRC32(str string) string
- func NewCloud(configReader io.Reader) (cloudprovider.Interface, error)
- type BlobDiskController
- func (c *BlobDiskController) CreateBlobDisk(dataDiskName string, storageAccountType storage.SkuName, sizeGB int) (string, error)
- func (c *BlobDiskController) CreateVolume(blobName, accountName, accountType, location string, requestGB int) (string, string, int, error)
- func (c *BlobDiskController) DeleteBlobDisk(diskURI string) error
- func (c *BlobDiskController) DeleteVolume(diskURI string) error
- type Cloud
- func (az *Cloud) AddSSHKeyToAllInstances(ctx context.Context, user string, keyData []byte) error
- func (c Cloud) AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, ...) error
- func (az *Cloud) Clusters() (cloudprovider.Clusters, bool)
- func (az *Cloud) CreateFileShare(shareName, accountName, accountType, location string, requestGiB int) (string, string, error)
- func (az *Cloud) CreateOrUpdateInterfaceWithRetry(nic network.Interface) error
- func (az *Cloud) CreateOrUpdateLBWithRetry(lb network.LoadBalancer) error
- func (az *Cloud) CreateOrUpdatePIPWithRetry(pipResourceGroup string, pip network.PublicIPAddress) error
- func (az *Cloud) CreateOrUpdateRouteTableWithRetry(routeTable network.RouteTable) error
- func (az *Cloud) CreateOrUpdateRouteWithRetry(route network.Route) error
- func (az *Cloud) CreateOrUpdateSGWithRetry(sg network.SecurityGroup) error
- func (az *Cloud) CreateOrUpdateVMWithRetry(vmName string, newVM compute.VirtualMachine) error
- func (az *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, ...) error
- func (az *Cloud) CurrentNodeName(ctx context.Context, hostname string) (types.NodeName, error)
- func (az *Cloud) DeleteFileShare(accountName, accountKey, shareName string) error
- func (az *Cloud) DeleteLBWithRetry(lbName string) error
- func (az *Cloud) DeletePublicIPWithRetry(pipResourceGroup string, pipName string) error
- func (az *Cloud) DeleteRoute(ctx context.Context, clusterName string, kubeRoute *cloudprovider.Route) error
- func (az *Cloud) DeleteRouteWithRetry(routeName string) error
- func (c Cloud) DetachDiskByName(diskName, diskURI string, nodeName types.NodeName) error
- func (c Cloud) DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error)
- func (az *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
- func (az *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error
- func (c Cloud) GetDiskLun(diskName, diskURI string, nodeName types.NodeName) (int32, error)
- func (az *Cloud) GetIPForMachineWithRetry(name types.NodeName) (string, string, error)
- func (az *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (status *v1.LoadBalancerStatus, exists bool, err error)
- func (c Cloud) GetNextDiskLun(nodeName types.NodeName) (int32, error)
- func (az *Cloud) GetVirtualMachineWithRetry(name types.NodeName) (compute.VirtualMachine, error)
- func (az *Cloud) GetZone(ctx context.Context) (cloudprovider.Zone, error)
- func (az *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
- func (az *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
- func (az *Cloud) HasClusterID() bool
- func (az *Cloud) Initialize(clientBuilder controller.ControllerClientBuilder)
- func (az *Cloud) InstanceExistsByProviderID(ctx context.Context, providerID string) (bool, error)
- func (az *Cloud) InstanceID(ctx context.Context, name types.NodeName) (string, error)
- func (az *Cloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error)
- func (az *Cloud) InstanceType(ctx context.Context, name types.NodeName) (string, error)
- func (az *Cloud) InstanceTypeByProviderID(ctx context.Context, providerID string) (string, error)
- func (az *Cloud) Instances() (cloudprovider.Instances, bool)
- func (az *Cloud) ListLBWithRetry() ([]network.LoadBalancer, error)
- func (az *Cloud) ListPIPWithRetry(pipResourceGroup string) ([]network.PublicIPAddress, error)
- func (az *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error)
- func (az *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error)
- func (az *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
- func (az *Cloud) ProviderName() string
- func (az *Cloud) ResizeFileShare(accountName, accountKey, name string, sizeGiB int) error
- func (az *Cloud) Routes() (cloudprovider.Routes, bool)
- func (az *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error
- func (az *Cloud) UpdateVmssVMWithRetry(ctx context.Context, resourceGroupName string, VMScaleSetName string, ...) error
- func (az *Cloud) VirtualMachineClientListWithRetry() ([]compute.VirtualMachine, error)
- func (az *Cloud) Zones() (cloudprovider.Zones, bool)
- type Config
- type DisksClient
- type FileClient
- type IPAddress
- type InstanceMetadata
- type InterfacesClient
- type LoadBalancersClient
- type ManagedDiskController
- func (c *ManagedDiskController) CreateManagedDisk(diskName string, storageAccountType storage.SkuName, sizeGB int, ...) (string, error)
- func (c *ManagedDiskController) DeleteManagedDisk(diskURI string) error
- func (c *ManagedDiskController) ResizeDisk(diskName string, oldSize resource.Quantity, newSize resource.Quantity) (resource.Quantity, error)
- type NetworkData
- type NetworkInterface
- type NetworkMetadata
- type PublicIPAddressesClient
- type RouteTablesClient
- type RoutesClient
- type SecurityGroupsClient
- type StorageAccountClient
- type Subnet
- type SubnetsClient
- type VMSet
- type VirtualMachineScaleSetVMsClient
- type VirtualMachineScaleSetsClient
- type VirtualMachinesClient
Constants ¶
const ( // ServiceAnnotationLoadBalancerInternal is the annotation used on the service ServiceAnnotationLoadBalancerInternal = "service.beta.kubernetes.io/azure-load-balancer-internal" // ServiceAnnotationLoadBalancerInternalSubnet is the annotation used on the service // to specify what subnet it is exposed on ServiceAnnotationLoadBalancerInternalSubnet = "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" // ServiceAnnotationLoadBalancerMode is the annotation used on the service to specify the // Azure load balancer selection based on availability sets // There are currently three possible load balancer selection modes : // 1. Default mode - service has no annotation ("service.beta.kubernetes.io/azure-load-balancer-mode") // In this case the Loadbalancer of the primary Availability set is selected // 2. "__auto__" mode - service is annotated with __auto__ value, this when loadbalancer from any availability set // is selected which has the minimum rules associated with it. // 3. "as1,as2" mode - this is when the load balancer from the specified availability sets is selected that has the // minimum rules associated with it. ServiceAnnotationLoadBalancerMode = "service.beta.kubernetes.io/azure-load-balancer-mode" // ServiceAnnotationLoadBalancerAutoModeValue is the annotation used on the service to specify the // Azure load balancer auto selection from the availability sets ServiceAnnotationLoadBalancerAutoModeValue = "__auto__" // ServiceAnnotationDNSLabelName is the annotation used on the service // to specify the DNS label name for the service. ServiceAnnotationDNSLabelName = "service.beta.kubernetes.io/azure-dns-label-name" // to specify that the service should be exposed using an Azure security rule // that may be shared with other service, trading specificity of rules for an // increase in the number of services that can be exposed. This relies on the // Azure "augmented security rules" feature. ServiceAnnotationSharedSecurityRule = "service.beta.kubernetes.io/azure-shared-securityrule" // ServiceAnnotationLoadBalancerResourceGroup is the annotation used on the service // to specify the resource group of load balancer objects that are not in the same resource group as the cluster. ServiceAnnotationLoadBalancerResourceGroup = "service.beta.kubernetes.io/azure-load-balancer-resource-group" // ServiceAnnotationAllowedServiceTag is the annotation used on the service // to specify a list of allowed service tags separated by comma ServiceAnnotationAllowedServiceTag = "service.beta.kubernetes.io/azure-allowed-service-tags" )
const (
// CloudProviderName is the value used for the --cloud-provider flag
CloudProviderName = "azure"
)
const (
// InternalLoadBalancerNameSuffix is load balancer posfix
InternalLoadBalancerNameSuffix = "-internal"
)
Variables ¶
var ( // ErrorNotVmssInstance indicates an instance is not belongint to any vmss. ErrorNotVmssInstance = errors.New("not a vmss instance") )
Functions ¶
func ExtractDiskData ¶
ExtractDiskData : extract provisioningState, diskState from a map struct
Types ¶
type BlobDiskController ¶
type BlobDiskController struct {
// contains filtered or unexported fields
}
BlobDiskController : blob disk controller struct
func (*BlobDiskController) CreateBlobDisk ¶
func (c *BlobDiskController) CreateBlobDisk(dataDiskName string, storageAccountType storage.SkuName, sizeGB int) (string, error)
CreateBlobDisk : create a blob disk in a node
func (*BlobDiskController) CreateVolume ¶
func (c *BlobDiskController) CreateVolume(blobName, accountName, accountType, location string, requestGB int) (string, string, int, error)
CreateVolume creates a VHD blob in a storage account that has storageType and location using the given storage account. If no storage account is given, search all the storage accounts associated with the resource group and pick one that fits storage type and location.
func (*BlobDiskController) DeleteBlobDisk ¶
func (c *BlobDiskController) DeleteBlobDisk(diskURI string) error
DeleteBlobDisk : delete a blob disk from a node
func (*BlobDiskController) DeleteVolume ¶
func (c *BlobDiskController) DeleteVolume(diskURI string) error
DeleteVolume deletes a VHD blob
type Cloud ¶
type Cloud struct { Config Environment azure.Environment RoutesClient RoutesClient SubnetsClient SubnetsClient InterfacesClient InterfacesClient RouteTablesClient RouteTablesClient LoadBalancerClient LoadBalancersClient PublicIPAddressesClient PublicIPAddressesClient SecurityGroupsClient SecurityGroupsClient VirtualMachinesClient VirtualMachinesClient StorageAccountClient StorageAccountClient DisksClient DisksClient FileClient FileClient // Clients for vmss. VirtualMachineScaleSetsClient VirtualMachineScaleSetsClient VirtualMachineScaleSetVMsClient VirtualMachineScaleSetVMsClient *BlobDiskController *ManagedDiskController // contains filtered or unexported fields }
Cloud holds the config and clients
func (*Cloud) AddSSHKeyToAllInstances ¶
AddSSHKeyToAllInstances adds an SSH public key as a legal identity for all instances expected format for the key is standard ssh-keygen format: <protocol> <blob>
func (Cloud) AttachDisk ¶
func (c Cloud) AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes) error
AttachDisk attaches a vhd to vm. The vhd must exist, can be identified by diskName, diskURI, and lun.
func (*Cloud) Clusters ¶
func (az *Cloud) Clusters() (cloudprovider.Clusters, bool)
Clusters returns a clusters interface. Also returns true if the interface is supported, false otherwise.
func (*Cloud) CreateFileShare ¶
func (az *Cloud) CreateFileShare(shareName, accountName, accountType, location string, requestGiB int) (string, string, error)
CreateFileShare creates a file share, using a matching storage account
func (*Cloud) CreateOrUpdateInterfaceWithRetry ¶
CreateOrUpdateInterfaceWithRetry invokes az.PublicIPAddressesClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdateLBWithRetry ¶
func (az *Cloud) CreateOrUpdateLBWithRetry(lb network.LoadBalancer) error
CreateOrUpdateLBWithRetry invokes az.LoadBalancerClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdatePIPWithRetry ¶
func (az *Cloud) CreateOrUpdatePIPWithRetry(pipResourceGroup string, pip network.PublicIPAddress) error
CreateOrUpdatePIPWithRetry invokes az.PublicIPAddressesClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdateRouteTableWithRetry ¶
func (az *Cloud) CreateOrUpdateRouteTableWithRetry(routeTable network.RouteTable) error
CreateOrUpdateRouteTableWithRetry invokes az.RouteTablesClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdateRouteWithRetry ¶
CreateOrUpdateRouteWithRetry invokes az.RoutesClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdateSGWithRetry ¶
func (az *Cloud) CreateOrUpdateSGWithRetry(sg network.SecurityGroup) error
CreateOrUpdateSGWithRetry invokes az.SecurityGroupsClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateOrUpdateVMWithRetry ¶
func (az *Cloud) CreateOrUpdateVMWithRetry(vmName string, newVM compute.VirtualMachine) error
CreateOrUpdateVMWithRetry invokes az.VirtualMachinesClient.CreateOrUpdate with exponential backoff retry
func (*Cloud) CreateRoute ¶
func (az *Cloud) CreateRoute(ctx context.Context, clusterName string, nameHint string, kubeRoute *cloudprovider.Route) error
CreateRoute creates the described managed route route.Name will be ignored, although the cloud-provider may use nameHint to create a more user-meaningful name.
func (*Cloud) CurrentNodeName ¶
CurrentNodeName returns the name of the node we are currently running on. On Azure this is the hostname, so we just return the hostname.
func (*Cloud) DeleteFileShare ¶
DeleteFileShare deletes a file share using storage account name and key
func (*Cloud) DeleteLBWithRetry ¶
DeleteLBWithRetry invokes az.LoadBalancerClient.Delete with exponential backoff retry
func (*Cloud) DeletePublicIPWithRetry ¶
DeletePublicIPWithRetry invokes az.PublicIPAddressesClient.Delete with exponential backoff retry
func (*Cloud) DeleteRoute ¶
func (az *Cloud) DeleteRoute(ctx context.Context, clusterName string, kubeRoute *cloudprovider.Route) error
DeleteRoute deletes the specified managed route Route should be as returned by ListRoutes
func (*Cloud) DeleteRouteWithRetry ¶
DeleteRouteWithRetry invokes az.RoutesClient.Delete with exponential backoff retry
func (Cloud) DetachDiskByName ¶
DetachDiskByName detaches a vhd from host. The vhd can be identified by diskName or diskURI.
func (Cloud) DisksAreAttached ¶
func (c Cloud) DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error)
DisksAreAttached checks if a list of volumes are attached to the node with the specified NodeName.
func (*Cloud) EnsureLoadBalancer ¶
func (az *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)
EnsureLoadBalancer creates a new load balancer 'name', or updates the existing one. Returns the status of the balancer
func (*Cloud) EnsureLoadBalancerDeleted ¶
func (az *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error
EnsureLoadBalancerDeleted deletes the specified load balancer if it exists, returning nil if the load balancer specified either didn't exist or was successfully deleted. This construction is useful because many cloud providers' load balancers have multiple underlying components, meaning a Get could say that the LB doesn't exist even if some part of it is still laying around.
func (Cloud) GetDiskLun ¶
GetDiskLun finds the lun on the host that the vhd is attached to, given a vhd's diskName and diskURI.
func (*Cloud) GetIPForMachineWithRetry ¶
GetIPForMachineWithRetry invokes az.getIPForMachine with exponential backoff retry
func (*Cloud) GetLoadBalancer ¶
func (az *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (status *v1.LoadBalancerStatus, exists bool, err error)
GetLoadBalancer returns whether the specified load balancer exists, and if so, what its status is.
func (Cloud) GetNextDiskLun ¶
GetNextDiskLun searches all vhd attachment on the host and find unused lun. Return -1 if all luns are used.
func (*Cloud) GetVirtualMachineWithRetry ¶
GetVirtualMachineWithRetry invokes az.getVirtualMachine with exponential backoff retry
func (*Cloud) GetZone ¶
GetZone returns the Zone containing the current failure zone and locality region that the program is running in
func (*Cloud) GetZoneByNodeName ¶
func (az *Cloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
GetZoneByNodeName implements Zones.GetZoneByNodeName This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) GetZoneByProviderID ¶
func (az *Cloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
GetZoneByProviderID implements Zones.GetZoneByProviderID This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*Cloud) HasClusterID ¶
HasClusterID returns true if the cluster has a clusterID
func (*Cloud) Initialize ¶
func (az *Cloud) Initialize(clientBuilder controller.ControllerClientBuilder)
Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func (*Cloud) InstanceExistsByProviderID ¶
InstanceExistsByProviderID returns true if the instance with the given provider id still exists and is running. If false is returned with no error, the instance will be immediately deleted by the cloud controller manager.
func (*Cloud) InstanceID ¶
InstanceID returns the cloud provider ID of the specified instance. Note that if the instance does not exist or is no longer running, we must return ("", cloudprovider.InstanceNotFound)
func (*Cloud) InstanceShutdownByProviderID ¶
InstanceShutdownByProviderID returns true if the instance is in safe state to detach volumes
func (*Cloud) InstanceType ¶
InstanceType returns the type of the specified instance. Note that if the instance does not exist or is no longer running, we must return ("", cloudprovider.InstanceNotFound) (Implementer Note): This is used by kubelet. Kubelet will label the node. Real log from kubelet:
Adding node label from cloud provider: beta.kubernetes.io/instance-type=[value]
func (*Cloud) InstanceTypeByProviderID ¶
InstanceTypeByProviderID returns the cloudprovider instance type of the node with the specified unique providerID This method will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
func (*Cloud) Instances ¶
func (az *Cloud) Instances() (cloudprovider.Instances, bool)
Instances returns an instances interface. Also returns true if the interface is supported, false otherwise.
func (*Cloud) ListLBWithRetry ¶
func (az *Cloud) ListLBWithRetry() ([]network.LoadBalancer, error)
ListLBWithRetry invokes az.LoadBalancerClient.List with exponential backoff retry
func (*Cloud) ListPIPWithRetry ¶
func (az *Cloud) ListPIPWithRetry(pipResourceGroup string) ([]network.PublicIPAddress, error)
ListPIPWithRetry list the PIP resources in the given resource group
func (*Cloud) ListRoutes ¶
func (az *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error)
ListRoutes lists all managed routes that belong to the specified clusterName
func (*Cloud) LoadBalancer ¶
func (az *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns a balancer interface. Also returns true if the interface is supported, false otherwise.
func (*Cloud) NodeAddresses ¶
NodeAddresses returns the addresses of the specified instance.
func (*Cloud) NodeAddressesByProviderID ¶
func (az *Cloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
NodeAddressesByProviderID returns the node addresses of an instances with the specified unique providerID This method will not be called from the node that is requesting this ID. i.e. metadata service and other local methods cannot be used here
func (*Cloud) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*Cloud) ResizeFileShare ¶
ResizeFileShare resizes a file share
func (*Cloud) Routes ¶
func (az *Cloud) Routes() (cloudprovider.Routes, bool)
Routes returns a routes interface along with whether the interface is supported.
func (*Cloud) UpdateLoadBalancer ¶
func (az *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error
UpdateLoadBalancer updates hosts under the specified load balancer.
func (*Cloud) UpdateVmssVMWithRetry ¶
func (az *Cloud) UpdateVmssVMWithRetry(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters compute.VirtualMachineScaleSetVM) error
UpdateVmssVMWithRetry invokes az.VirtualMachineScaleSetVMsClient.Update with exponential backoff retry
func (*Cloud) VirtualMachineClientListWithRetry ¶
func (az *Cloud) VirtualMachineClientListWithRetry() ([]compute.VirtualMachine, error)
VirtualMachineClientListWithRetry invokes az.VirtualMachinesClient.List with exponential backoff retry
type Config ¶
type Config struct { auth.AzureAuthConfig // The name of the resource group that the cluster is deployed in ResourceGroup string `json:"resourceGroup" yaml:"resourceGroup"` // The location of the resource group that the cluster is deployed in Location string `json:"location" yaml:"location"` // The name of the VNet that the cluster is deployed in VnetName string `json:"vnetName" yaml:"vnetName"` // The name of the resource group that the Vnet is deployed in VnetResourceGroup string `json:"vnetResourceGroup" yaml:"vnetResourceGroup"` // The name of the subnet that the cluster is deployed in SubnetName string `json:"subnetName" yaml:"subnetName"` // The name of the security group attached to the cluster's subnet SecurityGroupName string `json:"securityGroupName" yaml:"securityGroupName"` // (Optional in 1.6) The name of the route table attached to the subnet that the cluster is deployed in RouteTableName string `json:"routeTableName" yaml:"routeTableName"` // (Optional) The name of the availability set that should be used as the load balancer backend // If this is set, the Azure cloudprovider will only add nodes from that availability set to the load // balancer backend pool. If this is not set, and multiple agent pools (availability sets) are used, then // the cloudprovider will try to add all nodes to a single backend pool which is forbidden. // In other words, if you use multiple agent pools (availability sets), you MUST set this field. PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName" yaml:"primaryAvailabilitySetName"` // The type of azure nodes. Candidate values are: vmss and standard. // If not set, it will be default to standard. VMType string `json:"vmType" yaml:"vmType"` // The name of the scale set that should be used as the load balancer backend. // If this is set, the Azure cloudprovider will only add nodes from that scale set to the load // balancer backend pool. If this is not set, and multiple agent pools (scale sets) are used, then // the cloudprovider will try to add all nodes to a single backend pool which is forbidden. // In other words, if you use multiple agent pools (scale sets), you MUST set this field. PrimaryScaleSetName string `json:"primaryScaleSetName" yaml:"primaryScaleSetName"` // Enable exponential backoff to manage resource request retries CloudProviderBackoff bool `json:"cloudProviderBackoff" yaml:"cloudProviderBackoff"` // Backoff retry limit CloudProviderBackoffRetries int `json:"cloudProviderBackoffRetries" yaml:"cloudProviderBackoffRetries"` // Backoff exponent CloudProviderBackoffExponent float64 `json:"cloudProviderBackoffExponent" yaml:"cloudProviderBackoffExponent"` // Backoff duration CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration" yaml:"cloudProviderBackoffDuration"` // Backoff jitter CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter" yaml:"cloudProviderBackoffJitter"` // Enable rate limiting CloudProviderRateLimit bool `json:"cloudProviderRateLimit" yaml:"cloudProviderRateLimit"` // Rate limit QPS (Read) CloudProviderRateLimitQPS float32 `json:"cloudProviderRateLimitQPS" yaml:"cloudProviderRateLimitQPS"` // Rate limit Bucket Size CloudProviderRateLimitBucket int `json:"cloudProviderRateLimitBucket" yaml:"cloudProviderRateLimitBucket"` // Rate limit QPS (Write) CloudProviderRateLimitQPSWrite float32 `json:"cloudProviderRateLimitQPSWrite" yaml:"cloudProviderRateLimitQPSWrite"` // Rate limit Bucket Size CloudProviderRateLimitBucketWrite int `json:"cloudProviderRateLimitBucketWrite" yaml:"cloudProviderRateLimitBucketWrite"` // Use instance metadata service where possible UseInstanceMetadata bool `json:"useInstanceMetadata" yaml:"useInstanceMetadata"` // Sku of Load Balancer and Public IP. Candidate values are: basic and standard. // If not set, it will be default to basic. LoadBalancerSku string `json:"loadBalancerSku" yaml:"loadBalancerSku"` // ExcludeMasterFromStandardLB excludes master nodes from standard load balancer. // If not set, it will be default to true. ExcludeMasterFromStandardLB *bool `json:"excludeMasterFromStandardLB" yaml:"excludeMasterFromStandardLB"` // Maximum allowed LoadBalancer Rule Count is the limit enforced by Azure Load balancer MaximumLoadBalancerRuleCount int `json:"maximumLoadBalancerRuleCount" yaml:"maximumLoadBalancerRuleCount"` }
Config holds the configuration parsed from the --cloud-config flag All fields are required unless otherwise specified
type DisksClient ¶
type DisksClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, diskName string, diskParameter compute.Disk) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, diskName string) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, diskName string) (result compute.Disk, err error) }
DisksClient defines needed functions for azure compute.DisksClient
type FileClient ¶
type FileClient interface {
// contains filtered or unexported methods
}
FileClient is the interface for creating file shares, interface for test injection.
type IPAddress ¶
type IPAddress struct { PrivateIP string `json:"privateIPAddress"` PublicIP string `json:"publicIPAddress"` }
IPAddress represents IP address information.
type InstanceMetadata ¶
type InstanceMetadata struct {
// contains filtered or unexported fields
}
InstanceMetadata knows how to query the Azure instance metadata server.
func NewInstanceMetadata ¶
func NewInstanceMetadata() *InstanceMetadata
NewInstanceMetadata creates an instance of the InstanceMetadata accessor object.
func (*InstanceMetadata) Object ¶
func (i *InstanceMetadata) Object(path string, obj interface{}) error
Object queries the metadata server and populates the passed in object
type InterfacesClient ¶
type InterfacesClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, networkInterfaceName string, parameters network.Interface) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) GetVirtualMachineScaleSetNetworkInterface(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, virtualmachineIndex string, networkInterfaceName string, expand string) (result network.Interface, err error) }
InterfacesClient defines needed functions for azure network.InterfacesClient
type LoadBalancersClient ¶
type LoadBalancersClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, loadBalancerName string, parameters network.LoadBalancer) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, loadBalancerName string) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, loadBalancerName string, expand string) (result network.LoadBalancer, err error) List(ctx context.Context, resourceGroupName string) (result []network.LoadBalancer, err error) }
LoadBalancersClient defines needed functions for azure network.LoadBalancersClient
type ManagedDiskController ¶
type ManagedDiskController struct {
// contains filtered or unexported fields
}
ManagedDiskController : managed disk controller struct
func (*ManagedDiskController) CreateManagedDisk ¶
func (c *ManagedDiskController) CreateManagedDisk(diskName string, storageAccountType storage.SkuName, sizeGB int, tags map[string]string) (string, error)
CreateManagedDisk : create managed disk
func (*ManagedDiskController) DeleteManagedDisk ¶
func (c *ManagedDiskController) DeleteManagedDisk(diskURI string) error
DeleteManagedDisk : delete managed disk
type NetworkData ¶
type NetworkData struct { IPAddress []IPAddress `json:"ipAddress"` Subnet []Subnet `json:"subnet"` }
NetworkData contains IP information for a network.
type NetworkInterface ¶
type NetworkInterface struct { IPV4 NetworkData `json:"ipv4"` IPV6 NetworkData `json:"ipv6"` MAC string `json:"macAddress"` }
NetworkInterface represents an instances network interface.
type NetworkMetadata ¶
type NetworkMetadata struct {
Interface []NetworkInterface `json:"interface"`
}
NetworkMetadata contains metadata about an instance's network
type PublicIPAddressesClient ¶
type PublicIPAddressesClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, publicIPAddressName string, parameters network.PublicIPAddress) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, publicIPAddressName string) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, publicIPAddressName string, expand string) (result network.PublicIPAddress, err error) List(ctx context.Context, resourceGroupName string) (result []network.PublicIPAddress, err error) }
PublicIPAddressesClient defines needed functions for azure network.PublicIPAddressesClient
type RouteTablesClient ¶
type RouteTablesClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, parameters network.RouteTable) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, routeTableName string, expand string) (result network.RouteTable, err error) }
RouteTablesClient defines needed functions for azure network.RouteTablesClient
type RoutesClient ¶
type RoutesClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, routeTableName string, routeName string, routeParameters network.Route) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, routeTableName string, routeName string) (resp *http.Response, err error) }
RoutesClient defines needed functions for azure network.RoutesClient
type SecurityGroupsClient ¶
type SecurityGroupsClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, parameters network.SecurityGroup) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, networkSecurityGroupName string) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) List(ctx context.Context, resourceGroupName string) (result []network.SecurityGroup, err error) }
SecurityGroupsClient defines needed functions for azure network.SecurityGroupsClient
type StorageAccountClient ¶
type StorageAccountClient interface { Create(ctx context.Context, resourceGroupName string, accountName string, parameters storage.AccountCreateParameters) (result *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error) ListKeys(ctx context.Context, resourceGroupName string, accountName string) (result storage.AccountListKeysResult, err error) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result storage.AccountListResult, err error) GetProperties(ctx context.Context, resourceGroupName string, accountName string) (result storage.Account, err error) }
StorageAccountClient defines needed functions for azure storage.AccountsClient
type SubnetsClient ¶
type SubnetsClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, subnetParameters network.Subnet) (resp *http.Response, err error) Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) List(ctx context.Context, resourceGroupName string, virtualNetworkName string) (result []network.Subnet, err error) }
SubnetsClient defines needed functions for azure network.SubnetsClient
type VMSet ¶
type VMSet interface { // GetInstanceIDByNodeName gets the cloud provider ID by node name. // It must return ("", cloudprovider.InstanceNotFound) if the instance does // not exist or is no longer running. GetInstanceIDByNodeName(name string) (string, error) // GetInstanceTypeByNodeName gets the instance type by node name. GetInstanceTypeByNodeName(name string) (string, error) // GetIPByNodeName gets machine private IP and public IP by node name. GetIPByNodeName(name string) (string, string, error) // GetPrimaryInterface gets machine primary network interface by node name. GetPrimaryInterface(nodeName string) (network.Interface, error) // GetNodeNameByProviderID gets the node name by provider ID. GetNodeNameByProviderID(providerID string) (types.NodeName, error) // GetZoneByNodeName gets cloudprovider.Zone by node name. GetZoneByNodeName(name string) (cloudprovider.Zone, error) // GetPrimaryVMSetName returns the VM set name depending on the configured vmType. // It returns config.PrimaryScaleSetName for vmss and config.PrimaryAvailabilitySetName for standard vmType. GetPrimaryVMSetName() string // GetVMSetNames selects all possible availability sets or scale sets // (depending vmType configured) for service load balancer, if the service has // no loadbalancer mode annotation returns the primary VMSet. If service annotation // for loadbalancer exists then return the eligible VMSet. GetVMSetNames(service *v1.Service, nodes []*v1.Node) (availabilitySetNames *[]string, err error) // EnsureHostsInPool ensures the given Node's primary IP configurations are // participating in the specified LoadBalancer Backend Pool. EnsureHostsInPool(serviceName string, nodes []*v1.Node, backendPoolID string, vmSetName string, isInternal bool) error // EnsureBackendPoolDeleted ensures the loadBalancer backendAddressPools deleted from the specified vmSet. EnsureBackendPoolDeleted(poolID, vmSetName string, backendAddressPools *[]network.BackendAddressPool) error // AttachDisk attaches a vhd to vm. The vhd must exist, can be identified by diskName, diskURI, and lun. AttachDisk(isManagedDisk bool, diskName, diskURI string, nodeName types.NodeName, lun int32, cachingMode compute.CachingTypes) error // DetachDiskByName detaches a vhd from host. The vhd can be identified by diskName or diskURI. DetachDiskByName(diskName, diskURI string, nodeName types.NodeName) error // GetDataDisks gets a list of data disks attached to the node. GetDataDisks(nodeName types.NodeName) ([]compute.DataDisk, error) }
VMSet defines functions all vmsets (including scale set and availability set) should be implemented.
type VirtualMachineScaleSetVMsClient ¶
type VirtualMachineScaleSetVMsClient interface { Get(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVM, err error) GetInstanceView(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string) (result compute.VirtualMachineScaleSetVMInstanceView, err error) List(ctx context.Context, resourceGroupName string, virtualMachineScaleSetName string, filter string, selectParameter string, expand string) (result []compute.VirtualMachineScaleSetVM, err error) Update(ctx context.Context, resourceGroupName string, VMScaleSetName string, instanceID string, parameters compute.VirtualMachineScaleSetVM) (resp *http.Response, err error) }
VirtualMachineScaleSetVMsClient defines needed functions for azure compute.VirtualMachineScaleSetVMsClient
type VirtualMachineScaleSetsClient ¶
type VirtualMachineScaleSetsClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, VMScaleSetName string, parameters compute.VirtualMachineScaleSet) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result compute.VirtualMachineScaleSet, err error) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachineScaleSet, err error) UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) }
VirtualMachineScaleSetsClient defines needed functions for azure compute.VirtualMachineScaleSetsClient
type VirtualMachinesClient ¶
type VirtualMachinesClient interface { CreateOrUpdate(ctx context.Context, resourceGroupName string, VMName string, parameters compute.VirtualMachine) (resp *http.Response, err error) Get(ctx context.Context, resourceGroupName string, VMName string, expand compute.InstanceViewTypes) (result compute.VirtualMachine, err error) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachine, err error) }
VirtualMachinesClient defines needed functions for azure compute.VirtualMachinesClient
Source Files ¶
- azure.go
- azure_backoff.go
- azure_blobDiskController.go
- azure_cache.go
- azure_client.go
- azure_controller_common.go
- azure_controller_standard.go
- azure_controller_vmss.go
- azure_fakes.go
- azure_file.go
- azure_instance_metadata.go
- azure_instances.go
- azure_loadbalancer.go
- azure_managedDiskController.go
- azure_metrics.go
- azure_routes.go
- azure_standard.go
- azure_storage.go
- azure_storageaccount.go
- azure_vmsets.go
- azure_vmss.go
- azure_vmss_cache.go
- azure_wrap.go
- azure_zones.go