Documentation ¶
Index ¶
- func CreateAgent() agentAS3
- func DeepEqualJSON(decl1, decl2 string) bool
- type AS3Config
- type AS3Manager
- type Action
- type ActionForwardSelect
- type ActionReplaceMap
- type CABundle
- type CertName
- type Certificate
- type ClientTLS
- type Condition
- type Controls
- type DataGroup
- type Declaration
- type IRule
- type Member
- type Monitor
- type Params
- type PolicyCompareString
- type PolicyEndpoint
- type PolicyRule
- type Pool
- type PostManager
- type PostParams
- type Record
- type ResourcePointer
- type ServerTLS
- type Service
- type Tenant
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateAgent ¶
func CreateAgent() agentAS3
func DeepEqualJSON ¶
Types ¶
type AS3Manager ¶
type AS3Manager struct { As3SchemaLatest string Schema string // Override existing as3 declaration with this configmap //OverriderCfgMapName string // Path of schemas reside locally //SchemaLocalPath string // POSTs configuration to BIG-IP using AS3 PostManager *PostManager // To put list of tenants in BIG-IP REST call URL that are in AS3 declaration //FilterTenants bool DefaultPartition string ReqChan chan AS3Config RspChan chan interface{} // contains filtered or unexported fields }
AS3Manager holds all the AS3 orchestration specific config
func NewAS3Manager ¶
func NewAS3Manager(params *Params) *AS3Manager
Create and return a new app manager that meets the Manager interface
func (*AS3Manager) ConfigDeployer ¶
func (am *AS3Manager) ConfigDeployer()
configDeployer blocks on ReqChan whenever gets unblocked posts active configuration to BIG-IP
func (*AS3Manager) IsBigIPAppServicesAvailable ¶
func (am *AS3Manager) IsBigIPAppServicesAvailable() error
Method to verify if App Services are installed or CIS as3 version is compatible with BIG-IP, it will return with error if any one of the requirements are not met
type Action ¶
type Action struct { Type string `json:"type"` Event string `json:"event"` Enabled bool `json:"enabled,omitempty"` Select *ActionForwardSelect `json:"select,omitempty"` Policy *ResourcePointer `json:"policy,omitempty"` Location string `json:"location,omitempty"` Replace *ActionReplaceMap `json:"replace,omitempty"` }
type ActionForwardSelect ¶
type ActionForwardSelect struct { Pool *ResourcePointer `json:"pool,omitempty"` Service *ResourcePointer `json:"service,omitempty"` }
type ActionReplaceMap ¶
type Certificate ¶
type ClientTLS ¶
type ClientTLS struct { Name string `json:"-"` Class string `json:"class"` Label string `json:"label,omitempty"` Remark string `json:"remark,omitempty"` SendSNI string `json:"sendSNI,omitempty"` Ciphers string `json:"ciphers,omitempty"` ServerName string `json:"serverName,omitempty"` ValidateCertificate bool `json:"validateCertificate,omitempty"` TrustCA string `json:"trustCA,omitempty"` IgnoreExpired bool `json:"ignoreExpired,omitempty"` IgnoreUntrusted bool `json:"ignoreUntrusted,omitempty"` SessionTickets bool `json:"sessionTickets,omitempty"` ClientCertificate string `json:"clientCertificate"` }
type Condition ¶
type Condition struct { Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Event string `json:"event,omitempty"` All *PolicyCompareString `json:"all,omitempty"` Index int `json:"index,omitempty"` ServerName *PolicyCompareString `json:"serverName,omitempty"` Host *PolicyCompareString `json:"host,omitempty"` PathSegment *PolicyCompareString `json:"pathSegment,omitempty"` Path *PolicyCompareString `json:"path,omitempty"` Address *PolicyCompareString `json:"address,omitempty"` Normalized bool `json:"normalized"` }
as3Condition maps to Policy_Condition in AS3 Resources
type Declaration ¶
type IRule ¶
type IRule struct { Name string `json:"-"` Class string `json:"class"` IRule *ResourcePointer `json:"iRule"` }
type Monitor ¶
type Monitor struct { Class string `json:"class,omitempty"` Interval int `json:"interval,omitempty"` MonitorType string `json:"monitorType,omitempty"` TargetAddress *string `json:"targetAddress,omitempty"` Timeout int `json:"timeout,omitempty"` TimeUnitilUp *int `json:"timeUntilUp,omitempty"` Adaptive *bool `json:"adaptive,omitempty"` Dscp *int `json:"dscp,omitempty"` Receive string `json:"receive,omitempty"` Send string `json:"send,omitempty"` TargetPort *int `json:"targetPort,omitempty"` ClientCertificate string `json:"clientCertificate,omitempty"` Ciphers string `json:"ciphers,omitempty"` }
type Params ¶
type Params struct { // Package local for unit testing only Schema string SchemaVersion string AS3Validation bool SSLInsecure bool EnableTLS string TLS13CipherGroupReference string Ciphers string //Agent string OverriderCfgMapName string SchemaLocalPath string FilterTenants bool BIGIPUsername string BIGIPPassword string BIGIPURL string TrustedCerts string AS3PostDelay int //ConfigWriter writer.Writer EventChan chan interface{} //Log the AS3 response body in Controller logs LogResponse bool RspChan chan interface{} UserAgent string As3Version string As3Release string // contains filtered or unexported fields }
Struct to allow NewManager to receive all or only specific parameters.
type PolicyCompareString ¶
type PolicyCompareString struct { CaseSensitive bool `json:"caseSensitive,omitempty"` Values []string `json:"values,omitempty"` Operand string `json:"operand,omitempty"` }
as3PolicyCompareString maps to Policy_Compare_String in AS3 Resources
type PolicyEndpoint ¶
type PolicyRule ¶
type Pool ¶
type Pool struct { Name string `json:"-"` Class string `json:"class"` Label string `json:"label"` Remark string `json:"remark,omitempty"` Members []Member `json:"members"` Monitors []ResourcePointer `json:"monitors"` LoadBalancingMode string `json:"loadBalancingMode,omitempty"` MinimumMembersActive int `json:"minimumMembersActive,omitempty"` ReselectTries int `json:"reselectTries,omitempty"` ServiceDownAction string `json:"serviceDownAction,omitempty"` SlowRampTime int `json:"slowRampTime,omitempty"` MinimumMonitors int `json:"minimumMonitors,omitempty"` }
type PostManager ¶
type PostManager struct { PostParams // contains filtered or unexported fields }
func NewPostManager ¶
func NewPostManager(params PostParams) *PostManager
func (*PostManager) DeletePartition ¶
func (postMgr *PostManager) DeletePartition(tenants []string) error
func (*PostManager) GetBigipAS3Version ¶
func (postMgr *PostManager) GetBigipAS3Version() (string, string, error)
type PostParams ¶
type ResourcePointer ¶
type ServerTLS ¶
type ServerTLS struct { Name string `json:"-"` Class string `json:"class"` Label string `json:"label"` Remark string `json:"remark,omitempty"` Certificates []CertName `json:"certificates"` RequireSNI string `json:"requireSNI,omitempty"` Ciphers string `json:"ciphers,omitempty"` CipherGroup *ResourcePointer `json:"cipherGroup,omitempty"` Tls1_3Enabled bool `json:"tls1_3Enabled,omitempty"` RenegotiationEnabled *bool `json:"renegotiationEnabled,omitempty"` AuthenticationTrustCA string `json:"authenticationTrustCA,omitempty"` AuthenticationMode string `json:"authenticationMode"` AuthenticationFrequency string `json:"authenticationFrequency,omitempty"` }
type Service ¶
type Service struct { Name string `json:"-"` Class string `json:"class"` Layer4 string `json:"layer4,omitempty"` Source string `json:"source,omitempty"` TranslateServerAddress bool `json:"translateServerAddress,omitempty"` TranslateServerPort bool `json:"translateServerPort,omitempty"` ServerTLS string `json:"serverTLS,omitempty"` ClientTLS string `json:"clientTLS,omitempty"` VirtualPort int `json:"virtualPort"` VirtualAddresses []string `json:"virtualAddresses"` SNAT string `json:"snat,omitempty"` Pool string `json:"pool,omitempty"` PersistenceMethods []string `json:"persistenceMethods,omitempty"` PolicyEndpoint string `json:"policyEndpoint,omitempty"` IRules []string `json:"iRules,omitempty"` Redirect80 *bool `json:"redirect80,omitempty"` }
Click to show internal directories.
Click to hide internal directories.