appmanager

package
v1.13.0 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2020 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Overview

-

  • Copyright (c) 2016-2019, F5 Networks, Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Index

Constants

View Source
const (
	HTTP virtuals = iota
	HTTPS
	HTTPANDS
)

Determines which virtual server needs a specific feature applied.

View Source
const AppRootDep = "App-Root-Annotation"
View Source
const DEFAULT_BALANCE string = "round-robin"
View Source
const DEFAULT_HTTPS_PORT int32 = 443
View Source
const DEFAULT_HTTP_PORT int32 = 80
View Source
const DEFAULT_MODE string = "tcp"
View Source
const DefaultConfigMapLabel = "f5type in (virtual-server)"
View Source
const RuleDep = "Rule"
View Source
const ServiceDep = "Service"
View Source
const URLDep = "URL-Rewrite-Annotation"
View Source
const WhitelistDep = "Whitelist-Annotation"

Variables

View Source
var DEFAULT_PARTITION string

FIXME: remove this global variable.

View Source
var RoutesProcessed []*routeapi.Route

Functions

func DeepEqualJSON added in v1.13.0

func DeepEqualJSON(decl1, decl2 as3Declaration) bool

func NewObjectDependencies added in v1.4.1

func NewObjectDependencies(
	obj interface{},
) (ObjectDependency, ObjectDependencies)

NewObjectDependencies parses an object and returns a map of its dependencies

func RegisterBigIPSchemaTypes added in v1.3.0

func RegisterBigIPSchemaTypes()

Add new data format to the library

func ValidateAndOverrideAS3JsonData added in v1.12.0

func ValidateAndOverrideAS3JsonData(srcJsonData string, dstJsonData string) string

func ValidateJSONStringAndFetchObject added in v1.12.0

func ValidateJSONStringAndFetchObject(jsonData string, jsonObj *map[string]interface{}) error

Types

type AS3Config added in v1.13.0

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

AS3Config consists of all the AS3 related configurations

type AS3ConfigMap added in v1.13.0

type AS3ConfigMap struct {
	Name string         // AS3 specific ConfigMap name
	Data as3Declaration // if AS3 Name is present, populate this with AS3 template data.
}

ActiveAS3ConfigMap user defined ConfigMap for global availability.

type AS3Manager added in v1.13.0

type AS3Manager struct {

	// Watched namespaces
	WatchedNS       WatchedNamespaces
	As3SchemaLatest string

	// Override existing as3 declaration with this configmap
	OverrideAS3Decl string
	// Path of schemas reside locally
	SchemaLocalPath string
	// Flag to check schema validation using reference or string
	As3SchemaFlag bool
	// Processed routes for updating Admit Status
	RoutesProcessed RouteMap
	// POSTs configuration to BIG-IP using AS3
	PostManager *postmanager.PostManager
	// To put list of tenants in BIG-IP REST call URL that are in AS3 declaration
	FilterTenants bool
	// contains filtered or unexported fields
}

AS3Manager holds all the AS3 orchestration specific Data

type AnnotationHealthMonitor added in v1.3.0

type AnnotationHealthMonitor struct {
	Path     string `json:"path"`
	Interval int    `json:"interval"`
	Send     string `json:"send"`
	Recv     string `json:"recv"`
	Timeout  int    `json:"timeout"`
	Type     string `json:"type"`
}

This is the format for each item in the health monitor annotation used in the Ingress and Route objects.

type AnnotationHealthMonitors added in v1.3.0

type AnnotationHealthMonitors []AnnotationHealthMonitor

type BigIPConfig

type BigIPConfig struct {
	Virtuals           Virtuals            `json:"virtualServers,omitempty"`
	Pools              Pools               `json:"pools,omitempty"`
	Monitors           Monitors            `json:"monitors,omitempty"`
	Policies           []Policy            `json:"l7Policies,omitempty"`
	CustomProfiles     []CustomProfile     `json:"customProfiles,omitempty"`
	IRules             []IRule             `json:"iRules,omitempty"`
	InternalDataGroups []InternalDataGroup `json:"internalDataGroups,omitempty"`
	IApps              []IApp              `json:"iapps,omitempty"`
}

