Documentation
¶
Index ¶
Constants ¶
View Source
const (
TagNameEtcdClusterPrefix = "k8s.io/etcd/"
TagNameRolePrefix = "k8s.io/role/"
TagClusterName = "KubernetesCluster"
TagRoleMaster = "master"
TagKopsNetwork = "KopsNetwork"
ResourceTypePort = "ports"
ResourceTypeNetwork = "networks"
ResourceTypeSubnet = "subnets"
)
View Source
const (
INSTANCE_GROUP_GENERATION = "ig_generation"
CLUSTER_GENERATION = "cluster_generation"
OS_ANNOTATION = "openstack.kops.io/"
BOOT_FROM_VOLUME = "osVolumeBoot"
BOOT_VOLUME_SIZE = "osVolumeSize"
)
Variables ¶
View Source
var ErrNotFound = "Resource not found"
ErrNotFound is used to inform that the object is not found
Functions ¶
func GetServerFixedIP ¶ added in v1.15.1
func GetServerFixedIP(server *servers.Server, interfaceName string) (poolAddress string, err error)
Types ¶
type Address ¶ added in v1.15.1
type Address struct {
IPType string `mapstructure:"OS-EXT-IPS:type"`
Addr string
}
type OpenstackAPITarget ¶
type OpenstackAPITarget struct {
Cloud OpenstackCloud
}
func NewOpenstackAPITarget ¶
func NewOpenstackAPITarget(cloud OpenstackCloud) *OpenstackAPITarget
func (*OpenstackAPITarget) Finish ¶
func (t *OpenstackAPITarget) Finish(taskMap map[string]fi.Task) error
func (*OpenstackAPITarget) ProcessDeletions ¶
func (t *OpenstackAPITarget) ProcessDeletions() bool
type OpenstackCloud ¶
type OpenstackCloud interface {
fi.Cloud
ComputeClient() *gophercloud.ServiceClient
BlockStorageClient() *gophercloud.ServiceClient
NetworkingClient() *gophercloud.ServiceClient
LoadBalancerClient() *gophercloud.ServiceClient
DNSClient() *gophercloud.ServiceClient
UseOctavia() bool
UseZones([]string)
// GetInstance will return a openstack server provided its ID
GetInstance(id string) (*servers.Server, error)
// ListInstances will return a slice of openstack servers provided list opts
ListInstances(servers.ListOptsBuilder) ([]servers.Server, error)
// CreateInstance will create an openstack server provided create opts
CreateInstance(servers.CreateOptsBuilder) (*servers.Server, error)
//DeleteInstanceWithID will delete instance
DeleteInstanceWithID(instanceID string) error
// SetVolumeTags will set the tags for the Cinder volume
SetVolumeTags(id string, tags map[string]string) error
// GetCloudTags will return the tags attached on cloud
GetCloudTags() map[string]string
// ListVolumes will return the Cinder volumes which match the options
ListVolumes(opt cinder.ListOptsBuilder) ([]cinder.Volume, error)
// CreateVolume will create a new Cinder Volume
CreateVolume(opt cinder.CreateOptsBuilder) (*cinder.Volume, error)
AttachVolume(serverID string, opt volumeattach.CreateOpts) (*volumeattach.VolumeAttachment, error)
//DeleteVolume will delete volume
DeleteVolume(volumeID string) error
//ListSecurityGroups will return the Neutron security groups which match the options
ListSecurityGroups(opt sg.ListOpts) ([]sg.SecGroup, error)
//CreateSecurityGroup will create a new Neutron security group
CreateSecurityGroup(opt sg.CreateOptsBuilder) (*sg.SecGroup, error)
//DeleteSecurityGroup will delete securitygroup
DeleteSecurityGroup(sgID string) error
//DeleteSecurityGroupRule will delete securitygrouprule
DeleteSecurityGroupRule(ruleID string) error
//ListSecurityGroupRules will return the Neutron security group rules which match the options
ListSecurityGroupRules(opt sgr.ListOpts) ([]sgr.SecGroupRule, error)
//CreateSecurityGroupRule will create a new Neutron security group rule
CreateSecurityGroupRule(opt sgr.CreateOptsBuilder) (*sgr.SecGroupRule, error)
//GetNetwork will return the Neutron network which match the id
GetNetwork(networkID string) (*networks.Network, error)
//FindNetworkBySubnetID will return network
FindNetworkBySubnetID(subnetID string) (*networks.Network, error)
//GetSubnet returns subnet using subnet id
GetSubnet(subnetID string) (*subnets.Subnet, error)
//ListNetworks will return the Neutron networks which match the options
ListNetworks(opt networks.ListOptsBuilder) ([]networks.Network, error)
//ListExternalNetworks will return the Neutron networks with the router:external property
GetExternalNetwork() (*networks.Network, error)
// GetExternalSubnet will return the subnet for floatingip which is used in external router
GetExternalSubnet() (*subnets.Subnet, error)
// GetLBFloatingSubnet will return the subnet for floatingip which is used in lb
GetLBFloatingSubnet() (*subnets.Subnet, error)
//CreateNetwork will create a new Neutron network
CreateNetwork(opt networks.CreateOptsBuilder) (*networks.Network, error)
//DeleteNetwork will delete neutron network
DeleteNetwork(networkID string) error
//AppendTag appends tag to resource
AppendTag(resource string, id string, tag string) error
//DeleteTag removes tag from resource
DeleteTag(resource string, id string, tag string) error
//ListRouters will return the Neutron routers which match the options
ListRouters(opt routers.ListOpts) ([]routers.Router, error)
//CreateRouter will create a new Neutron router
CreateRouter(opt routers.CreateOptsBuilder) (*routers.Router, error)
//DeleteRouter will delete neutron router
DeleteRouter(routerID string) error
//DeleteSubnet will delete neutron subnet
DeleteSubnet(subnetID string) error
//ListSubnets will return the Neutron subnets which match the options
ListSubnets(opt subnets.ListOptsBuilder) ([]subnets.Subnet, error)
//CreateSubnet will create a new Neutron subnet
CreateSubnet(opt subnets.CreateOptsBuilder) (*subnets.Subnet, error)
// GetKeypair will return the Nova keypair
GetKeypair(name string) (*keypairs.KeyPair, error)
// ListKeypairs will return the all Nova keypairs
ListKeypairs() ([]keypairs.KeyPair, error)
// DeleteKeyPair will delete a Nova keypair
DeleteKeyPair(name string) error
// CreateKeypair will create a new Nova Keypair
CreateKeypair(opt keypairs.CreateOptsBuilder) (*keypairs.KeyPair, error)
CreatePort(opt ports.CreateOptsBuilder) (*ports.Port, error)
//GetPort will return a Neutron port by ID
GetPort(id string) (*ports.Port, error)
//ListPorts will return the Neutron ports which match the options
ListPorts(opt ports.ListOptsBuilder) ([]ports.Port, error)
// DeletePort will delete a neutron port
DeletePort(portID string) error
//CreateRouterInterface will create a new Neutron router interface
CreateRouterInterface(routerID string, opt routers.AddInterfaceOptsBuilder) (*routers.InterfaceInfo, error)
//DeleteRouterInterface will delete router interface from subnet
DeleteRouterInterface(routerID string, opt routers.RemoveInterfaceOptsBuilder) error
// CreateServerGroup will create a new server group.
CreateServerGroup(opt servergroups.CreateOptsBuilder) (*servergroups.ServerGroup, error)
// ListServerGroups will list available server groups
ListServerGroups() ([]servergroups.ServerGroup, error)
// DeleteServerGroup will delete a nova server group
DeleteServerGroup(groupID string) error
// ListDNSZones will list available DNS zones
ListDNSZones(opt zones.ListOptsBuilder) ([]zones.Zone, error)
// ListDNSRecordsets will list the DNS recordsets for the given zone id
ListDNSRecordsets(zoneID string, opt recordsets.ListOptsBuilder) ([]recordsets.RecordSet, error)
GetLB(loadbalancerID string) (*loadbalancers.LoadBalancer, error)
CreateLB(opt loadbalancers.CreateOptsBuilder) (*loadbalancers.LoadBalancer, error)
ListLBs(opt loadbalancers.ListOptsBuilder) ([]loadbalancers.LoadBalancer, error)
// DeleteLB will delete loadbalancer
DeleteLB(lbID string, opt loadbalancers.DeleteOpts) error
GetApiIngressStatus(cluster *kops.Cluster) ([]kops.ApiIngressStatus, error)
FindClusterStatus(cluster *kops.Cluster) (*kops.ClusterStatus, error)
// DefaultInstanceType determines a suitable instance type for the specified instance group
DefaultInstanceType(cluster *kops.Cluster, ig *kops.InstanceGroup) (string, error)
// Returns the availability zones for the service client passed (compute, volume, network)
ListAvailabilityZones(serviceClient *gophercloud.ServiceClient) ([]az.AvailabilityZone, error)
AssociateToPool(server *servers.Server, poolID string, opts v2pools.CreateMemberOpts) (*v2pools.Member, error)
CreatePool(opts v2pools.CreateOpts) (*v2pools.Pool, error)
GetPool(poolID string, memberID string) (*v2pools.Member, error)
ListPools(v2pools.ListOpts) ([]v2pools.Pool, error)
// ListMonitors will list HealthMonitors matching the provided options
ListMonitors(monitors.ListOpts) ([]monitors.Monitor, error)
// DeleteMonitor will delete a Pool resources Health Monitor
DeleteMonitor(monitorID string) error
// DeletePool will delete loadbalancer pool
DeletePool(poolID string) error
ListListeners(opts listeners.ListOpts) ([]listeners.Listener, error)
CreateListener(opts listeners.CreateOpts) (*listeners.Listener, error)
// DeleteListener will delete loadbalancer listener
DeleteListener(listenerID string) error
GetStorageAZFromCompute(azName string) (*az.AvailabilityZone, error)
GetFloatingIP(id string) (fip *floatingips.FloatingIP, err error)
GetImage(name string) (i *images.Image, err error)
AssociateFloatingIPToInstance(serverID string, opts floatingips.AssociateOpts) (err error)
ListServerFloatingIPs(id string) ([]*string, error)
ListFloatingIPs() (fips []floatingips.FloatingIP, err error)
ListL3FloatingIPs(opts l3floatingip.ListOpts) (fips []l3floatingip.FloatingIP, err error)
CreateFloatingIP(opts floatingips.CreateOpts) (*floatingips.FloatingIP, error)
CreateL3FloatingIP(opts l3floatingip.CreateOpts) (fip *l3floatingip.FloatingIP, err error)
DeleteFloatingIP(id string) error
DeleteL3FloatingIP(id string) error
}
func NewOpenstackCloud ¶
func NewOpenstackCloud(tags map[string]string, spec *kops.ClusterSpec) (OpenstackCloud, error)
Click to show internal directories.
Click to hide internal directories.