router

package
v4.0.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2018 License: Apache-2.0 Imports: 52 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultClientConfig

func DefaultClientConfig(flags *pflag.FlagSet) kclientcmd.ClientConfig

func NewCommandF5Router

func NewCommandF5Router(name string) *cobra.Command

NewCommandF5Router provides CLI handler for the F5 router sync plugin.

func NewCommandTemplateRouter

func NewCommandTemplateRouter(name string) *cobra.Command

NewCommndTemplateRouter provides CLI handler for the template router backend

Types

type Config

type Config struct {
	// CommonConfig is the shared base config for both the OpenShift config and Kubernetes config
	CommonConfig restclient.Config
	// Namespace is the namespace to act in
	Namespace string
	// contains filtered or unexported fields
}

Config contains all the necessary bits for client configuration

func NewConfig

func NewConfig() *Config

NewConfig returns a new configuration

func (*Config) Bind

func (cfg *Config) Bind(flags *pflag.FlagSet)

Bind binds configuration values to the passed flagset

func (*Config) Clients

func (cfg *Config) Clients() (kclientset.Interface, error)

Clients returns an OpenShift and a Kubernetes client from a given configuration

func (*Config) KubeConfig

func (cfg *Config) KubeConfig() (*restclient.Config, string, error)

KubeConfig returns the Kubernetes configuration

type F5Router

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

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

	// Password specifies the password with which the plugin should authenticate
	// with the F5 BIG-IP host.
	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 filename of an SSH private key for
	// authenticating with F5.  This key is required to copy certificates
	// 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 path to the F5 partition. This is
	// normally used to create access control boundaries 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
}

F5Router is the config necessary to start an F5 router plugin.

func (*F5Router) Bind

func (o *F5Router) Bind(flag *pflag.FlagSet)

Bind binds F5Router arguments to flags

func (*F5Router) Validate

func (o *F5Router) Validate() error

Validate verifies the required F5 flags are present

type F5RouterOptions

type F5RouterOptions struct {
	Config *Config

	F5Router
	RouterSelection
}

F5RouterOptions represent the complete structure needed to start an F5 router sync process.

func (*F5RouterOptions) Complete

func (o *F5RouterOptions) Complete() error

func (*F5RouterOptions) F5RouteAdmitterFunc

func (o *F5RouterOptions) F5RouteAdmitterFunc() controller.RouteAdmissionFunc

F5RouteAdmitterFunc returns a func that checks if a route is a wildcard route and currently denies it.

func (*F5RouterOptions) Run

func (o *F5RouterOptions) Run() error

Run launches an F5 route sync process using the provided options. It never exits.

func (*F5RouterOptions) Validate

func (o *F5RouterOptions) Validate() error

type RouterSelection

type RouterSelection struct {
	RouterName              string
	RouterCanonicalHostname string

	ResyncInterval time.Duration

	UpdateStatus bool

	HostnameTemplate string
	OverrideHostname bool
	OverrideDomains  []string
	RedactedDomains  sets.String

	LabelSelector string
	FieldSelector string

	Namespace              string
	NamespaceLabelSelector string
	NamespaceLabels        labels.Selector

	ProjectLabelSelector string
	ProjectLabels        labels.Selector

	IncludeUDP bool

	DeniedDomains      []string
	BlacklistedDomains sets.String

	AllowedDomains     []string
	WhitelistedDomains sets.String

	AllowWildcardRoutes bool

	DisableNamespaceOwnershipCheck bool

	ExtendedValidation bool

	ListenAddr string
}

RouterSelection controls what routes and resources on the server are considered part of this router.

func (*RouterSelection) AdmissionCheck

func (o *RouterSelection) AdmissionCheck(route *routev1.Route) error

func (*RouterSelection) Bind

func (o *RouterSelection) Bind(flag *pflag.FlagSet)

Bind sets the appropriate labels

func (*RouterSelection) Complete

func (o *RouterSelection) Complete() error

Complete converts string representations of field and label selectors to their parsed equivalent, or returns an error.

func (*RouterSelection) NewFactory

NewFactory initializes a factory that will watch the requested routes

func (*RouterSelection) RouteAdmissionFunc

func (o *RouterSelection) RouteAdmissionFunc() controller.RouteAdmissionFunc

RouteAdmissionFunc returns a func that checks if a route can be admitted based on blacklist & whitelist checks and wildcard routes policy setting. Note: The blacklist settings trumps the whitelist ones.

func (*RouterSelection) RouteUpdate

func (o *RouterSelection) RouteUpdate(route *routev1.Route)

RouteUpdate updates the route before it is seen by the cache.

type RouterStats

type RouterStats struct {
	StatsPortString string
	StatsPassword   string
	StatsUsername   string

	StatsPort int
}

func (*RouterStats) Bind

func (o *RouterStats) Bind(flag *pflag.FlagSet)

type TemplateRouter

type TemplateRouter struct {
	WorkingDir               string
	TemplateFile             string
	ReloadScript             string
	ReloadInterval           time.Duration
	DefaultCertificate       string
	DefaultCertificatePath   string
	DefaultCertificateDir    string
	DefaultDestinationCAPath string
	RouterService            *ktypes.NamespacedName
	BindPortsAfterSync       bool
	MaxConnections           string
	Ciphers                  string
	StrictSNI                bool
	MetricsType              string

	TemplateRouterConfigManager
}

func (*TemplateRouter) Bind

func (o *TemplateRouter) Bind(flag *pflag.FlagSet)

type TemplateRouterConfigManager

type TemplateRouterConfigManager struct {
	UseHAProxyConfigManager     bool
	CommitInterval              time.Duration
	BlueprintRouteNamespace     string
	BlueprintRouteLabelSelector string
	BlueprintRoutePoolSize      int
	MaxDynamicServers           int
}

type TemplateRouterOptions

type TemplateRouterOptions struct {
	Config *Config

	TemplateRouter
	RouterStats
	RouterSelection
}

func (*TemplateRouterOptions) Complete

func (o *TemplateRouterOptions) Complete() error

func (*TemplateRouterOptions) Run

func (o *TemplateRouterOptions) Run() error

Run launches a template router using the provided options. It never exits.

func (*TemplateRouterOptions) Validate

func (o *TemplateRouterOptions) Validate() error

Jump to

Keyboard shortcuts

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