Config of all resources to configure on the BIG-IP

func (*BigIPConfig) SortMonitors added in v1.2.0

func (cfg *BigIPConfig) SortMonitors()

func (*BigIPConfig) SortPools added in v1.2.0

func (cfg *BigIPConfig) SortPools()

func (*BigIPConfig) SortVirtuals added in v1.2.0

func (cfg *BigIPConfig) SortVirtuals()

type BigIPv4FormatChecker added in v1.3.0

type BigIPv4FormatChecker struct{}

Big-IP ipv4/ipv6 checkers

func (BigIPv4FormatChecker) IsFormat added in v1.3.0

func (f BigIPv4FormatChecker) IsFormat(input interface{}) bool

type BigIPv6FormatChecker added in v1.3.0

type BigIPv6FormatChecker struct{}

func (BigIPv6FormatChecker) IsFormat added in v1.3.0

func (f BigIPv6FormatChecker) IsFormat(input interface{}) bool

type ConfigMap

type ConfigMap struct {
	VirtualServer struct {
		Backend  configMapBackend  `json:"backend"`
		Frontend configMapFrontend `json:"frontend"`
	} `json:"virtualServer"`
}

Used to unmarshal ConfigMap data

type CustomProfile added in v1.2.0

type CustomProfile struct {
	Name         string `json:"name"`
	Partition    string `json:"-"`
	Context      string `json:"context"` // 'clientside', 'serverside', or 'all'
	Cert         string `json:"cert"`
	Key          string `json:"key"`
	ServerName   string `json:"serverName,omitempty"`
	SNIDefault   bool   `json:"sniDefault,omitempty"`
	PeerCertMode string `json:"peerCertMode,omitempty"`
	CAFile       string `json:"caFile,omitempty"`
}

SSL Profile loaded from Secret or Route object

func NewCustomProfile added in v1.2.0

func NewCustomProfile(
	profile ProfileRef,
	cert,
	key,
	serverName string,
	sni bool,
	peerCertMode,
	caFile string,
) CustomProfile

type CustomProfileStore added in v1.2.0

type CustomProfileStore struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Store of CustomProfiles

func NewCustomProfiles added in v1.2.0

func NewCustomProfiles() *CustomProfileStore

Contructor for CustomProfiles

type DataGroupNamespaceMap added in v1.4.0

type DataGroupNamespaceMap map[string]*InternalDataGroup

func (DataGroupNamespaceMap) FlattenNamespaces added in v1.4.0

func (dgnm DataGroupNamespaceMap) FlattenNamespaces() *InternalDataGroup

type EventNotifier added in v1.4.0

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

func NewEventNotifier added in v1.4.0

func NewEventNotifier(bfunc NewBroadcasterFunc) *EventNotifier

type F5Resources added in v1.11.0

type F5Resources struct {
	Virtual   virtuals // 0 - HTTP, 1 - HTTPS, 2 - HTTP/S
	WAFPolicy string
}

type FlattenConflictFunc added in v1.4.0

type FlattenConflictFunc func(key, oldVal, newVal string) string

DataGroup flattening.

type FwdRuleMap added in v1.4.0

type FwdRuleMap map[string]bool

key is path regex, data unused. Using a map as go doesn't have a set type.

type HostFwdRuleMap added in v1.4.0

type HostFwdRuleMap map[string]FwdRuleMap

key is fqdn host name, data is map of paths.

type IApp added in v1.2.0

type IApp struct {
	Name                string                    `json:"name"`
	Partition           string                    `json:"-"`
	IApp                string                    `json:"template"`
	IAppPoolMemberTable *iappPoolMemberTable      `json:"poolMemberTable,omitempty"`
	IAppOptions         map[string]string         `json:"options,omitempty"`
	IAppTables          map[string]iappTableEntry `json:"tables,omitempty"`
	IAppVariables       map[string]string         `json:"variables,omitempty"`
}

IApp

type IRule added in v1.2.0

type IRule struct {
	Name      string `json:"name"`
	Partition string `json:"-"`
	Code      string `json:"apiAnonymous"`
}

iRules

func NewIRule added in v1.2.0

func NewIRule(name, partition, code string) *IRule

type IRulesMap added in v1.2.0

type IRulesMap map[nameRef]*IRule

type InternalDataGroup added in v1.2.0

type InternalDataGroup struct {
	Name      string                   `json:"name"`
	Partition string                   `json:"-"`
	Records   InternalDataGroupRecords `json:"records"`
}

func NewInternalDataGroup added in v1.2.0

func NewInternalDataGroup(name, partition string) *InternalDataGroup

func (*InternalDataGroup) AddOrUpdateRecord added in v1.2.0

func (idg *InternalDataGroup) AddOrUpdateRecord(name, data string) bool

func (*InternalDataGroup) RemoveRecord added in v1.2.0

func (idg *InternalDataGroup) RemoveRecord(name string) bool

type InternalDataGroupMap added in v1.2.0

type InternalDataGroupMap map[nameRef]DataGroupNamespaceMap

type InternalDataGroupRecord added in v1.2.0

type InternalDataGroupRecord struct {
	Name string `json:"name"`
	Data string `json:"data"`
}

type InternalDataGroupRecords added in v1.2.0

type InternalDataGroupRecords []InternalDataGroupRecord

func (InternalDataGroupRecords) Len added in v1.2.0

func (slice InternalDataGroupRecords) Len() int

func (InternalDataGroupRecords) Less added in v1.2.0

func (slice InternalDataGroupRecords) Less(i, j int) bool

func (InternalDataGroupRecords) Swap added in v1.2.0

func (slice InternalDataGroupRecords) Swap(i, j int)

type InternalF5Resources added in v1.11.0

type InternalF5Resources map[Record]F5Resources

type InternalF5ResourcesGroup added in v1.11.1

type InternalF5ResourcesGroup map[string]InternalF5Resources

Routes annotation features that are possible by an AS3 declaration can be added here. Initially enabling a WAF policy is added as an AS3 feature. | Host + Path | Virtual Server to Apply | WAF Policy Name | |-------------|-------------------------|-----------------| Host + Path is a unique record. The columns can be extended to add future features. InternalF5ResourcesGroup takes OpenShift/Kubernetes namespace as key

type Manager

type Manager struct {

	// Orchestration agent: AS3 or CCCL
	Agent string

	AS3Manager
	// contains filtered or unexported fields
}

func NewManager

func NewManager(params *Params) *Manager

Create and return a new app manager that meets the Manager interface

func (*Manager) AddNamespace

func (appMgr *Manager) AddNamespace(
	namespace string,
	cfgMapSelector labels.Selector,
	resyncPeriod time.Duration,
) error

func (*Manager) AddNamespaceLabelInformer

func (appMgr *Manager) AddNamespaceLabelInformer(
	labelSelector labels.Selector,
	resyncPeriod time.Duration,
) error

func (*Manager) ConfigWriter

func (appMgr *Manager) ConfigWriter() writer.Writer

func (*Manager) DeleteCISManagedPartition added in v1.12.0

func (appMgr *Manager) DeleteCISManagedPartition()

func (*Manager) GetAllWatchedNamespaces added in v1.9.2

func (appMgr *Manager) GetAllWatchedNamespaces() []string

Get all Namespaces being watched based on Namespaces provided, Namespace Label or all

func (*Manager) GetBIGIPTrustedCerts added in v1.13.0

func (appMgr *Manager) GetBIGIPTrustedCerts() string

Read certificate from configmap

func (*Manager) GetNamespaceLabelInformer

func (appMgr *Manager) GetNamespaceLabelInformer() cache.SharedIndexInformer

func (*Manager) GetWatchedNamespaces

func (appMgr *Manager) GetWatchedNamespaces() []string

func (*Manager) IsNodePort

func (appMgr *Manager) IsNodePort() bool

func (*Manager) ProcessNodeUpdate

func (appMgr *Manager) ProcessNodeUpdate(
	obj interface{}, err error,
)

Check for a change in Node state

func (*Manager) Run

func (appMgr *Manager) Run(stopCh <-chan struct{})

func (*Manager) SetupAS3Informers added in v1.9.1

func (appMgr *Manager) SetupAS3Informers() error

SetupAS3Informers returns an appInformer that includes the following set of informers. CfgMapInformer and SvcInformer are label based and endptInformer is not label based. These informers are event based informer and do not poll on the resources.

func (*Manager) UseNodeInternal

func (appMgr *Manager) UseNodeInternal() bool

type Member added in v1.2.0

type Member struct {
	Address string `json:"address"`
	Port    int32  `json:"port"`
	Session string `json:"session,omitempty"`
}

Pool Member

type Monitor

type Monitor struct {
	Name      string `json:"name"`
	Partition string `json:"-"`
	Interval  int    `json:"interval,omitempty"`
	Type      string `json:"type,omitempty"`
	Send      string `json:"send,omitempty"`
	Recv      string `json:"recv,omitempty"`
	Timeout   int    `json:"timeout,omitempty"`
}

Pool health monitor

type Monitors

type Monitors []Monitor

func (Monitors) Len

func (slice Monitors) Len() int

func (Monitors) Less

func (slice Monitors) Less(i, j int) bool

func (Monitors) Swap

func (slice Monitors) Swap(i, j int)

type NamespaceEventNotifier added in v1.4.0

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

type NamespaceEventNotifierMap added in v1.4.0

type NamespaceEventNotifierMap map[string]*NamespaceEventNotifier

type NewBroadcasterFunc added in v1.4.0

type NewBroadcasterFunc func() record.EventBroadcaster

type Node added in v1.5.0

type Node struct {
	Name string
	Addr string
}

type ObjectDependencies added in v1.4.1

type ObjectDependencies map[ObjectDependency]int

ObjectDependencies contains each dependency and its use count (usually 1)

type ObjectDependency added in v1.4.1

type ObjectDependency struct {
	Kind      string
	Namespace string
	Name      string
}

ObjectDependency identifies a K8s Object

type ObjectDependencyMap added in v1.4.1

type ObjectDependencyMap map[ObjectDependency]ObjectDependencies

ObjectDependencyMap key is an Ingress or Route and the value is a map of other objects it depends on - typically services.

type Params

type Params struct {
	KubeClient        kubernetes.Interface
	RouteClientV1     routeclient.RouteV1Interface
	ConfigWriter      writer.Writer
	UseNodeInternal   bool
	IsNodePort        bool
	RouteConfig       RouteConfig
	ResolveIngress    string
	DefaultIngIP      string
	VsSnatPoolName    string
	NodeLabelSelector string
	UseSecrets        bool
	EventChan         chan interface{}

	SchemaLocal            string
	ManageConfigMaps       bool
	ManageIngress          bool
	ManageIngressClassOnly bool
	IngressClass           string
	AS3Validation          bool
	SSLInsecure            bool
	TrustedCertsCfgmap     string
	Agent                  string
	OverrideAS3Decl        string
	SchemaLocalPath        string
	FilterTenants          bool
	// contains filtered or unexported fields
}

Struct to allow NewManager to receive all or only specific parameters.

type PartitionMap added in v1.2.0

type PartitionMap map[string]*BigIPConfig

Configs for each BIG-IP partition

type Policies added in v1.4.0

type Policies []Policy

type Policy

type Policy struct {
	Name        string   `json:"name"`
	Partition   string   `json:"-"`
	SubPath     string   `json:"subPath,omitempty"`
	Controls    []string `json:"controls,omitempty"`
	Description string   `json:"description,omitempty"`
	Legacy      bool     `json:"legacy,omitempty"`
	Requires    []string `json:"requires,omitempty"`
	Rules       Rules    `json:"rules,omitempty"`
	Strategy    string   `json:"strategy,omitempty"`
}

Virtual policy

func (*Policy) RemoveRuleAt added in v1.4.0

func (pol *Policy) RemoveRuleAt(offset int) bool

func (*Policy) RemoveRules added in v1.4.0

func (pol *Policy) RemoveRules(ruleOffsets []int) bool

type Pool

type Pool struct {
	Name         string   `json:"name"`
	Partition    string   `json:"-"`
	ServiceName  string   `json:"-"`
	ServicePort  int32    `json:"-"`
	Balance      string   `json:"loadBalancingMode"`
	Members      []Member `json:"members"`
	MonitorNames []string `json:"monitors,omitempty"`
}

