vpcctl

package
v0.0.0-...-aa3c92c Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// VpcProviderTypeFake - Fake SDK interface for VPC
	VpcProviderTypeFake = "fake"
	// VpcProviderTypeGen2 - IKS provider type for VPC Gen2
	VpcProviderTypeGen2 = "g2"
)
View Source
const (
	LoadBalancerOperatingStatusOffline = "offline"
	LoadBalancerOperatingStatusOnline  = "online"
)

Constants associated with the LoadBalancer*.OperatingStatus property. The operating status of this load balancer.

View Source
const (
	LoadBalancerProvisioningStatusActive             = "active"
	LoadBalancerProvisioningStatusCreatePending      = "create_pending"
	LoadBalancerProvisioningStatusDeletePending      = "delete_pending"
	LoadBalancerProvisioningStatusFailed             = "failed"
	LoadBalancerProvisioningStatusMaintenancePending = "maintenance_pending"
	LoadBalancerProvisioningStatusUpdatePending      = "update_pending"
)

Constants associated with the LoadBalancer*.ProvisioningStatus property. The provisioning status of this load balancer.

View Source
const (
	LoadBalancerProtocolHTTP  = "http"
	LoadBalancerProtocolHTTPS = "https"
	LoadBalancerProtocolTCP   = "tcp"
)

Constants associated with the LoadBalancer*.Protocol property. The listener protocol.

View Source
const (
	LoadBalancerAlgorithmLeastConnections   = "least_connections"
	LoadBalancerAlgorithmRoundRobin         = "round_robin"
	LoadBalancerAlgorithmWeightedRoundRobin = "weighted_round_robin"
)

Constants associated with the LoadBalancerPool.Algorithm property. The load balancing algorithm.

View Source
const (
	LoadBalancerProxyProtocolDisabled = "disabled"
	LoadBalancerProxyProtocolV1       = "v1"
	LoadBalancerProxyProtocolV2       = "v2"
)

Constants associated with the LoadBalancerPool.ProxyProtocol property. The PROXY protocol setting for this pool: - `v1`: Enabled with version 1 (human-readable header format) - `v2`: Enabled with version 2 (binary header format) - `disabled`: Disabled

Supported by load balancers in the `application` family (otherwise always `disabled`).

View Source
const (
	LoadBalancerOptionProxyProtocol = "proxy-protocol"
)

Constants that can control the behavior of the VPC LoadBalancer

View Source
const (
	LoadBalancerSessionPersistenceSourceIP = "source_ip"
)

Constants associated with the LoadBalancerPoolSessionPersistence.Type property. The session persistence type.

Variables

View Source
var NewVpcSdkProvider = NewVpcSdkGen2

NewVpcSdkProvider - name of SDK interface

View Source
var (

	// VpcLbNamePrefix - Prefix to be used for VPC load balancer
	VpcLbNamePrefix = "kube"
)

Global variables

Functions

func GenerateLoadBalancerName

func GenerateLoadBalancerName(service *v1.Service, clusterID string) string

GenerateLoadBalancerName - generate the VPC load balancer name from the cluster ID and Kube service

func ResetCloudVpc

func ResetCloudVpc()

ResetCloudVpc - Resetthe global VPC cloud object

func SafePointerBool

func SafePointerBool(ptr *bool) bool

SafePointerBool - safely de-ref pointer to an bool

func SafePointerDate

func SafePointerDate(ptr *strfmt.DateTime) string

SafePointerDate - safely de-ref pointer to an date object

func SafePointerInt64

func SafePointerInt64(ptr *int64) int64

SafePointerInt64 - safely de-ref pointer to an int64

func SafePointerString

func SafePointerString(ptr *string) string

SafePointerString - safely de-ref pointer to an string

func SetCloudVpc

func SetCloudVpc(vpc *CloudVpc)

SetCloudVpc - Set the global VPC cloud object. Specify nil to clear value

func SetInformers

func SetInformers(informerFactory informers.SharedInformerFactory)

SetInformers - Configure watch/informers

Types

type CloudVpc

type CloudVpc struct {
	KubeClient kubernetes.Interface
	Config     *ConfigVpc
	Sdk        CloudVpcSdk
	Recorder   record.EventRecorder
}

CloudVpc is the main VPC cloud provider implementation.

func GetCloudVpc

func GetCloudVpc() *CloudVpc

GetCloudVpc - Retrieve the global VPC cloud object. Return nil if not initialized.

func NewCloudVpc

func NewCloudVpc(kubeClient kubernetes.Interface, config *ConfigVpc, recorder record.EventRecorder) (*CloudVpc, error)

func (*CloudVpc) ClearFakeSdkError

func (c *CloudVpc) ClearFakeSdkError(methodName string)

ClearFakeSdkError - Clear the error string for the specific SDK mock method

func (*CloudVpc) CreateLoadBalancer

func (c *CloudVpc) CreateLoadBalancer(lbName string, service *v1.Service, nodes []*v1.Node) (*VpcLoadBalancer, error)

CreateLoadBalancer - create a VPC load balancer

func (*CloudVpc) DeleteLoadBalancer

func (c *CloudVpc) DeleteLoadBalancer(lb *VpcLoadBalancer, service *v1.Service) error

DeleteLoadBalancer - delete a VPC load balancer

func (*CloudVpc) EnsureLoadBalancer

func (c *CloudVpc) EnsureLoadBalancer(lbName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error)

EnsureLoadBalancer - called by cloud provider to create/update the load balancer

func (*CloudVpc) EnsureLoadBalancerDeleted

func (c *CloudVpc) EnsureLoadBalancerDeleted(lbName string, service *v1.Service) error

EnsureLoadBalancerDeleted - called by cloud provider to delete the load balancer

func (*CloudVpc) EnsureLoadBalancerUpdated

func (c *CloudVpc) EnsureLoadBalancerUpdated(lbName string, service *v1.Service, nodes []*v1.Node) error

EnsureLoadBalancerUpdated - updates the hosts under the specified load balancer

func (*CloudVpc) FindLoadBalancer

func (c *CloudVpc) FindLoadBalancer(nameID string, service *v1.Service) (*VpcLoadBalancer, error)

FindLoadBalancer - locate a VPC load balancer based on the Name, ID, or hostname

func (*CloudVpc) GatherLoadBalancers

func (c *CloudVpc) GatherLoadBalancers(services *v1.ServiceList) (map[string]*v1.Service, map[string]*VpcLoadBalancer, error)

GatherLoadBalancers - returns status of all VPC load balancers associated with Kube LBs in this cluster

func (*CloudVpc) GenerateLoadBalancerName

func (c *CloudVpc) GenerateLoadBalancerName(service *v1.Service) string

GenerateLoadBalancerName - generate the VPC load balancer name from the cluster ID and Kube service

func (*CloudVpc) GetLoadBalancer

func (c *CloudVpc) GetLoadBalancer(lbName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error)

GetLoadBalancer - called by cloud provider to retrieve status of the load balancer

func (*CloudVpc) GetLoadBalancerStatus

func (c *CloudVpc) GetLoadBalancerStatus(service *v1.Service, lb *VpcLoadBalancer) *v1.LoadBalancerStatus

GetLoadBalancerStatus returns the load balancer status for a given VPC host name

func (*CloudVpc) MonitorLoadBalancers

func (c *CloudVpc) MonitorLoadBalancers(services *v1.ServiceList, status map[string]string)

MonitorLoadBalancers - accepts a list of services (of all types), verifies that each Kubernetes load balancer service has a corresponding VPC load balancer object, and creates Kubernetes events based on the load balancer's status. `status` is a map from a load balancer's unique Service ID to its status. This persists load balancer status between consecutive monitor calls.

func (*CloudVpc) SetFakeSdkError

func (c *CloudVpc) SetFakeSdkError(methodName string)

SetFakeSdkError - Set an error string to be returned for the specific SDK mock method

func (*CloudVpc) UpdateLoadBalancer

func (c *CloudVpc) UpdateLoadBalancer(lb *VpcLoadBalancer, service *v1.Service, nodes []*v1.Node) (*VpcLoadBalancer, error)

UpdateLoadBalancer - update a VPC load balancer

func (*CloudVpc) WaitLoadBalancerReady

func (c *CloudVpc) WaitLoadBalancerReady(lb *VpcLoadBalancer, minSleep, maxWait int) (*VpcLoadBalancer, error)

WaitLoadBalancerReady will call the Get() operation on the load balancer every minSleep seconds until the state of the load balancer goes to Online/Active -OR- until the maxWait timeout occurs

type CloudVpcSdk

type CloudVpcSdk interface {
	CreateLoadBalancer(lbName string, nodeList, poolList, subnetList []string, options *ServiceOptions) (*VpcLoadBalancer, error)
	CreateLoadBalancerListener(lbID, poolName, poolID string) (*VpcLoadBalancerListener, error)
	CreateLoadBalancerPool(lbID, poolName string, nodeList []string, options *ServiceOptions) (*VpcLoadBalancerPool, error)
	CreateLoadBalancerPoolMember(lbID, poolName, poolID, nodeID string) (*VpcLoadBalancerPoolMember, error)
	DeleteLoadBalancer(lbID string) error
	DeleteLoadBalancerListener(lbID, listenerID string) error
	DeleteLoadBalancerPool(lbID, poolID string) error
	DeleteLoadBalancerPoolMember(lbID, poolID, memberID string) error
	GetLoadBalancer(lbID string) (*VpcLoadBalancer, error)
	GetSubnet(subnetID string) (*VpcSubnet, error)
	ListLoadBalancers() ([]*VpcLoadBalancer, error)
	ListLoadBalancerListeners(lbID string) ([]*VpcLoadBalancerListener, error)
	ListLoadBalancerPools(lbID string) ([]*VpcLoadBalancerPool, error)
	ListLoadBalancerPoolMembers(lbID, poolID string) ([]*VpcLoadBalancerPoolMember, error)
	ListSubnets() ([]*VpcSubnet, error)
	ReplaceLoadBalancerPoolMembers(lbID, poolName, poolID string, nodeList []string) ([]*VpcLoadBalancerPoolMember, error)
	UpdateLoadBalancerPool(lbID, newPoolName string, existingPool *VpcLoadBalancerPool, options *ServiceOptions) (*VpcLoadBalancerPool, error)
}

CloudVpcSdk interface for SDK operations

func NewCloudVpcSdk

func NewCloudVpcSdk(c *ConfigVpc) (CloudVpcSdk, error)

NewCloudVpcSdk - return the correct set of SDK library routines

func NewVpcSdkFake

func NewVpcSdkFake() (CloudVpcSdk, error)

NewVpcSdkFake - create new mock SDK client

func NewVpcSdkGen2

func NewVpcSdkGen2(c *ConfigVpc) (CloudVpcSdk, error)

NewVpcSdkGen2 - create new SDK client

type ConfigVpc

type ConfigVpc struct {
	// Externalized config settings from caller
	AccountID                  string
	APIKeySecret               string
	ClusterID                  string
	EnablePrivate              bool
	IamEndpointOverride        string
	IKSPrivateEndpointHostname string
	ProviderType               string
	Region                     string
	ResourceGroupName          string
	RmEndpointOverride         string
	SubnetNames                string
	WorkerAccountID            string // Not used, ignored
	VpcName                    string
	VpcEndpointOverride        string
	// contains filtered or unexported fields
}

ConfigVpc is the VPC configuration information

type ServiceOptions

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

ServiceOptions - options from Kubernetes Load Balancer service and methods to access those fields

type VpcLoadBalancer

type VpcLoadBalancer struct {
	// Saved copy of the actual SDK object
	SdkObject interface{}

	// The date and time that this load balancer was created.
	// CreatedAt *strfmt.DateTime `json:"created_at" validate:"required"`
	CreatedAt string

	// Fully qualified domain name assigned to this load balancer.
	// Hostname *string `json:"hostname" validate:"required"`
	Hostname string

	// The unique identifier for this load balancer.
	// ID *string `json:"id" validate:"required"`
	ID string

	// The type of this load balancer, public or private.
	// IsPublic *bool `json:"is_public" validate:"required"`
	IsPublic bool

	// The listeners of this load balancer.
	// Listeners []LoadBalancerListenerReference `json:"listeners" validate:"required"`
	ListenerIDs []string

	// The unique user-defined name for this load balancer.
	// Name *string `json:"name" validate:"required"`
	Name string

	// The operating status of this load balancer.
	// OperatingStatus *string `json:"operating_status" validate:"required"`
	OperatingStatus string

	// The pools of this load balancer.
	// Pools []LoadBalancerPoolReference `json:"pools" validate:"required"`
	Pools []VpcObjectReference

	// The private IP addresses assigned to this load balancer.
	// PrivateIps []IP `json:"private_ips" validate:"required"`
	PrivateIps []string

	// The profile to use for this load balancer.
	// Profile *LoadBalancerProfileReference `json:"profile" validate:"required"`
	ProfileFamily string

	// The provisioning status of this load balancer.
	// ProvisioningStatus *string `json:"provisioning_status" validate:"required"`
	ProvisioningStatus string

	// The public IP addresses assigned to this load balancer. These are applicable only for public load balancers.
	// PublicIps []IP `json:"public_ips" validate:"required"`
	PublicIps []string

	// The resource group for this load balancer.
	// ResourceGroup *ResourceGroupReference `json:"resource_group" validate:"required"`
	ResourceGroup VpcObjectReference

	// The subnets this load balancer is part of.
	// Subnets []SubnetReference `json:"subnets" validate:"required"`
	Subnets []VpcObjectReference

	// The VPC this load balancer belongs to. For load balancers that use subnets, this
	// is the VPC the subnets belong to.
	// Vpc *VPCReferenceNoName `json:"vpc,omitempty"`
	VpcID string
}

VpcLoadBalancer ...

func (*VpcLoadBalancer) GetStatus

func (lb *VpcLoadBalancer) GetStatus() string

GetStatus - returns the operational/provisioning status of the VPC load balancer as a string

func (*VpcLoadBalancer) GetSuccessString

func (lb *VpcLoadBalancer) GetSuccessString() string

GetSuccessString - returns a string indicating success of the LB creation

func (*VpcLoadBalancer) GetSummary

func (lb *VpcLoadBalancer) GetSummary() string

GetSummary - returns a string containing key information about the VPC load balancer

func (*VpcLoadBalancer) IsNLB

func (lb *VpcLoadBalancer) IsNLB() bool

IsNLB - returns true of the load balancer is a Network Load Balancer

func (*VpcLoadBalancer) IsReady

func (lb *VpcLoadBalancer) IsReady() bool

IsReady - returns a flag indicating if the load balancer will allow additional operations to be done

type VpcLoadBalancerListener

type VpcLoadBalancerListener struct {

	// The connection limit of the listener.
	// ConnectionLimit *int64 `json:"connection_limit,omitempty"`
	ConnectionLimit int64

	// The default pool associated with the listener.
	// DefaultPool *LoadBalancerPoolReference `json:"default_pool,omitempty"`
	DefaultPool VpcObjectReference

	// The unique identifier for this load balancer listener.
	// ID *string `json:"id" validate:"required"`
	ID string

	// The listener port number.
	// Port *int64 `json:"port" validate:"required"`
	Port int64

	// The listener protocol.
	// Protocol *string `json:"protocol" validate:"required"`
	Protocol string

	// The provisioning status of this listener.
	// ProvisioningStatus *string `json:"provisioning_status" validate:"required"`
	ProvisioningStatus string
}

VpcLoadBalancerListener ...

type VpcLoadBalancerPool

type VpcLoadBalancerPool struct {
	// The load balancing algorithm.
	// Algorithm *string `json:"algorithm" validate:"required"`
	Algorithm string

	// The health monitor of this pool.
	// HealthMonitor *LoadBalancerPoolHealthMonitor `json:"health_monitor" validate:"required"`
	HealthMonitor VpcLoadBalancerPoolHealthMonitor

	// The unique identifier for this load balancer pool.
	// ID *string `json:"id" validate:"required"`
	ID string

	// The backend server members of the pool.
	// Members []LoadBalancerPoolMembersItem `json:"members,omitempty"`
	Members []*VpcLoadBalancerPoolMember

	// The user-defined name for this load balancer pool.
	// Name *string `json:"name" validate:"required"`
	Name string

	// The protocol used for this load balancer pool.
	//
	// The enumerated values for this property are expected to expand in the future. When processing this property, check
	// for and log unknown values. Optionally halt processing and surface the error, or bypass the pool on which the
	// unexpected property value was encountered.
	// Protocol *string `json:"protocol" validate:"required"`
	Protocol string

	// The provisioning status of this pool.
	// ProvisioningStatus *string `json:"provisioning_status" validate:"required"`
	ProvisioningStatus string

	// The PROXY protocol setting for this pool:
	// - `v1`: Enabled with version 1 (human-readable header format)
	// - `v2`: Enabled with version 2 (binary header format)
	// - `disabled`: Disabled
	//
	// Supported by load balancers in the `application` family (otherwise always `disabled`).
	// ProxyProtocol *string `json:"proxy_protocol" validate:"required"`
	ProxyProtocol string

	// The session persistence of this pool.
	// SessionPersistence *LoadBalancerPoolSessionPersistenceTemplate `json:"session_persistence,omitempty"`
	SessionPersistence string
}

VpcLoadBalancerPool ...

type VpcLoadBalancerPoolHealthMonitor

type VpcLoadBalancerPoolHealthMonitor struct {
	// The health check interval in seconds. Interval must be greater than timeout value.
	// Delay *int64 `json:"delay" validate:"required"`
	Delay int64

	// The health check max retries.
	// MaxRetries *int64 `json:"max_retries" validate:"required"`
	MaxRetries int64

	// The health check port number. If specified, this overrides the ports specified in the server member resources.
	// Port *int64 `json:"port,omitempty"`
	Port int64

	// The health check timeout in seconds.
	// Timeout *int64 `json:"timeout" validate:"required"`
	Timeout int64

	// The protocol type of this load balancer pool health monitor.
	//
	// The enumerated values for this property are expected to expand in the future. When processing this property, check
	// for and log unknown values. Optionally halt processing and surface the error, or bypass the health monitor on which
	// the unexpected property value was encountered.
	// Type *string `json:"type" validate:"required"`
	Type string

	// The health check url. This is applicable only to `http` type of health monitor.
	// URLPath *string `json:"url_path,omitempty"`
	URLPath string
}

VpcLoadBalancerPoolHealthMonitor ...

type VpcLoadBalancerPoolMember

type VpcLoadBalancerPoolMember struct {

	// Health of the server member in the pool.
	// Health *string `json:"health" validate:"required"`
	Health string

	// The unique identifier for this load balancer pool member.
	// ID *string `json:"id" validate:"required"`
	ID string

	// The port number of the application running in the server member.
	// Port *int64 `json:"port" validate:"required"`
	Port int64

	// The provisioning status of this member.
	// ProvisioningStatus *string `json:"provisioning_status" validate:"required"`
	ProvisioningStatus string

	// The pool member target type.
	// TargetIPAddress *LoadBalancerMemberTarget.Address `json:"target" validate:"required"`
	TargetIPAddress string
	// TargetAddress *LoadBalancerMemberTarget.ID `json:"target" validate:"required"`
	TargetInstanceID string

	// Weight of the server member. This takes effect only when the load balancing algorithm of its belonging pool is
	// `weighted_round_robin`.
	// Weight *int64 `json:"weight,omitempty"`
	Weight int64
}

VpcLoadBalancerPoolMember ...

type VpcObjectReference

type VpcObjectReference struct {
	// The unique identifier
	ID string

	// The unique user-defined name
	Name string
}

VpcObjectReference ...

type VpcPoolNameFields

type VpcPoolNameFields struct {
	Protocol string
	Port     int
	NodePort int
}

VpcPoolNameFields - Structure for dealing with parts of the VPC pool name

type VpcSdkFake

type VpcSdkFake struct {
	Error                map[string]error
	LoadBalancerReady    *VpcLoadBalancer
	LoadBalancerNotReady *VpcLoadBalancer
	Listener             *VpcLoadBalancerListener
	Pool                 *VpcLoadBalancerPool
	Member1              *VpcLoadBalancerPoolMember
	Member2              *VpcLoadBalancerPoolMember
	Subnet1              *VpcSubnet
	Subnet2              *VpcSubnet
}

VpcSdkFake SDK methods

func (*VpcSdkFake) CreateLoadBalancer

func (v *VpcSdkFake) CreateLoadBalancer(lbName string, nodeList, poolList, subnetList []string, options *ServiceOptions) (*VpcLoadBalancer, error)

CreateLoadBalancer - create a load balancer

func (*VpcSdkFake) CreateLoadBalancerListener

func (v *VpcSdkFake) CreateLoadBalancerListener(lbID, poolName, poolID string) (*VpcLoadBalancerListener, error)

CreateLoadBalancerListener - create a load balancer listener

func (*VpcSdkFake) CreateLoadBalancerPool

func (v *VpcSdkFake) CreateLoadBalancerPool(lbID, poolName string, nodeList []string, options *ServiceOptions) (*VpcLoadBalancerPool, error)

CreateLoadBalancerPool - create a load balancer pool

func (*VpcSdkFake) CreateLoadBalancerPoolMember

func (v *VpcSdkFake) CreateLoadBalancerPoolMember(lbID, poolName, poolID, nodeID string) (*VpcLoadBalancerPoolMember, error)

CreateLoadBalancerPoolMember - create a load balancer pool member

func (*VpcSdkFake) DeleteLoadBalancer

func (v *VpcSdkFake) DeleteLoadBalancer(lbID string) error

DeleteLoadBalancer - delete the specified VPC load balancer

func (*VpcSdkFake) DeleteLoadBalancerListener

func (v *VpcSdkFake) DeleteLoadBalancerListener(lbID, listenerID string) error

DeleteLoadBalancerListener - delete the specified VPC load balancer listener

func (*VpcSdkFake) DeleteLoadBalancerPool

func (v *VpcSdkFake) DeleteLoadBalancerPool(lbID, poolID string) error

DeleteLoadBalancerPool - delete the specified VPC load balancer pool

func (*VpcSdkFake) DeleteLoadBalancerPoolMember

func (v *VpcSdkFake) DeleteLoadBalancerPoolMember(lbID, poolID, memberID string) error

DeleteLoadBalancerPoolMember - delete the specified VPC load balancer pool member

func (*VpcSdkFake) GetLoadBalancer

func (v *VpcSdkFake) GetLoadBalancer(lbID string) (*VpcLoadBalancer, error)

GetLoadBalancer - get a specific load balancer

func (*VpcSdkFake) GetSubnet

func (v *VpcSdkFake) GetSubnet(subnetID string) (*VpcSubnet, error)

GetSubnet - get a specific subnet

func (*VpcSdkFake) ListLoadBalancerListeners

func (v *VpcSdkFake) ListLoadBalancerListeners(lbID string) ([]*VpcLoadBalancerListener, error)

ListLoadBalancerListeners - return list of load balancer listeners

func (*VpcSdkFake) ListLoadBalancerPoolMembers

func (v *VpcSdkFake) ListLoadBalancerPoolMembers(lbID, poolID string) ([]*VpcLoadBalancerPoolMember, error)

ListLoadBalancerPoolMembers - return list of load balancer pool members

func (*VpcSdkFake) ListLoadBalancerPools

func (v *VpcSdkFake) ListLoadBalancerPools(lbID string) ([]*VpcLoadBalancerPool, error)

ListLoadBalancerPools - return list of load balancer pools

func (*VpcSdkFake) ListLoadBalancers

func (v *VpcSdkFake) ListLoadBalancers() ([]*VpcLoadBalancer, error)

ListLoadBalancers - return list of load balancers

func (*VpcSdkFake) ListSubnets

func (v *VpcSdkFake) ListSubnets() ([]*VpcSubnet, error)

ListSubnets - return list of subnets

func (*VpcSdkFake) ReplaceLoadBalancerPoolMembers

func (v *VpcSdkFake) ReplaceLoadBalancerPoolMembers(lbID, poolName, poolID string, nodeList []string) ([]*VpcLoadBalancerPoolMember, error)

ReplaceLoadBalancerPoolMembers - update list of load balancer pool members

func (*VpcSdkFake) UpdateLoadBalancerPool

func (v *VpcSdkFake) UpdateLoadBalancerPool(lbID, newPoolName string, existingPool *VpcLoadBalancerPool, options *ServiceOptions) (*VpcLoadBalancerPool, error)

UpdateLoadBalancerPool - update a load balancer pool

type VpcSdkGen2

type VpcSdkGen2 struct {
	Client *sdk.VpcV1
	Config *ConfigVpc
}

VpcSdkGen2 SDK methods

func (*VpcSdkGen2) CreateLoadBalancer

func (v *VpcSdkGen2) CreateLoadBalancer(lbName string, nodeList, poolList, subnetList []string, options *ServiceOptions) (*VpcLoadBalancer, error)

CreateLoadBalancer - create a load balancer

func (*VpcSdkGen2) CreateLoadBalancerListener

func (v *VpcSdkGen2) CreateLoadBalancerListener(lbID, poolName, poolID string) (*VpcLoadBalancerListener, error)

CreateLoadBalancerListener - create a load balancer listener

func (*VpcSdkGen2) CreateLoadBalancerPool

func (v *VpcSdkGen2) CreateLoadBalancerPool(lbID, poolName string, nodeList []string, options *ServiceOptions) (*VpcLoadBalancerPool, error)

CreateLoadBalancerPool - create a load balancer pool

func (*VpcSdkGen2) CreateLoadBalancerPoolMember

func (v *VpcSdkGen2) CreateLoadBalancerPoolMember(lbID, poolName, poolID, nodeID string) (*VpcLoadBalancerPoolMember, error)

CreateLoadBalancerPoolMember - create a load balancer pool member

func (*VpcSdkGen2) DeleteLoadBalancer

func (v *VpcSdkGen2) DeleteLoadBalancer(lbID string) error

DeleteLoadBalancer - delete the specified VPC load balancer

func (*VpcSdkGen2) DeleteLoadBalancerListener

func (v *VpcSdkGen2) DeleteLoadBalancerListener(lbID, listenerID string) error

DeleteLoadBalancerListener - delete the specified VPC load balancer listener

func (*VpcSdkGen2) DeleteLoadBalancerPool

func (v *VpcSdkGen2) DeleteLoadBalancerPool(lbID, poolID string) error

DeleteLoadBalancerPool - delete the specified VPC load balancer pool

func (*VpcSdkGen2) DeleteLoadBalancerPoolMember

func (v *VpcSdkGen2) DeleteLoadBalancerPoolMember(lbID, poolID, memberID string) error

DeleteLoadBalancerPoolMember - delete the specified VPC load balancer pool

func (*VpcSdkGen2) GetLoadBalancer

func (v *VpcSdkGen2) GetLoadBalancer(lbID string) (*VpcLoadBalancer, error)

GetLoadBalancer - get a specific load balancer

func (*VpcSdkGen2) GetSubnet

func (v *VpcSdkGen2) GetSubnet(subnetID string) (*VpcSubnet, error)

GetSubnet - get a specific subnet

func (*VpcSdkGen2) ListLoadBalancerListeners

func (v *VpcSdkGen2) ListLoadBalancerListeners(lbID string) ([]*VpcLoadBalancerListener, error)

ListLoadBalancerListeners - return list of load balancer listeners

