openstack

package
v0.0.0-...-4f3658d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2020 License: Apache-2.0 Imports: 53 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MiB = 1024 * 1024
	GB  = 1000 * 1000 * 1000
)
View Source
const ProviderName = "openstack"

Variables

View Source
var ErrBadMetadata = errors.New("Invalid OpenStack metadata, got empty uuid")
View Source
var ErrMultipleResults = errors.New("Multiple results where only one expected")
View Source
var ErrNoAddressFound = errors.New("No address found for host")
View Source
var ErrNoRouterId = errors.New("router-id not set in cloud provider config")
View Source
var ErrNotFound = errors.New("Failed to find object")

Functions

Types

type APIVersionsByID

type APIVersionsByID []apiversions_v1.APIVersion

Implementation of sort interface for blockstorage version probing

func (APIVersionsByID) Len

func (apiVersions APIVersionsByID) Len() int

func (APIVersionsByID) Less

func (apiVersions APIVersionsByID) Less(i, j int) bool

func (APIVersionsByID) Swap

func (apiVersions APIVersionsByID) Swap(i, j int)

type BlockStorageOpts

type BlockStorageOpts struct {
	BSVersion       string `gcfg:"bs-version"`        // overrides autodetection. v1 or v2. Defaults to auto
	TrustDevicePath bool   `gcfg:"trust-device-path"` // See Issue #33128
}

type Caller

type Caller bool

Tiny helper for conditional unwind logic

func NewCaller

func NewCaller() Caller

func (*Caller) Call

func (c *Caller) Call(f func())

func (*Caller) Disarm

func (c *Caller) Disarm()

type Config

type Config struct {
	Global struct {
		AuthUrl    string `gcfg:"auth-url"`
		Username   string
		UserId     string `gcfg:"user-id"`
		Password   string
		TenantId   string `gcfg:"tenant-id"`
		TenantName string `gcfg:"tenant-name"`
		TrustId    string `gcfg:"trust-id"`
		DomainId   string `gcfg:"domain-id"`
		DomainName string `gcfg:"domain-name"`
		Region     string
		CAFile     string `gcfg:"ca-file"`
	}
	LoadBalancer LoadBalancerOpts
	BlockStorage BlockStorageOpts
	Route        RouterOpts
}

type Instances

type Instances struct {
	// contains filtered or unexported fields
}

func (*Instances) AddSSHKeyToAllInstances

func (i *Instances) AddSSHKeyToAllInstances(user string, keyData []byte) error

func (*Instances) CurrentNodeName

func (i *Instances) CurrentNodeName(hostname string) (types.NodeName, error)

Implementation of Instances.CurrentNodeName Note this is *not* necessarily the same as hostname.

func (*Instances) ExternalID

func (i *Instances) ExternalID(name types.NodeName) (string, error)

ExternalID returns the cloud provider ID of the specified instance (deprecated).

func (*Instances) InstanceID

func (i *Instances) InstanceID(name types.NodeName) (string, error)

InstanceID returns the cloud provider ID of the specified instance.

func (*Instances) InstanceType

func (i *Instances) InstanceType(name types.NodeName) (string, error)

InstanceType returns the type of the specified instance.

func (*Instances) List

func (i *Instances) List(name_filter string) ([]types.NodeName, error)

func (*Instances) NodeAddresses

func (i *Instances) NodeAddresses(name types.NodeName) ([]v1.NodeAddress, error)

type LbaasV1

type LbaasV1 struct {
	LoadBalancer
}

LoadBalancer implementation for LBaaS v1

func (*LbaasV1) EnsureLoadBalancer

func (lb *LbaasV1) EnsureLoadBalancer(clusterName string, apiService *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)

func (*LbaasV1) EnsureLoadBalancerDeleted

func (lb *LbaasV1) EnsureLoadBalancerDeleted(clusterName string, service *v1.Service) error

func (*LbaasV1) GetLoadBalancer

func (lb *LbaasV1) GetLoadBalancer(clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)

func (*LbaasV1) UpdateLoadBalancer

func (lb *LbaasV1) UpdateLoadBalancer(clusterName string, service *v1.Service, nodes []*v1.Node) error

type LbaasV2

type LbaasV2 struct {
	LoadBalancer
}

LoadBalancer implementation for LBaaS v2

func (*LbaasV2) EnsureLoadBalancer

func (lbaas *LbaasV2) EnsureLoadBalancer(clusterName string, apiService *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)

func (*LbaasV2) EnsureLoadBalancerDeleted

func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1.Service) error

func (*LbaasV2) GetLoadBalancer

func (lbaas *LbaasV2) GetLoadBalancer(clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)

func (*LbaasV2) UpdateLoadBalancer

func (lbaas *LbaasV2) UpdateLoadBalancer(clusterName string, service *v1.Service, nodes []*v1.Node) error

type LoadBalancer

type LoadBalancer struct {
	// contains filtered or unexported fields
}

type LoadBalancerOpts