Pool config

type Pools added in v1.2.0

type Pools []Pool

func (Pools) Len added in v1.2.0

func (slice Pools) Len() int

func (Pools) Less added in v1.2.0

func (slice Pools) Less(i, j int) bool

func (Pools) Swap added in v1.2.0

func (slice Pools) Swap(i, j int)

type ProfileRef added in v1.2.0

type ProfileRef struct {
	Name      string `json:"name"`
	Partition string `json:"partition"`
	Context   string `json:"context"` // 'clientside', 'serverside', or 'all'
	// Used as reference to which Namespace/Ingress this profile came from
	// (for deletion purposes)
	Namespace string `json:"-"`
}

Reference to pre-existing profiles

type ProfileRefs added in v1.2.0

type ProfileRefs []ProfileRef

func (ProfileRefs) Len added in v1.2.0

func (slice ProfileRefs) Len() int

func (ProfileRefs) Less added in v1.2.0

func (slice ProfileRefs) Less(i, j int) bool

func (ProfileRefs) Swap added in v1.2.0

func (slice ProfileRefs) Swap(i, j int)

type Record added in v1.11.0

type Record struct {
	Host string
	Path string
}

type ResourceConfig

type ResourceConfig struct {
	MetaData metaData `json:"-"`
	Virtual  Virtual  `json:"virtual,omitempty"`
	IApp     IApp     `json:"iapp,omitempty"`
	Pools    Pools    `json:"pools,omitempty"`
	Monitors Monitors `json:"monitors,omitempty"`
	Policies Policies `json:"policies,omitempty"`
}

Config for a single resource (ConfigMap, Ingress, or Route)

func (*ResourceConfig) AddRuleToPolicy added in v1.2.0

func (rc *ResourceConfig) AddRuleToPolicy(
	policyName string,
	rule *Rule,
)

func (*ResourceConfig) DeleteRouteProfile added in v1.7.0

func (rc *ResourceConfig) DeleteRouteProfile(namespace, name string)

func (*ResourceConfig) DeleteRuleFromPolicy added in v1.4.0

func (rc *ResourceConfig) DeleteRuleFromPolicy(
	policyName string,
	rule *Rule,
	mergedRulesMap map[string]map[string]mergedRuleEntry,
)

func (*ResourceConfig) FindPolicy

func (rc *ResourceConfig) FindPolicy(controlType string) *Policy

func (*ResourceConfig) GetName added in v1.4.0

func (cfg *ResourceConfig) GetName() string

func (*ResourceConfig) GetPartition added in v1.4.0

func (cfg *ResourceConfig) GetPartition() string

func (*ResourceConfig) MergeRules added in v1.5.0

func (rc *ResourceConfig) MergeRules(mergedRulesMap map[string]map[string]mergedRuleEntry)

func (*ResourceConfig) RemoveMonitor added in v1.3.0

func (rc *ResourceConfig) RemoveMonitor(pool string) bool

func (*ResourceConfig) RemovePolicy

func (rc *ResourceConfig) RemovePolicy(policy Policy)

func (*ResourceConfig) RemovePool added in v1.4.1

func (rc *ResourceConfig) RemovePool(
	namespace,
	poolName string,
	appMgr *Manager,
) (bool, *serviceKey)

func (*ResourceConfig) RemovePoolAt added in v1.4.0

func (rc *ResourceConfig) RemovePoolAt(offset int) bool

func (*ResourceConfig) SetMonitor

func (rc *ResourceConfig) SetMonitor(pool *Pool, monitor Monitor) bool

func (*ResourceConfig) SetPolicy

func (rc *ResourceConfig) SetPolicy(policy Policy)

func (*ResourceConfig) SortMonitors

func (rc *ResourceConfig) SortMonitors()

func (*ResourceConfig) UnmergeRule added in v1.5.0

func (rc *ResourceConfig) UnmergeRule(ruleName string, mergedRulesMap map[string]map[string]mergedRuleEntry) bool

type ResourceConfigMap