func (*VpcSdkGen2) ListLoadBalancerPoolMembers

func (v *VpcSdkGen2) ListLoadBalancerPoolMembers(lbID, poolID string) ([]*VpcLoadBalancerPoolMember, error)

ListLoadBalancerPoolMembers - return list of load balancer pool members

func (*VpcSdkGen2) ListLoadBalancerPools

func (v *VpcSdkGen2) ListLoadBalancerPools(lbID string) ([]*VpcLoadBalancerPool, error)

ListLoadBalancerPools - return list of load balancer pools

func (*VpcSdkGen2) ListLoadBalancers

func (v *VpcSdkGen2) ListLoadBalancers() ([]*VpcLoadBalancer, error)

ListLoadBalancers - return list of load balancers

func (*VpcSdkGen2) ListSubnets

func (v *VpcSdkGen2) ListSubnets() ([]*VpcSubnet, error)

ListSubnets - return list of subnets

func (*VpcSdkGen2) ReplaceLoadBalancerPoolMembers

func (v *VpcSdkGen2) ReplaceLoadBalancerPoolMembers(lbID, poolName, poolID string, nodeList []string) ([]*VpcLoadBalancerPoolMember, error)

ReplaceLoadBalancerPoolMembers - update a load balancer pool members

func (*VpcSdkGen2) UpdateLoadBalancerPool

func (v *VpcSdkGen2) UpdateLoadBalancerPool(lbID, newPoolName string, existingPool *VpcLoadBalancerPool, options *ServiceOptions) (*VpcLoadBalancerPool, error)

UpdateLoadBalancerPool - update a load balancer pool

type VpcSubnet

type VpcSubnet struct {
	// Saved copy of the actual SDK object
	SdkObject interface{}

	// The number of IPv4 addresses in this subnet that are not in-use, and have not been reserved by the user or the
	// provider.
	// AvailableIpv4AddressCount *int64 `json:"available_ipv4_address_count" validate:"required"`
	AvailableIpv4AddressCount int64

	// The date and time that the subnet was created.
	// CreatedAt *strfmt.DateTime `json:"created_at" validate:"required"`
	CreatedAt string

	// The unique identifier for this subnet.
	// ID *string `json:"id" validate:"required"`
	ID string

	// The IP version(s) supported by this subnet.
	// IPVersion *string `json:"ip_version" validate:"required"`
	IPVersion string

	// The IPv4 range of the subnet, expressed in CIDR format.
	// Ipv4CIDRBlock *string `json:"ipv4_cidr_block,omitempty"`
	Ipv4CidrBlock string

	// The user-defined name for this subnet.
	// Name *string `json:"name" validate:"required"`
	Name string

	// The network ACL for this subnet.
	// NetworkACL *NetworkACLReference `json:"network_acl" validate:"required"`
	NetworkACL VpcObjectReference

	// The public gateway to handle internet bound traffic for this subnet.
	// PublicGateway *PublicGatewayReference `json:"public_gateway,omitempty"`
	PublicGateway VpcObjectReference

	// The resource group for this subnet.
	// ResourceGroup *ResourceGroupReference `json:"resource_group" validate:"required"`
	ResourceGroup VpcObjectReference

	// The status of the subnet.
	// Status *string `json:"status" validate:"required"`
	Status string

	// The total number of IPv4 addresses in this subnet.
	//
	// Note: This is calculated as 2<sup>(32 − prefix length)</sup>. For example, the prefix length `/24` gives:<br>
	// 2<sup>(32 − 24)</sup> = 2<sup>8</sup> = 256 addresses.
	// TotalIpv4AddressCount *int64 `json:"total_ipv4_address_count" validate:"required"`
	TotalIpv4AddressCount int64

	// The VPC this subnet is a part of.
	// VPC *VPCReference `json:"vpc" validate:"required"`
	Vpc VpcObjectReference

	// The zone this subnet resides in.
	// Zone *ZoneReference `json:"zone" validate:"required"`
	Zone string
}

VpcSubnet ...

Jump to

Keyboard shortcuts

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