type LoadBalancerOpts struct {
	LBVersion            string     `gcfg:"lb-version"` // overrides autodetection. v1 or v2
	SubnetId             string     `gcfg:"subnet-id"`  // required
	FloatingNetworkId    string     `gcfg:"floating-network-id"`
	LBMethod             string     `gcfg:"lb-method"`
	CreateMonitor        bool       `gcfg:"create-monitor"`
	MonitorDelay         MyDuration `gcfg:"monitor-delay"`
	MonitorTimeout       MyDuration `gcfg:"monitor-timeout"`
	MonitorMaxRetries    uint       `gcfg:"monitor-max-retries"`
	ManageSecurityGroups bool       `gcfg:"manage-security-groups"`
	NodeSecurityGroupID  string     `gcfg:"node-security-group"`
}

type Metadata

type Metadata struct {
	Uuid             string `json:"uuid"`
	Name             string `json:"name"`
	AvailabilityZone string `json:"availability_zone"`
}

Assumes the "2012-08-10" meta_data.json format. See http://docs.openstack.org/user-guide/cli_config_drive.html

type MyDuration

type MyDuration struct {
	time.Duration
}

encoding.TextUnmarshaler interface for time.Duration

func (*MyDuration) UnmarshalText

func (d *MyDuration) UnmarshalText(text []byte) error

type OpenStack

type OpenStack struct {
	// contains filtered or unexported fields
}

OpenStack is an implementation of cloud provider Interface for OpenStack.

func (*OpenStack) AttachDisk

func (os *OpenStack) AttachDisk(instanceID string, diskName string) (string, error)

Attaches given cinder volume to the compute running kubelet

func (*OpenStack) Clusters

func (os *OpenStack) Clusters() (cloudprovider.Clusters, bool)

func (*OpenStack) CreateVolume

func (os *OpenStack) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (volumeName string, err error)

Create a volume of given size (in GiB)

func (*OpenStack) DeleteVolume

func (os *OpenStack) DeleteVolume(volumeName string) error

func (*OpenStack) DetachDisk

func (os *OpenStack) DetachDisk(instanceID string, partialDiskId string) error

Detaches given cinder volume from the compute running kubelet

func (*OpenStack) DiskIsAttached

func (os *OpenStack) DiskIsAttached(diskName, instanceID string) (bool, error)

query if a volume is attached to a compute instance

func (*OpenStack) DisksAreAttached

func (os *OpenStack) DisksAreAttached(diskNames []string, instanceID string) (map[string]bool, error)

query if a list of volumes are attached to a compute instance

func (*OpenStack) GetAttachmentDiskPath

func (os *OpenStack) GetAttachmentDiskPath(instanceID string, diskName string) (string, error)

Get device path of attached volume to the compute running kubelet, as known by cinder

func (*OpenStack) GetDevicePath

func (os *OpenStack) GetDevicePath(diskId string) string

GetDevicePath returns the path of an attached block storage volume, specified by its id.

func (*OpenStack) GetZone

func (os *OpenStack) GetZone() (cloudprovider.Zone, error)

func (*OpenStack) InstanceID

func (os *OpenStack) InstanceID() (string, error)

InstanceID returns the kubelet's cloud provider ID.

func (*OpenStack) Instances

func (os *OpenStack) Instances() (cloudprovider.Instances, bool)

Instances returns an implementation of Instances for OpenStack.

func (*OpenStack) LoadBalancer

func (os *OpenStack) LoadBalancer() (cloudprovider.LoadBalancer, bool)

func (*OpenStack) ProviderName

func (os *OpenStack) ProviderName() string

ProviderName returns the cloud provider ID.

func (*OpenStack) Routes

func (os *OpenStack) Routes() (cloudprovider.Routes, bool)

func (*OpenStack) ScrubDNS

func (os *OpenStack) ScrubDNS(nameServers, searches []string) ([]string, []string)

ScrubDNS filters DNS settings for pods.

func (*OpenStack) ShouldTrustDevicePath

func (os *OpenStack) ShouldTrustDevicePath() bool

query if we should trust the cinder provide deviceName, See issue #33128

func (*OpenStack) Zones

func (os *OpenStack) Zones() (cloudprovider.Zones, bool)

type RouterOpts

type RouterOpts struct {
	RouterId string `gcfg:"router-id"` // required
}

type Routes

type Routes struct {
	// contains filtered or unexported fields
}

func (*Routes) CreateRoute

func (r *Routes) CreateRoute(clusterName string, nameHint string, route *cloudprovider.Route) error

func (*Routes) DeleteRoute

func (r *Routes) DeleteRoute(clusterName string, route *cloudprovider.Route) error

func (*Routes) ListRoutes

func (r *Routes) ListRoutes(clusterName string) ([]*cloudprovider.Route, error)

type Volume

type Volume struct {
	// ID of the instance, to which this volume is attached. "" if not attached
	AttachedServerId string
	// Device file path
	AttachedDevice string
	// Unique identifier for the volume.
	ID string
	// Human-readable display name for the volume.
	Name string
	// Current status of the volume.
	Status string
}

type VolumeCreateOpts

type VolumeCreateOpts struct {
	Size         int
	Availability string
	Name         string
	VolumeType   string
	Metadata     map[string]string
}

type VolumesV1

type VolumesV1 struct {
	// contains filtered or unexported fields
}

Volumes implementation for v1

type VolumesV2

type VolumesV2 struct {
	// contains filtered or unexported fields
}

Volumes implementation for v2

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL