f5

package
v3.6.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2017 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Default F5 partition path to use for syncing route config.
	F5DefaultPartitionPath = "/Common"
	F5VxLANTunnelName      = "vxlan5000"
	F5VxLANProfileName     = "vxlan-ose"
	HTTP_CONFLICT_CODE     = 409
)

Variables

This section is empty.

Functions

This section is empty.

Types

type F5Error

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

F5Error represents an error resulting from a request to the F5 BIG-IP iControl REST interface.

func (F5Error) Error

func (err F5Error) Error() string

Error implements the error interface.

type F5Plugin

type F5Plugin struct {
	// F5Client is the object that represents the F5 BIG-IP host, holds state,
	// and provides an interface to manipulate F5 BIG-IP.
	F5Client *f5LTM

	// VtepMap is a map of node ids and their ip addresses
	// helps to sync events at router start vs node status update events
	VtepMap map[types.UID]string
}

F5Plugin holds state for the f5 plugin.

func NewF5Plugin

func NewF5Plugin(cfg F5PluginConfig) (*F5Plugin, error)

NewF5Plugin makes a new f5 router plugin.

func (*F5Plugin) Commit

func (p *F5Plugin) Commit() error

No-op since f5 configuration can be updated piecemeal

func (*F5Plugin) HandleEndpoints

func (p *F5Plugin) HandleEndpoints(eventType watch.EventType,
	endpoints *kapi.Endpoints) error

HandleEndpoints processes watch events on the Endpoints resource and creates and deletes pools and pool members in response.

func (*F5Plugin) HandleNamespaces

func (p *F5Plugin) HandleNamespaces(namespaces sets.String) error

func (*F5Plugin) HandleNode

func (p *F5Plugin) HandleNode(eventType watch.EventType, node *kapi.Node) error

func (*F5Plugin) HandleRoute

func (p *F5Plugin) HandleRoute(eventType watch.EventType,
	route *routeapi.Route) error

HandleRoute processes watch events on the Route resource and creates and deletes policy rules in response.

type F5PluginConfig

type F5PluginConfig struct {
	// Host specifies the hostname or IP address of the F5 BIG-IP host.
	Host string

	// Username specifies the username with the plugin should authenticate
	// with the F5 BIG-IP host.
	Username string

	// Password specifies the password with which the plugin should
	// authenticate with F5 BIG-IP.
	Password string

	// HttpVserver specifies the name of the vserver object in F5 BIG-IP that the
	// plugin will configure for HTTP connections.
	HttpVserver string

	// HttpsVserver specifies the name of the vserver object in F5 BIG-IP that the
	// plugin will configure for HTTPS connections.
	HttpsVserver string

	// PrivateKey specifies the path to the SSH private-key file for
	// authenticating with F5 BIG-IP.  The file must exist with this pathname
	// inside the F5 router's filesystem namespace.  The F5 router requires this
	// key to copy certificates and keys to the F5 BIG-IP host.
	PrivateKey string

	// Insecure specifies whether the F5 plugin should perform strict certificate
	// validation for connections to the F5 BIG-IP host.
	Insecure bool

	// PartitionPath specifies the F5 partition path to use. This is used
	// to create an access control boundary for users and applications.
	PartitionPath string

	// VxlanGateway is the ip address assigned to the local tunnel interface
	// inside F5 box. This address is the one that the packets generated from F5
	// will carry. The pods will return the packets to this address itself.
	// It is important that the gateway be one of the ip addresses of the subnet
	// that has been generated for F5.
	VxlanGateway string

	// InternalAddress is the ip address of the vtep interface used to connect to
	// VxLAN overlay. It is the hostIP address listed in the subnet generated for F5
	InternalAddress string
}

F5PluginConfig holds configuration for the f5 plugin.

Jump to

Keyboard shortcuts

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