Documentation
¶
Overview ¶
This version of Photon cloud provider supports the disk interface for Photon persistent disk volume plugin. LoadBalancer, Routes, and Zones are currently not supported. The use of Photon cloud provider requires to start kubelet, kube-apiserver, and kube-controller-manager with config flag: '--cloud-provider=photon --cloud-config=[path_to_config_file]'. When running multi-node kubernetes using docker, the config file should be located inside /etc/kubernetes.
Index ¶
- Constants
- type Disks
- type PCCloud
- func (pc *PCCloud) AddSSHKeyToAllInstances(user string, keyData []byte) error
- func (pc *PCCloud) AttachDisk(pdID string, nodeName k8stypes.NodeName) error
- func (pc *PCCloud) Clusters() (cloudprovider.Clusters, bool)
- func (pc *PCCloud) CreateDisk(volumeOptions *VolumeOptions) (pdID string, err error)
- func (pc *PCCloud) CurrentNodeName(hostname string) (k8stypes.NodeName, error)
- func (pc *PCCloud) DeleteDisk(pdID string) error
- func (pc *PCCloud) DetachDisk(pdID string, nodeName k8stypes.NodeName) error
- func (pc *PCCloud) DiskIsAttached(pdID string, nodeName k8stypes.NodeName) (bool, error)
- func (pc *PCCloud) DisksAreAttached(pdIDs []string, nodeName k8stypes.NodeName) (map[string]bool, error)
- func (pc *PCCloud) ExternalID(nodeName k8stypes.NodeName) (string, error)
- func (pc *PCCloud) GetZone() (cloudprovider.Zone, error)
- func (pc *PCCloud) GetZoneByNodeName(nodeName k8stypes.NodeName) (cloudprovider.Zone, error)
- func (pc *PCCloud) GetZoneByProviderID(providerID string) (cloudprovider.Zone, error)
- func (pc *PCCloud) HasClusterID() bool
- func (pc *PCCloud) Initialize(clientBuilder controller.ControllerClientBuilder)
- func (pc *PCCloud) InstanceExistsByProviderID(providerID string) (bool, error)
- func (pc *PCCloud) InstanceID(nodeName k8stypes.NodeName) (string, error)
- func (pc *PCCloud) InstanceType(nodeName k8stypes.NodeName) (string, error)
- func (pc *PCCloud) InstanceTypeByProviderID(providerID string) (string, error)
- func (pc *PCCloud) Instances() (cloudprovider.Instances, bool)
- func (pc *PCCloud) List(filter string) ([]k8stypes.NodeName, error)
- func (pc *PCCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (pc *PCCloud) NodeAddresses(nodeName k8stypes.NodeName) ([]v1.NodeAddress, error)
- func (pc *PCCloud) NodeAddressesByProviderID(providerID string) ([]v1.NodeAddress, error)
- func (pc *PCCloud) ProviderName() string
- func (pc *PCCloud) Routes() (cloudprovider.Routes, bool)
- func (pc *PCCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string)
- func (pc *PCCloud) Zones() (cloudprovider.Zones, bool)
- type PCConfig
- type VolumeOptions
Constants ¶
const ( ProviderName = "photon" DiskSpecKind = "persistent-disk" MAC_OUI_VC = "00:50:56" MAC_OUI_ESX = "00:0c:29" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Disks ¶
type Disks interface { // AttachDisk attaches given disk to given node. Current node // is used when nodeName is empty string. AttachDisk(pdID string, nodeName k8stypes.NodeName) error // DetachDisk detaches given disk to given node. Current node // is used when nodeName is empty string. DetachDisk(pdID string, nodeName k8stypes.NodeName) error // DiskIsAttached checks if a disk is attached to the given node. DiskIsAttached(pdID string, nodeName k8stypes.NodeName) (bool, error) // DisksAreAttached is a batch function to check if a list of disks are attached // to the node with the specified NodeName. DisksAreAttached(pdIDs []string, nodeName k8stypes.NodeName) (map[string]bool, error) // CreateDisk creates a new PD with given properties. CreateDisk(volumeOptions *VolumeOptions) (pdID string, err error) // DeleteDisk deletes PD. DeleteDisk(pdID string) error }
Disks is interface for manipulation with PhotonController Persistent Disks.
type PCCloud ¶
type PCCloud struct { cloudprovider.Zone // contains filtered or unexported fields }
Photon is an implementation of the cloud provider interface for Photon Controller.
func (*PCCloud) AddSSHKeyToAllInstances ¶
func (*PCCloud) AttachDisk ¶
Attaches given virtual disk volume to the compute running kubelet.
func (*PCCloud) CreateDisk ¶
func (pc *PCCloud) CreateDisk(volumeOptions *VolumeOptions) (pdID string, err error)
Create a volume of given size (in GB).
func (*PCCloud) CurrentNodeName ¶
func (*PCCloud) DeleteDisk ¶
Deletes a volume given volume name.
func (*PCCloud) DetachDisk ¶
Detaches given virtual disk volume from the compute running kubelet.
func (*PCCloud) DiskIsAttached ¶
DiskIsAttached returns if disk is attached to the VM using controllers supported by the plugin.
func (*PCCloud) DisksAreAttached ¶
func (pc *PCCloud) DisksAreAttached(pdIDs []string, nodeName k8stypes.NodeName) (map[string]bool, error)
DisksAreAttached returns if disks are attached to the VM using controllers supported by the plugin.
func (*PCCloud) ExternalID ¶
ExternalID returns the cloud provider ID of the specified instance (deprecated).
func (*PCCloud) GetZoneByNodeName ¶
GetZoneByNodeName implements Zones.GetZoneByNodeName This is particularly useful in external cloud providers where the kubelet does not initialize node data.
func (*PCCloud) GetZoneByProviderID ¶
func (pc *PCCloud) GetZoneByProviderID(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 (*PCCloud) HasClusterID ¶
HasClusterID returns true if the cluster has a clusterID
func (*PCCloud) Initialize ¶ added in v1.7.0
func (pc *PCCloud) Initialize(clientBuilder controller.ControllerClientBuilder)
Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func (*PCCloud) 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 (*PCCloud) InstanceID ¶
InstanceID returns the cloud provider ID of the specified instance.
func (*PCCloud) InstanceType ¶
func (*PCCloud) InstanceTypeByProviderID ¶ added in v1.7.0
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 (*PCCloud) Instances ¶
func (pc *PCCloud) Instances() (cloudprovider.Instances, bool)
Instances returns an implementation of Instances for Photon Controller.
func (*PCCloud) LoadBalancer ¶
func (pc *PCCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns an implementation of LoadBalancer for Photon Controller.
func (*PCCloud) NodeAddresses ¶
NodeAddresses is an implementation of Instances.NodeAddresses.
func (*PCCloud) NodeAddressesByProviderID ¶ added in v1.7.0
func (pc *PCCloud) NodeAddressesByProviderID(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 (*PCCloud) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*PCCloud) Routes ¶
func (pc *PCCloud) Routes() (cloudprovider.Routes, bool)
Routes returns a false since the interface is not supported for photon controller.
type PCConfig ¶
type PCConfig struct { Global struct { // the Photon Controller endpoint IP address CloudTarget string `gcfg:"target"` // Photon Controller project name Project string `gcfg:"project"` // when kubelet is started with '--hostname-override=${IP_ADDRESS}', set to true; // otherwise, set to false. OverrideIP bool `gcfg:"overrideIP"` // VM ID for this node VMID string `gcfg:"vmID"` // Authentication enabled or not AuthEnabled bool `gcfg:"authentication"` } }