as3

package
v2.16.1 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

-

  • Copyright (c) 2016-2021, 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 (
	F5TypeLabel      = "f5type"
	VSLabel          = "virtual-server"
	TrueLabel        = "true"
	FalseLabel       = "false"
	OverrideAS3Label = "overrideAS3"
	AS3Label         = "as3"
	StagingAS3Label  = "stagingAS3"
)

cfgMap States

Variables

This section is empty.

Functions

func DeepEqualJSON

func DeepEqualJSON(decl1, decl2 as3Declaration) bool

func ExtractVirtualAddressAndPort

func ExtractVirtualAddressAndPort(str string) (string, int)

func ValidateAndOverrideAS3JsonData

func ValidateAndOverrideAS3JsonData(srcJsonData string, dstJsonData string) string

func ValidateJSONStringAndFetchObject

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

Types

type AS3Config

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

AS3Config consists of all the AS3 related configurations

type AS3ConfigMap

type AS3ConfigMap struct {
	Name      string // AS3 specific ConfigMap name
	Namespace string // AS3 specific ConfigMap namespace

	Validated bool // Json Schema validated ok
	// contains filtered or unexported fields
}

ActiveAS3ConfigMap user defined ConfigMap for global availability.

type AS3Manager

type AS3Manager struct {
	As3SchemaLatest 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

	ReqChan chan MessageRequest
	RspChan chan interface{}

	ResourceRequest
	ResourceResponse
	// 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) CleanAS3Tenant

func (am *AS3Manager) CleanAS3Tenant(partition string) (bool, string)

func (*AS3Manager) ConfigDeployer

func (am *AS3Manager) ConfigDeployer()

configDeployer blocks on ReqChan whenever gets unblocked posts active configuration to BIG-IP

func (*AS3Manager) DeleteAS3Tenant

func (am *AS3Manager) DeleteAS3Tenant(partition string) (bool, string)

Method to delete AS3 partition using partition endpoint

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

func (*AS3Manager) SendARPEntries

func (am *AS3Manager) SendARPEntries()

func (*AS3Manager) SendAgentResponse

func (am *AS3Manager) SendAgentResponse()

Post ARP entries over response channel

type L2L3Agent

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

type Params

type Params struct {
	// Package local for unit testing only
	SchemaLocal               string
	AS3Validation             bool
	SSLInsecure               bool
	IPAM                      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
	LogAS3Response   bool
	LogAS3Request    bool
	ShareNodes       bool
	RspChan          chan interface{}
	UserAgent        string
	As3Version       string
	As3Release       string
	As3SchemaVersion string

	DefaultRouteDomain      int
	PoolMemberType          string
	HTTPClientMetrics       bool
	DisableDefaultPartition bool
	// contains filtered or unexported fields
}

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

type PostManager

type PostManager struct {
	HttpClient *http.Client

	PostParams
	// contains filtered or unexported fields
}

func NewPostManager

func NewPostManager(params PostParams) *PostManager

func (*PostManager) GetBigipAS3Version

func (postMgr *PostManager) GetBigipAS3Version() (string, string, string, error)

func (*PostManager) GetBigipRegKey

func (postMgr *PostManager) GetBigipRegKey() (string, error)

GetBigipRegKey ...

type PostParams

type PostParams struct {
	BIGIPUsername string
	BIGIPPassword string
	BIGIPURL      string
	TrustedCerts  string
	SSLInsecure   bool
	AS3PostDelay  int
	// Log the AS3 response body in Controller logs
	LogAS3Response    bool
	LogAS3Request     bool
	RouteClientV1     routeclient.RouteV1Interface
	HTTPClientMetrics bool
}

Jump to

Keyboard shortcuts

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