Documentation
¶
Index ¶
- func CleanupFinished(ctx context.Context, remoteClient client.Client, log logr.Logger) (bool, error)
- type AKOSettings
- type Avicredentials
- type CNI
- type Config
- type ControllerSettings
- type L4Settings
- type L7Settings
- type LoadBalancerAndIngressService
- type NamespaceSelector
- type NetworkSettings
- type NodePortSelector
- type Rbac
- type ServiceType
- type Values
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AKOSettings ¶
type AKOSettings struct {
PrimaryInstance string `yaml:"primary_instance"` // Defines AKO instance is primary or not. Value `true` indicates that AKO instance is primary.
LogLevel string `yaml:"log_level"`
FullSyncFrequency string `yaml:"full_sync_frequency"` // This frequency controls how often AKO polls the Avi controller to update itself with cloud configurations.
ApiServerPort int `yaml:"api_server_port"` // Specify the port for the API server, default is set as 8080 // EmptyAllowed: false
DeleteConfig string `yaml:"delete_config"` // Has to be set to true in configmap if user wants to delete AKO created objects from AVI
DisableStaticRouteSync string `yaml:"disable_static_route_sync"` // If the POD networks are reachable from the Avi SE, set this knob to true.
ClusterName string `yaml:"cluster_name"` // A unique identifier for the kubernetes cluster, that helps distinguish the objects for this cluster in the avi controller. // MUST-EDIT
CniPlugin string `yaml:"cni_plugin"` // Set the string if your CNI is calico or openshift. enum: antrea|calico|canal|flannel|openshift
SyncNamespace string `yaml:"sync_namespace"`
EnableEVH string `yaml:"enable_EVH"` // This enables the Enhanced Virtual Hosting Model in Avi Controller for the Virtual Services
Layer7Only string `yaml:"layer_7_only"` // If this flag is switched on, then AKO will only do layer 7 loadbalancing
ServicesAPI string `yaml:"services_api"` // Flag that enables AKO in services API mode. Currently implemented only for L4.
VIPPerNamespace string `yaml:"vip_per_namespace"`
NamespaceSector NamespaceSelector `yaml:"namespace_selector"`
EnableEvents string `yaml:"enable_events"` // Enables/disables Event broadcasting via AKO
IstioEnabled string `yaml:"istio_enabled"`
BlockedNamespaceList []string `yaml:"-"`
BlockedNamespaceListJson string `yaml:"blocked_namespace_list"`
IpFamily string `yaml:"ip_family"`
UseDefaultSecretsOnly string `yaml:"use_default_secrets_only"`
}
AKOSettings provides the settings for AKO
func DefaultAKOSettings ¶
func DefaultAKOSettings() *AKOSettings
DefaultAKOSettings returns the default AKOSettings
func NewAKOSettings ¶
func NewAKOSettings(clusterName string, obj *akoov1alpha1.AKODeploymentConfig) (settings *AKOSettings)
NewAKOSettings returns a new AKOSettings, allow users to set CniPlugin, ClusterName and DisableStaticRouteSync in runtime
type Avicredentials ¶
type Config ¶
type Config struct {
TkgClusterRole string `yaml:"tkg_cluster_role"`
IsClusterService string `yaml:"is_cluster_service"`
ReplicaCount int `yaml:"replica_count"`
AKOSettings *AKOSettings `yaml:"ako_settings"`
NetworkSettings *NetworkSettings `yaml:"network_settings"`
L7Settings *L7Settings `yaml:"l7_settings"`
L4Settings *L4Settings `yaml:"l4_settings"`
ControllerSettings *ControllerSettings `yaml:"controller_settings"`
NodePortSelector *NodePortSelector `yaml:"nodeport_selector"`
Rbac *Rbac `yaml:"rbac"`
PersistentVolumeClaim string `yaml:"persistent_volume_claim"`
MountPath string `yaml:"mount_path"`
LogFile string `yaml:"log_file"`
Avicredentials Avicredentials `yaml:"avi_credentials"`
}
Config consists of different configurations for Values that includes settings of AKO, networking, L4, L7, Rbac etc
type ControllerSettings ¶
type ControllerSettings struct {
ServiceEngineGroupName string `yaml:"service_engine_group_name"` // Name of the ServiceEngine Group.
ControllerVersion string `yaml:"controller_version"` // The controller API version
CloudName string `yaml:"cloud_name"` // The configured cloud name on the Avi controller.
ControllerIP string `yaml:"controller_ip"`
TenantName string `yaml:"tenant_name"`
}
ControllerSettings outlines settings on the Avi controller that affects AKO's functionality.
func DefaultControllerSettings ¶
func DefaultControllerSettings() *ControllerSettings
DefaultControllerSettings return the default ControllerSettings
func NewControllerSettings ¶
func NewControllerSettings(cloudName, controllerIP, controllerVersion, serviceEngineGroup, tenantName string) (setting *ControllerSettings)
NewControllerSettings returns a ControllerSettings from default, allow setting CloudName, ControllerIP, ControllerVersion and ServiceEngineGroupName
type L4Settings ¶
type L4Settings struct {
DefaultDomain string `yaml:"default_domain"` // If multiple sub-domains are configured in the cloud, use this knob to set the default sub-domain to use for L4 VSes.
AutoFQDN string `yaml:"auto_fqdn"` // ENUM: default(<svc>.<ns>.<subdomain>), flat (<svc>-<ns>.<subdomain>), "disabled"
}
L4Settings outlines all the knobs used to control Layer 4 loadbalancing settings in AKO.
func DefaultL4Settings ¶
func DefaultL4Settings() *L4Settings
DefaultL4Settings returns the default L4Settings
func NewL4Settings ¶
func NewL4Settings(config *akoov1alpha1.AKOL4Config) *L4Settings
NewL4Settings returns a customized L4Settings after parsing the v1alpha1.AKOL4Config
type L7Settings ¶
type L7Settings struct {
DisableIngressClass bool `yaml:"disable_ingress_class"`
DefaultIngController bool `yaml:"default_ing_controller"`
L7ShardingScheme string `yaml:"l7_sharding_scheme"`
ServiceType string `yaml:"service_type"` // enum NodePort|ClusterIP|NodePortLocal
ShardVSSize string `yaml:"shard_vs_size"` // Use this to control the layer 7 VS numbers. This applies to both secure/insecure VSes but does not apply for passthrough. ENUMs: LARGE, MEDIUM, SMALL
PassthroughShardSize string `yaml:"pass_through_shardsize"` // Control the passthrough virtualservice numbers using this ENUM. ENUMs: LARGE, MEDIUM, SMALL
NoPGForSNI bool `yaml:"no_pg_for_SNI"`
EnableMCI string `yaml:"enable_MCI"` // Enabling this flag would tell AKO to start processing multi-cluster ingress objects.
}
L7Settings outlines all the knobs used to control Layer 7 load balancing settings in AKO.
func DefaultL7Settings ¶
func DefaultL7Settings() *L7Settings
DefaultL7Settings returns the default L7Settings
func NewL7Settings ¶
func NewL7Settings(config *akoov1alpha1.AKOIngressConfig) *L7Settings
NewL7Settings returns a customized L7Settings after parsing the v1alpha1.AKOIngressConfig it only modifies ServiceType and ShardVSSize when instructed by the ingressConfig
type LoadBalancerAndIngressService ¶
type LoadBalancerAndIngressService struct {
Name string `yaml:"name"`
Namespace string `yaml:"namespace"`
Config Config `yaml:"config"`
}
LoadBalancerAndIngressService describes the load balancer and ingress service
type NamespaceSelector ¶
type NamespaceSelector struct {
LabelKey string `yaml:"label_key"`
LabelValue string `yaml:"label_value"`
}
NamespaceSelector contains label key and value used for namespace migration. Same label has to be present on namespace/s which needs migration/sync to AKO
type NetworkSettings ¶
type NetworkSettings struct {
SubnetIP string `yaml:"subnet_ip"` // Subnet IP of the vip network
SubnetPrefix string `yaml:"subnet_prefix"` // Subnet Prefix of the vip network
NetworkName string `yaml:"network_name"` // Network Name of the vip network
ControlPlaneNetworkName string `yaml:"control_plane_network_name"` // Control Plane Network Name of the control plane vip network
ControlPlaneNetworkCIDR string `yaml:"control_plane_network_cidr"` // Control Plane Network Cidr of the control plane vip network
NodeNetworkList []v1alpha1.NodeNetwork `yaml:"-"` // This list of network and cidrs are used in pool placement network for vcenter cloud.
NodeNetworkListJson string `yaml:"node_network_list"`
VIPNetworkList []v1alpha1.VIPNetwork `yaml:"-"` // Network information of the VIP network. Multiple networks allowed only for AWS Cloud.
VIPNetworkListJson string `yaml:"vip_network_list"`
EnableRHI string `yaml:"enable_rhi"` // This is a cluster wide setting for BGP peering.
NsxtT1LR string `yaml:"nsxt_t1_lr"`
BGPPeerLabels []string `yaml:"-"` // Select BGP peers using bgpPeerLabels, for selective VsVip advertisement.
BGPPeerLabelsJson string `yaml:"bgp_peer_labels"`
}
NetworkSettings outlines the network settings for virtual services.
func DefaultNetworkSettings ¶
func DefaultNetworkSettings() *NetworkSettings
DefaultNetworkSettings returns default NetworkSettings
func NewNetworkSettings ¶
func NewNetworkSettings(obj *akoov1alpha1.AKODeploymentConfig) (*NetworkSettings, error)
NewNetworkSettings returns a new NetworkSettings allow user to set NetworkName, SubnetIP, SubnetPrefix, NodeNetworkList and VIPNetworkList at runtime
type NodePortSelector ¶
NodePortSelector is only applicable if serviceType is NodePort
func DefaultNodePortSelector ¶
func DefaultNodePortSelector() *NodePortSelector
DefaultNodePortSelector returns the default NodePortSelector
func NewNodePortSelector ¶
func NewNodePortSelector(nodePortSelector *akoov1alpha1.NodePortSelector) *NodePortSelector
NewNodePortSelector returns the NodePortSelector defined in AKODeploymentConfig
type Rbac ¶
type Rbac struct {
PspEnabled bool `yaml:"psp_enabled"`
PspPolicyApiVersion string `yaml:"psp_policy_api_version"`
}
Rbac creates the pod security policy if PspEnabled is set to true
func NewRbac ¶
func NewRbac(config v1alpha1.AKORbacConfig) *Rbac
NewRbac creates a Rbac from the v1alpha1.AKORbacConfig
type ServiceType ¶
type ServiceType string
const ( NodePort ServiceType = "NodePort" ClusterIP ServiceType = "ClusterIP" NodePortLocal ServiceType = "NodePortLocal" )
type Values ¶
type Values struct {
LoadBalancerAndIngressService LoadBalancerAndIngressService `yaml:"loadBalancerAndIngressService"`
}
Values defines the structures of an Ako addon secret string data this constructs the payload (string data) of the corev1.Secret
func NewValues ¶
func NewValues(obj *akoov1alpha1.AKODeploymentConfig, clusterNameSpacedName string) (*Values, error)
NewValues creates a new Values given AKODeploymentConfig and clusterNameSpacedName
func NewValuesFromBytes ¶
NewValuesFromBytes unmarshalls a byte array into an instance of Values