type ResourceConfigMap map[string]*ResourceConfig

Key is resource name, value is pointer to config. May be shared.

type ResourceConfigs

type ResourceConfigs []*ResourceConfig

type ResourceEnumFunc

type ResourceEnumFunc func(key serviceKey, cfg *ResourceConfig)

callback type for ForEach()

type ResourceInterface

type ResourceInterface interface {
	Init()
	Assign(key serviceKey, name string, cfg *ResourceConfig)
	PoolCount() int
	VirtualCount() int
	CountOf(key serviceKey) int
	Get(key serviceKey, name string) (*ResourceConfig, bool)
	GetAll(key serviceKey) ResourceConfigs
	GetAllWithName(name string) (ResourceConfigs, []serviceKey)
	GetAllResources() ResourceConfigs
	Delete(key serviceKey, name string) bool
	ForEach(f ResourceEnumFunc)
	DependencyDiff(key ObjectDependency, newDeps ObjectDependencies) ([]ObjectDependency, []ObjectDependency)
}

type ResourceMap

type ResourceMap map[int32][]*ResourceConfig

type Resources

type Resources struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Map of Resource configs

func NewResources

func NewResources() *Resources

Constructor for Resources

func (*Resources) Assign

func (rs *Resources) Assign(svcKey serviceKey, name string, cfg *ResourceConfig)

Add or update a Resource config, identified by key.

func (*Resources) CountOf

func (rs *Resources) CountOf(svcKey serviceKey) int

Count of all configurations for a specific backend.

func (*Resources) Delete

func (rs *Resources) Delete(svcKey serviceKey, name string) bool

Remove a specific resource configuration.

func (*Resources) DeleteKeyRef added in v1.4.0

func (rs *Resources) DeleteKeyRef(sKey serviceKey, name string) bool

Remove a svcKey's reference to a config (pool was removed)

func (*Resources) ForEach

func (rs *Resources) ForEach(f ResourceEnumFunc)

Iterate over all configurations, calling the supplied callback with each.

func (*Resources) Get

func (rs *Resources) Get(svcKey serviceKey, name string) (*ResourceConfig, bool)

Get a specific Resource cfg

func (*Resources) GetAll

func (rs *Resources) GetAll(svcKey serviceKey) ResourceConfigs

Get all configurations for a specific backend

func (*Resources) GetAllResources added in v1.4.0

func (rs *Resources) GetAllResources() ResourceConfigs

func (*Resources) GetAllWithName

func (rs *Resources) GetAllWithName(name string) (ResourceConfigs, []serviceKey)

Get all configurations with a specific name, spanning multiple backends This is for multi-service ingress

func (*Resources) GetByName added in v1.4.0

func (rs *Resources) GetByName(name string) (*ResourceConfig, bool)

Get a specific Resource cfg

func (*Resources) Init

func (rs *Resources) Init()

Receiver to initialize the object.

func (*Resources) PoolCount added in v1.4.0

func (rs *Resources) PoolCount() int

Count of all pools (svcKeys) currently stored.

func (*Resources) UpdateDependencies added in v1.4.1

func (rs *Resources) UpdateDependencies(
	newKey ObjectDependency,
	newDeps ObjectDependencies,
	svcDepKey ObjectDependency,
	lookupFunc func(key ObjectDependency) bool,
) ([]ObjectDependency, []ObjectDependency)

UpdateDependencies will keep the rs.objDeps map updated, and return two arrays identifying what has changed - added for dependencies that were added, and removed for dependencies that were removed.

func (*Resources) VirtualCount added in v1.4.0

func (rs *Resources) VirtualCount() int

Count of all virtuals currently stored.

type RouteConfig added in v1.2.0

type RouteConfig struct {
	RouteVSAddr string
	RouteLabel  string
	HttpVs      string
	HttpsVs     string
	ClientSSL   string
	ServerSSL   string
}

Configuration options for Routes in OpenShift

type RouteMap added in v1.11.1

type RouteMap map[string]*routeapi.Route

type RouteService added in v1.4.0

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

type Routes added in v1.2.0

type Routes []*routeapi.Route

func (Routes) Len added in v1.2.0

