Documentation ¶
Index ¶
- Constants
- type CSCloud
- func (cs *CSCloud) AddSSHKeyToAllInstances(ctx context.Context, user string, keyData []byte) error
- func (cs *CSCloud) Clusters() (cloudprovider.Clusters, bool)
- func (cs *CSCloud) CurrentNodeName(ctx context.Context, hostname string) (types.NodeName, error)
- func (cs *CSCloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (status *v1.LoadBalancerStatus, err error)
- func (cs *CSCloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error
- func (cs *CSCloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)
- func (cs *CSCloud) GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) string
- func (cs *CSCloud) GetZone(ctx context.Context) (cloudprovider.Zone, error)
- func (cs *CSCloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
- func (cs *CSCloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
- func (cs *CSCloud) HasClusterID() bool
- func (cs *CSCloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
- func (cs *CSCloud) InstanceExistsByProviderID(ctx context.Context, providerID string) (bool, error)
- func (cs *CSCloud) InstanceID(ctx context.Context, name types.NodeName) (string, error)
- func (cs *CSCloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error)
- func (cs *CSCloud) InstanceType(ctx context.Context, name types.NodeName) (string, error)
- func (cs *CSCloud) InstanceTypeByProviderID(ctx context.Context, providerID string) (string, error)
- func (cs *CSCloud) Instances() (cloudprovider.Instances, bool)
- func (cs *CSCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
- func (cs *CSCloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error)
- func (cs *CSCloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
- func (cs *CSCloud) ProviderName() string
- func (cs *CSCloud) Routes() (cloudprovider.Routes, bool)
- func (cs *CSCloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error
- func (cs *CSCloud) Zones() (cloudprovider.Zones, bool)
- type CSConfig
Constants ¶
const ProviderName = "cloudstack"
ProviderName is the name of this cloud provider.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CSCloud ¶
type CSCloud struct {
// contains filtered or unexported fields
}
CSCloud is an implementation of Interface for CloudStack.
func (*CSCloud) AddSSHKeyToAllInstances ¶ added in v1.8.0
AddSSHKeyToAllInstances is currently not implemented.
func (*CSCloud) Clusters ¶
func (cs *CSCloud) Clusters() (cloudprovider.Clusters, bool)
Clusters returns an implementation of Clusters for CloudStack.
func (*CSCloud) CurrentNodeName ¶ added in v1.8.0
CurrentNodeName returns the name of the node we are currently running on.
func (*CSCloud) EnsureLoadBalancer ¶
func (cs *CSCloud) EnsureLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (status *v1.LoadBalancerStatus, err error)
EnsureLoadBalancer creates a new load balancer, or updates the existing one. Returns the status of the balancer.
func (*CSCloud) EnsureLoadBalancerDeleted ¶
func (cs *CSCloud) 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.
func (*CSCloud) GetLoadBalancer ¶
func (cs *CSCloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)
GetLoadBalancer returns whether the specified load balancer exists, and if so, what its status is.
func (*CSCloud) GetLoadBalancerName ¶ added in v1.12.0
func (cs *CSCloud) GetLoadBalancerName(ctx context.Context, clusterName string, service *v1.Service) string
GetLoadBalancerName retrieves the name of the LoadBalancer.
func (*CSCloud) GetZone ¶
GetZone returns the Zone containing the region that the program is running in.
func (*CSCloud) GetZoneByNodeName ¶ added in v1.8.0
func (cs *CSCloud) GetZoneByNodeName(ctx context.Context, nodeName types.NodeName) (cloudprovider.Zone, error)
GetZoneByNodeName returns the Zone, found by using the node name.
func (*CSCloud) GetZoneByProviderID ¶ added in v1.8.0
func (cs *CSCloud) GetZoneByProviderID(ctx context.Context, providerID string) (cloudprovider.Zone, error)
GetZoneByProviderID returns the Zone, found by using the provider ID.
func (*CSCloud) HasClusterID ¶ added in v1.8.0
HasClusterID returns true if the cluster has a clusterID
func (*CSCloud) Initialize ¶ added in v1.7.0
func (cs *CSCloud) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{})
Initialize passes a Kubernetes clientBuilder interface to the cloud provider
func (*CSCloud) InstanceExistsByProviderID ¶ added in v1.8.0
InstanceExistsByProviderID returns if the instance still exists.
func (*CSCloud) InstanceID ¶ added in v1.8.0
InstanceID returns the cloud provider ID of the specified instance.
func (*CSCloud) InstanceShutdownByProviderID ¶ added in v1.11.0
func (cs *CSCloud) InstanceShutdownByProviderID(ctx context.Context, providerID string) (bool, error)
InstanceShutdownByProviderID returns true if the instance is in safe state to detach volumes
func (*CSCloud) InstanceType ¶ added in v1.8.0
InstanceType returns the type of the specified instance.
func (*CSCloud) InstanceTypeByProviderID ¶ added in v1.8.0
InstanceTypeByProviderID returns the type of the specified instance.
func (*CSCloud) Instances ¶
func (cs *CSCloud) Instances() (cloudprovider.Instances, bool)
Instances returns an implementation of Instances for CloudStack.
func (*CSCloud) LoadBalancer ¶
func (cs *CSCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool)
LoadBalancer returns an implementation of LoadBalancer for CloudStack.
func (*CSCloud) NodeAddresses ¶ added in v1.8.0
func (cs *CSCloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error)
NodeAddresses returns the addresses of the specified instance.
func (*CSCloud) NodeAddressesByProviderID ¶ added in v1.8.0
func (cs *CSCloud) NodeAddressesByProviderID(ctx context.Context, providerID string) ([]v1.NodeAddress, error)
NodeAddressesByProviderID returns the addresses of the specified instance.
func (*CSCloud) ProviderName ¶
ProviderName returns the cloud provider ID.
func (*CSCloud) Routes ¶
func (cs *CSCloud) Routes() (cloudprovider.Routes, bool)
Routes returns an implementation of Routes for CloudStack.
type CSConfig ¶
type CSConfig struct { Global struct { APIURL string `gcfg:"api-url"` APIKey string `gcfg:"api-key"` SecretKey string `gcfg:"secret-key"` SSLNoVerify bool `gcfg:"ssl-no-verify"` ProjectID string `gcfg:"project-id"` Zone string `gcfg:"zone"` } }
CSConfig wraps the config for the CloudStack cloud provider.