Documentation ¶
Index ¶
- Constants
- func NewCloud(configReader io.Reader) (cloudprovider.Interface, error)
- type Cloud
- func (az *Cloud) AddSSHKeyToAllInstances(user string, keyData []byte) error
- func (az *Cloud) AttachDisk(diskName, diskURI string, nodeName types.NodeName, lun int32, ...) error
- func (az *Cloud) Clusters() (cloudprovider.Clusters, bool)
- func (az *Cloud) CreateRoute(clusterName string, nameHint string, kubeRoute *cloudprovider.Route) error
- func (az *Cloud) CreateVolume(name, storageAccount, storageType, location string, requestGB int) (string, string, int, error)
- func (az *Cloud) CurrentNodeName(hostname string) (types.NodeName, error)
- func (az *Cloud) DeleteRoute(clusterName string, kubeRoute *cloudprovider.Route) error
- func (az *Cloud) DeleteVolume(name, uri string) error
- func (az *Cloud) DetachDiskByName(diskName, diskURI string, nodeName types.NodeName) error
- func (az *Cloud) DisksAreAttached(diskNames []string, nodeName types.NodeName) (map[string]bool, error)
- func (az *Cloud) EnsureLoadBalancer(clusterName string, service *api.Service, nodeNames []string) (*api.LoadBalancerStatus, error)
- func (az *Cloud) EnsureLoadBalancerDeleted(clusterName string, service *api.Service) error
- func (az *Cloud) ExternalID(name types.NodeName) (string, error)
- func (az *Cloud) GetDiskLun(diskName, diskURI string, nodeName types.NodeName) (int32, error)
- func (az *Cloud) GetLoadBalancer(clusterName string, service *api.Service) (status *api.LoadBalancerStatus, exists bool, err error)
- func (az *Cloud) GetNextDiskLun(nodeName types.NodeName) (int32, error)
- func (az *Cloud) GetZone() (cloudprovider.Zone, error)
- func (az *Cloud) InstanceID(name types.NodeName) (string, error)
- func (az *Cloud) InstanceType(name types.NodeName) (string, error)
- func (az *Cloud) Instances() (cloudprovider.Instances, bool)
- func (az *Cloud) List(filter string) ([]types.NodeName, error)
- func (az *Cloud) ListRoutes(clusterName string) (routes []*cloudprovider.Route, err error)
- func (az *Cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (az *Cloud) NodeAddresses(name types.NodeName) ([]api.NodeAddress, error)
- func (az *Cloud) ProviderName() string
- func (az *Cloud) Routes() (cloudprovider.Routes, bool)
- func (az *Cloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string)
- func (az *Cloud) UpdateLoadBalancer(clusterName string, service *api.Service, nodeNames []string) error
- func (az *Cloud) Zones() (cloudprovider.Zones, bool)
- type Config
Constants ¶
const CloudProviderName = "azure"
CloudProviderName is the value used for the --cloud-provider flag
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Cloud ¶
type Cloud struct { Config Environment azure.Environment RoutesClient network.RoutesClient SubnetsClient network.SubnetsClient InterfacesClient network.InterfacesClient RouteTablesClient network.RouteTablesClient LoadBalancerClient network.LoadBalancersClient PublicIPAddressesClient network.PublicIPAddressesClient SecurityGroupsClient network.SecurityGroupsClient VirtualMachinesClient compute.VirtualMachinesClient StorageAccountClient storage.AccountsClient }
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 (az *Cloud) AttachDisk(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) CreateRoute ¶
func (az *Cloud) CreateRoute(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) CreateVolume ¶ added in v1.5.0
func (az *Cloud) CreateVolume(name, storageAccount, storageType, 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 (*Cloud) CurrentNodeName ¶
CurrentNodeName returns the name of the node we are currently running on On most clouds (e.g. GCE) this is the hostname, so we provide the hostname
func (*Cloud) DeleteRoute ¶
func (az *Cloud) DeleteRoute(clusterName string, kubeRoute *cloudprovider.Route) error
DeleteRoute deletes the specified managed route Route should be as returned by ListRoutes
func (*Cloud) DeleteVolume ¶ added in v1.5.0
DeleteVolume deletes a VHD blob
func (*Cloud) DetachDiskByName ¶
DetachDiskByName detaches a vhd from host the vhd can be identified by diskName or diskURI
func (*Cloud) DisksAreAttached ¶ added in v1.4.6
func (az *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(clusterName string, service *api.Service, nodeNames []string) (*api.LoadBalancerStatus, error)
EnsureLoadBalancer creates a new load balancer 'name', or updates the existing one. Returns the status of the balancer
func (*Cloud) EnsureLoadBalancerDeleted ¶
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) ExternalID ¶
ExternalID returns the cloud provider ID of the specified instance (deprecated).
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) GetLoadBalancer ¶
func (az *Cloud) GetLoadBalancer(clusterName string, service *api.Service) (status *api.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) GetZone ¶
func (az *Cloud) GetZone() (cloudprovider.Zone, error)
GetZone returns the Zone containing the current failure zone and locality region that the program is running in
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) 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) 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) List ¶
List lists instances that match 'filter' which is a regular expression which must match the entire instance name (fqdn)
func (*Cloud) ListRoutes ¶
func (az *Cloud) ListRoutes(clusterName string) (routes []*cloudprovider.Route, err 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) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*Cloud) Routes ¶
func (az *Cloud) Routes() (cloudprovider.Routes, bool)
Routes returns a routes interface along with whether the interface is supported.
func (*Cloud) ScrubDNS ¶
ScrubDNS provides an opportunity for cloud-provider-specific code to process DNS settings for pods.
type Config ¶
type Config struct { Cloud string `json:"cloud" yaml:"cloud"` TenantID string `json:"tenantId" yaml:"tenantId"` SubscriptionID string `json:"subscriptionId" yaml:"subscriptionId"` ResourceGroup string `json:"resourceGroup" yaml:"resourceGroup"` Location string `json:"location" yaml:"location"` VnetName string `json:"vnetName" yaml:"vnetName"` SubnetName string `json:"subnetName" yaml:"subnetName"` SecurityGroupName string `json:"securityGroupName" yaml:"securityGroupName"` RouteTableName string `json:"routeTableName" yaml:"routeTableName"` PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName" yaml:"primaryAvailabilitySetName"` AADClientID string `json:"aadClientId" yaml:"aadClientId"` AADClientSecret string `json:"aadClientSecret" yaml:"aadClientSecret"` AADTenantID string `json:"aadTenantId" yaml:"aadTenantId"` }
Config holds the configuration parsed from the --cloud-config flag