func (slice Routes) Len() int

func (Routes) Less added in v1.2.0

func (slice Routes) Less(i, j int) bool

func (Routes) Swap added in v1.2.0

func (slice Routes) Swap(i, j int)

type Rule

type Rule struct {
	Name       string       `json:"name"`
	FullURI    string       `json:"-"`
	Ordinal    int          `json:"ordinal,omitempty"`
	Actions    []*action    `json:"actions,omitempty"`
	Conditions []*condition `json:"conditions,omitempty"`
}

Rule config for a Policy

type Rules

type Rules []*Rule

func (Rules) Len

func (r Rules) Len() int

func (Rules) Less

func (r Rules) Less(i, j int) bool

func (Rules) Swap

func (r Rules) Swap(i, j int)

type ServiceFwdRuleMap added in v1.4.0

type ServiceFwdRuleMap map[serviceQueueKey]HostFwdRuleMap

key is namespace/serviceName, data is map of host to paths.

func NewServiceFwdRuleMap added in v1.4.0

func NewServiceFwdRuleMap() ServiceFwdRuleMap

func (ServiceFwdRuleMap) AddEntry added in v1.4.0

func (sfrm ServiceFwdRuleMap) AddEntry(ns, svc, host, path string)

func (ServiceFwdRuleMap) AddToDataGroup added in v1.4.0

func (sfrm ServiceFwdRuleMap) AddToDataGroup(dgMap DataGroupNamespaceMap)

type SourceAddrTranslation added in v1.5.0

type SourceAddrTranslation struct {
	Type string `json:"type"`
	Pool string `json:"pool,omitempty"`
}

Virtual Server Source Address Translation

type Virtual

type Virtual struct {
	Name                  string                `json:"name"`
	PoolName              string                `json:"pool,omitempty"`
	Partition             string                `json:"-"`
	Destination           string                `json:"destination"`
	Enabled               bool                  `json:"enabled"`
	IpProtocol            string                `json:"ipProtocol,omitempty"`
	SourceAddrTranslation SourceAddrTranslation `json:"sourceAddressTranslation,omitempty"`
	Policies              []nameRef             `json:"policies,omitempty"`
	IRules                []string              `json:"rules,omitempty"`
	Profiles              ProfileRefs           `json:"profiles,omitempty"`
	Description           string                `json:"description,omitempty"`
	VirtualAddress        *virtualAddress       `json:"-"`
}

Virtual server config

func (*Virtual) AddIRule added in v1.2.0

func (v *Virtual) AddIRule(ruleName string) bool

Adds an IRule reference to a Virtual object

func (*Virtual) AddOrUpdateProfile added in v1.2.0

func (v *Virtual) AddOrUpdateProfile(prof ProfileRef) bool

func (*Virtual) GetProfileCountByContext added in v1.2.0

func (v *Virtual) GetProfileCountByContext(context string) int

func (*Virtual) ReferencesProfile added in v1.2.0

func (v *Virtual) ReferencesProfile(profile CustomProfile) bool

func (*Virtual) RemoveIRule added in v1.4.2

func (v *Virtual) RemoveIRule(ruleName string) bool

Removes an IRule reference from a Virtual object

func (*Virtual) RemoveProfile added in v1.2.0

func (v *Virtual) RemoveProfile(prof ProfileRef) bool

func (*Virtual) SetVirtualAddress added in v1.4.0

func (v *Virtual) SetVirtualAddress(bindAddr string, port int32)

func (*Virtual) ToString

func (v *Virtual) ToString() string

type Virtuals added in v1.2.0

type Virtuals []Virtual

func (Virtuals) Len added in v1.2.0

func (slice Virtuals) Len() int

Sorting methods for unit testing

func (Virtuals) Less added in v1.2.0

func (slice Virtuals) Less(i, j int) bool

func (Virtuals) Swap added in v1.2.0

func (slice Virtuals) Swap(i, j int)

type WatchedNamespaces added in v1.9.2

type WatchedNamespaces struct {
	Namespaces     []string
	NamespaceLabel string
}

Watched Namespaces for global availability.

Jump to

Keyboard shortcuts

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