Documentation ¶
Index ¶
- func DeleteInstance(cloud Cloud, instance *cloudinstances.CloudInstance) error
- func DeleteInstanceGroup(cloud Cloud, group *cloudinstances.CloudInstanceGroup) error
- func DetachInstance(cloud Cloud, instance *cloudinstances.CloudInstance) error
- func GetCloudGroups(cloud Cloud, cluster *kops.Cluster, instanceGroups []*kops.InstanceGroup, ...) (map[string]*cloudinstances.CloudInstanceGroup, error)
- func ListElastigroupResources(cloud Cloud, clusterName string) ([]*resources.Resource, error)
- func ListOceanResources(cloud Cloud, clusterName string) ([]*resources.Resource, error)
- func ListResources(cloud Cloud, clusterName string) ([]*resources.Resource, error)
- func LoadCredentials() (credentials.Value, error)
- func NewConfig() *spotinst.Config
- func NewCredentials() *credentials.Credentials
- func NewStdLogger() log.Logger
- type Cloud
- type Instance
- type InstanceGroup
- func NewElastigroup(cloudProviderID kops.CloudProviderID, obj interface{}) (InstanceGroup, error)
- func NewInstanceGroup(cloudProviderID kops.CloudProviderID, instanceGroupType InstanceGroupType, ...) (InstanceGroup, error)
- func NewOcean(cloudProviderID kops.CloudProviderID, obj interface{}) (InstanceGroup, error)
- type InstanceGroupService
- type InstanceGroupType
- type LaunchSpec
- type LaunchSpecService
- type ResourceType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteInstance ¶
func DeleteInstance(cloud Cloud, instance *cloudinstances.CloudInstance) error
DeleteInstance removes an instance from its instance group.
func DeleteInstanceGroup ¶ added in v1.15.1
func DeleteInstanceGroup(cloud Cloud, group *cloudinstances.CloudInstanceGroup) error
DeleteInstanceGroup deletes an existing InstanceGroup.
func DetachInstance ¶ added in v1.18.0
func DetachInstance(cloud Cloud, instance *cloudinstances.CloudInstance) error
DetachInstance is not implemented yet. It needs to cause a cloud instance to no longer be counted against the group's size limits.
func GetCloudGroups ¶
func GetCloudGroups(cloud Cloud, cluster *kops.Cluster, instanceGroups []*kops.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*cloudinstances.CloudInstanceGroup, error, )
GetCloudGroups returns a list of InstanceGroups as CloudInstanceGroup objects.
func ListElastigroupResources ¶ added in v1.15.1
ListElastigroupResources returns a list of all Elastigroup resources.
func ListOceanResources ¶ added in v1.15.1
ListOceanResources returns a list of all Ocean resources.
func ListResources ¶ added in v1.15.1
ListResources returns a list of all resources.
func LoadCredentials ¶
func LoadCredentials() (credentials.Value, error)
LoadCredentials attempts to load credentials using the default chain.
func NewCredentials ¶
func NewCredentials() *credentials.Credentials
NewCredentials returns a new chain-credentials object.
Types ¶
type Cloud ¶ added in v1.15.1
type Cloud interface { // Elastigroups returns a new Elastigroup service. Elastigroup() InstanceGroupService // Ocean returns a new Ocean service. Ocean() InstanceGroupService // LaunchSpec returns a new LaunchSpec service. LaunchSpec() LaunchSpecService }
Cloud wraps all services provided by Spotinst.
type Instance ¶
type Instance interface { // Id returns the ID of the instance. Id() string // CreatedAt returns the timestamp when the Instance has been created. CreatedAt() time.Time // Obj returns the raw object which is a cloud-specific implementation. Obj() interface{} }
Instance wraps a cloud-specific instance object.
type InstanceGroup ¶ added in v1.15.1
type InstanceGroup interface { // Id returns the ID of the InstanceGroup. Id() string // Type returns the type of the InstanceGroup. Type() InstanceGroupType // Name returns the name of the InstanceGroup. Name() string // MinSize returns the minimum size of the InstanceGroup. MinSize() int // MaxSize returns the maximum size of the InstanceGroup. MaxSize() int // CreatedAt returns the timestamp when the InstanceGroup has been created. CreatedAt() time.Time // UpdatedAt returns the timestamp when the InstanceGroup has been updated. UpdatedAt() time.Time // Obj returns the raw object which is a cloud-specific implementation. Obj() interface{} }
InstanceGroup wraps a cloud-specific instance group object.
func NewElastigroup ¶
func NewElastigroup(cloudProviderID kops.CloudProviderID, obj interface{}) (InstanceGroup, error, )
NewElastigroup returns an Elastigroup wrapper for the specified cloud provider.
func NewInstanceGroup ¶ added in v1.15.1
func NewInstanceGroup(cloudProviderID kops.CloudProviderID, instanceGroupType InstanceGroupType, obj interface{}) (InstanceGroup, error, )
NewInstanceGroup returns an InstanceGroup wrapper for the specified cloud provider.
func NewOcean ¶ added in v1.15.1
func NewOcean(cloudProviderID kops.CloudProviderID, obj interface{}) (InstanceGroup, error, )
NewOcean returns an Ocean wrapper for the specified cloud provider.
type InstanceGroupService ¶ added in v1.15.1
type InstanceGroupService interface { // List returns a list of InstanceGroups. List(ctx context.Context) ([]InstanceGroup, error) // Create creates a new InstanceGroup and returns its ID. Create(ctx context.Context, group InstanceGroup) (string, error) // Read returns an existing InstanceGroup by ID. Read(ctx context.Context, groupID string) (InstanceGroup, error) // Update updates an existing InstanceGroup. Update(ctx context.Context, group InstanceGroup) error // Delete deletes an existing InstanceGroup by ID. Delete(ctx context.Context, groupID string) error // Detach removes one or more instances from the specified InstanceGroup. Detach(ctx context.Context, groupID string, instanceIDs []string) error // Instances returns a list of all instances that belong to specified InstanceGroup. Instances(ctx context.Context, groupID string) ([]Instance, error) }
InstanceGroupService wraps all common functionality for InstanceGroups.
type InstanceGroupType ¶ added in v1.15.1
type InstanceGroupType string
const ( InstanceGroupElastigroup InstanceGroupType = "elastigroup" InstanceGroupOcean InstanceGroupType = "ocean" )
type LaunchSpec ¶ added in v1.15.1
type LaunchSpec interface { // Id returns the ID of the LaunchSpec. Id() string // Name returns the name of the LaunchSpec. Name() string // OceanId returns the ID of the Ocean instance group. OceanId() string // CreatedAt returns the timestamp when the LaunchSpec has been created. CreatedAt() time.Time // UpdatedAt returns the timestamp when the LaunchSpec has been updated. UpdatedAt() time.Time // Obj returns the raw object which is a cloud-specific implementation. Obj() interface{} }
LaunchSpec wraps a cloud-specific launch specification object.
func NewLaunchSpec ¶ added in v1.15.1
func NewLaunchSpec(cloudProviderID kops.CloudProviderID, obj interface{}) (LaunchSpec, error)
NewLaunchSpec returns a LaunchSpec wrapper for the specified cloud provider.
type LaunchSpecService ¶ added in v1.15.1
type LaunchSpecService interface { // List returns a list of LaunchSpecs. List(ctx context.Context, oceanID string) ([]LaunchSpec, error) // Create creates a new LaunchSpec and returns its ID. Create(ctx context.Context, spec LaunchSpec) (string, error) // Read returns an existing LaunchSpec by ID. Read(ctx context.Context, specID string) (LaunchSpec, error) // Update updates an existing LaunchSpec. Update(ctx context.Context, spec LaunchSpec) error // Delete deletes an existing LaunchSpec by ID. Delete(ctx context.Context, specID string) error }
LaunchSpecService wraps all common functionality for LaunchSpecs.
type ResourceType ¶ added in v1.15.1
type ResourceType string
const ( ResourceTypeInstanceGroup ResourceType = "instancegroup" ResourceTypeLaunchSpec ResourceType = "launchspec" )