v1alpha1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the ako v1alpha1 API group +kubebuilder:object:generate=true +groupName=ako.vmware.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "ako.vmware.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AKOConfig

type AKOConfig struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   AKOConfigSpec   `json:"spec,omitempty"`
	Status AKOConfigStatus `json:"status,omitempty"`
}

AKOConfig is the Schema for the akoconfigs API

func (*AKOConfig) DeepCopy

func (in *AKOConfig) DeepCopy() *AKOConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKOConfig.

func (*AKOConfig) DeepCopyInto

func (in *AKOConfig) DeepCopyInto(out *AKOConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AKOConfig) DeepCopyObject

func (in *AKOConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AKOConfigList

type AKOConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []AKOConfig `json:"items"`
}

AKOConfigList contains a list of AKOConfig

func (*AKOConfigList) DeepCopy

func (in *AKOConfigList) DeepCopy() *AKOConfigList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKOConfigList.

func (*AKOConfigList) DeepCopyInto

func (in *AKOConfigList) DeepCopyInto(out *AKOConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AKOConfigList) DeepCopyObject

func (in *AKOConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type AKOConfigSpec

type AKOConfigSpec struct {
	// ImageRepository is where the AKO controller resides.
	ImageRepository string `json:"imageRepository,omitempty"`
	// ImagePullPolicy defines when the AKO controller image gets pulled.
	ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
	// ReplicaCount defines the number of replicas for AKO Statefulset
	ReplicaCount          int `json:"replicaCount,omitempty"`
	AKOSettings           `json:"akoSettings,omitempty"`
	NetworkSettings       `json:"networkSettings,omitempty"`
	L7Settings            `json:"l7Settings,omitempty"`
	L4Settings            `json:"l4Settings,omitempty"`
	ControllerSettings    `json:"controllerSettings,omitempty"`
	NodePortSelector      `json:"nodePortSelector,omitempty"`
	Resources             `json:"resources,omitempty"`
	Rbac                  `json:"rbac,omitempty"`
	PersistentVolumeClaim string `json:"pvc,omitempty"`
	MountPath             string `json:"mountPath,omitempty"`
	LogFile               string `json:"logFile,omitempty"`
}

AKOConfigSpec defines the desired state of AKOConfig

func (*AKOConfigSpec) DeepCopy

func (in *AKOConfigSpec) DeepCopy() *AKOConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKOConfigSpec.

func (*AKOConfigSpec) DeepCopyInto

func (in *AKOConfigSpec) DeepCopyInto(out *AKOConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AKOConfigStatus

type AKOConfigStatus struct {
	State string `json:"state,omitempty"`
}

AKOConfigStatus defines the observed state of AKOConfig

func (*AKOConfigStatus) DeepCopy

func (in *AKOConfigStatus) DeepCopy() *AKOConfigStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKOConfigStatus.

func (*AKOConfigStatus) DeepCopyInto

func (in *AKOConfigStatus) DeepCopyInto(out *AKOConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AKOSettings

type AKOSettings struct {
	// LogLevel defines the log level to be used by the AKO controller
	LogLevel LogLevelType `json:"logLevel,omitempty"`
	// EnableEvents controls whether AKO broadcasts Events in the cluster or not
	EnableEvents bool `json:"enableEvents,omitempty"`
	// FullSyncFrequency defines the interval at which full sync is carried out by the AKO controller
	FullSyncFrequency string `json:"fullSyncFrequency,omitempty"`
	// APIServerPort is the port at which the AKO API server runs
	APIServerPort int `json:"apiServerPort,omitempty"`
	// DeleteConfig is set if clean up is required by AKO
	DeleteConfig bool `json:"deleteConfig,omitempty"`
	// DisableStaticRouteSync is set if the static route sync is not required
	DisableStaticRouteSync bool `json:"disableStaticRouteSync,omitempty"`
	// ClusterName is used to identify a cluster
	ClusterName string `json:"clusterName,omitempty"`
	// CNIPlugin specifies the CNI to be used
	CNIPlugin string `json:"cniPlugin,omitempty"`
	// Namespace selector specifies the namespace labels from which AKO should sync from
	NSSelector NamespaceSelector `json:"namespaceSelector,omitempty"`
	// EnableEVH enables the Enhanced Virtual Hosting Model in Avi Controller for the Virtual Services
	EnableEVH bool `json:"enableEVH,omitempty"`
	// Layer7Only enables AKO to do Layer 7 loadbalancing only
	Layer7Only bool `json:"layer7Only,omitempty"`
	// ServicesAPI enables AKO to do Layer 4 loadbalancing using Services API
	ServicesAPI bool `json:"servicesAPI,omitempty"`
	// VipPerNamespace enables AKO to create Parent VS per Namespace in EVH mode
	VipPerNamespace bool `json:"vipPerNamespace,omitempty"`
	// IstioEnabled flag needs to be enabled when AKO is be to brought up in an Istio environment
	IstioEnabled bool `json:"istioEnabled,omitempty"`
	// BlockedNamespaceList is the list of system namespaces from which AKO will not listen any Kubernetes or Openshift object event.
	BlockedNamespaceList []string `json:"blockedNamespaceList,omitempty"`
	// IPFamily specifies IP family to be used. This flag can take values V4 or V6 (default V4). This is for the backend pools to use ipv6 or ipv4. For frontside VS, use v6cidr.
	IPFamily string `json:"ipFamily,omitempty"`
	// UseDefaultSecretsOnly flag if set to true, AKO will only handle default secrets from the namespace where AKO is installed. This flag is applicable only to Openshift clusters.
	UseDefaultSecretsOnly bool `json:"useDefaultSecretsOnly,omitempty"`
}

AKOSettings defines the settings required for the AKO controller

func (*AKOSettings) DeepCopy

func (in *AKOSettings) DeepCopy() *AKOSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AKOSettings.

func (*AKOSettings) DeepCopyInto

func (in *AKOSettings) DeepCopyInto(out *AKOSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerSettings

type ControllerSettings struct {
	// ServiceEngineGroupName is the name of the Serviceengine group in Avi
	ServiceEngineGroupName string `json:"serviceEngineGroupName,omitempty"`
	// ControllerVersion is the Avi controller version
	ControllerVersion string `json:"controllerVersion,omitempty"`
	// CloudName is the name of the cloud to be used in Avi
	CloudName string `json:"cloudName,omitempty"`
	// ControllerIP is the IP address of the Avi Controller
	ControllerIP string `json:"controllerIP,omitempty"`
	// TenantsPerCluster if set to true, AKO will map each k8s cluster uniquely to a tenant
	// in Avi
	TenantsPerCluster bool `json:"tenantsPerCluster,omitempty"`
	// TenantName is the name of the tenant where all AKO objects will be created in Avi.
	TenantName string `json:"tenantName,omitempty"`
}

ControllerSettings defines the Avi Controller parameters

func (*ControllerSettings) DeepCopy

func (in *ControllerSettings) DeepCopy() *ControllerSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerSettings.

func (*ControllerSettings) DeepCopyInto

func (in *ControllerSettings) DeepCopyInto(out *ControllerSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type L4Settings

type L4Settings struct {
	// AdvancedL4 specifies whether the AKO controller should listen for the Gateway objects
	AdvancedL4 bool `json:"advancedL4,omitempty"`
	// DefaultDomain is the default domain
	DefaultDomain string `json:"defaultDomain,omitempty"`
	//Specifies the FQDN pattern - default, flat or disabled
	AutoFQDN string `json:"autoFQDN,omitempty"`
}

L4Settings defines the L4 configuration for the AKO controller

func (*L4Settings) DeepCopy

func (in *L4Settings) DeepCopy() *L4Settings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L4Settings.

func (*L4Settings) DeepCopyInto

func (in *L4Settings) DeepCopyInto(out *L4Settings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type L7Settings

type L7Settings struct {
	// DefaultIngController specifies whether AKO controller is the default ingress controller
	DefaultIngController bool `json:"defaultIngController,omitempty"`
	// ServiceType defines the service type: ClusterIP, NodePort or NodePortLocal
	ServiceType ServiceTypeStr `json:"serviceType,omitempty"`
	// ShardVSSize specifies the number of shard VSs to be created
	ShardVSSize VSSize `json:"shardVSSize,omitempty"`
	// PassthroughShardSize specifies the number of shard VSs to be created for passthrough routes
	PassthroughShardSize PassthroughVSSize `json:"passthroughShardSize,omitempty"`
	// SyncNamespace takes in a namespace from which AKO will sync the objects
	SyncNamespace string `json:"syncNamespace,omitempty"`
	// NoPGForSNI removes Avi PoolGroups from SNI VSes
	NoPGForSNI bool `json:"noPGForSNI,omitempty"`
}

L7Settings defines the L7 configuration for the AKO controller

func (*L7Settings) DeepCopy

func (in *L7Settings) DeepCopy() *L7Settings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new L7Settings.

func (*L7Settings) DeepCopyInto

func (in *L7Settings) DeepCopyInto(out *L7Settings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LogLevelType

type LogLevelType string

+kubebuilder:validation:Enum=INFO;DEBUG;WARN;ERROR

type NamespaceSelector

type NamespaceSelector struct {
	LabelKey   string `json:"labelKey,omitempty"`
	LabelValue string `json:"labelValue,omitempty"`
}

func (*NamespaceSelector) DeepCopy

func (in *NamespaceSelector) DeepCopy() *NamespaceSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSelector.

func (*NamespaceSelector) DeepCopyInto

func (in *NamespaceSelector) DeepCopyInto(out *NamespaceSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkSettings

type NetworkSettings struct {
	// NodeNetworkList is the list of networks and their cidrs used in pool placement network for vcenter
	// cloud. This is not required for either of these cases:
	// 1. nodeport is enabled
	// 2. static routes are disabled
	// 3. non vcenter clouds
	NodeNetworkList []NodeNetwork `json:"nodeNetworkList,omitempty"`
	// EnableRHI is a cluster wide setting for BGP peering
	EnableRHI bool `json:"enableRHI,omitempty"`
	// T1 Logical Segment mapping for backend network. Only applies to NSX-T cloud.
	NsxtT1LR string `json:"nsxtT1LR,omitempty"`
	// BGPPeerLabels enable selection of BGP peers, for selective VsVip advertisement.
	BGPPeerLabels []string `json:"bgpPeerLabels,omitempty"`
	// VipNetworkList holds the names and subnet information of networks as specified in Avi
	VipNetworkList []VipNetwork `json:"vipNetworkList,omitempty"`
}

NetworkSettings defines the network details required for the AKO controller

func (*NetworkSettings) DeepCopy

func (in *NetworkSettings) DeepCopy() *NetworkSettings

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSettings.

func (*NetworkSettings) DeepCopyInto

func (in *NetworkSettings) DeepCopyInto(out *NetworkSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeNetwork

type NodeNetwork struct {
	NetworkName string   `json:"networkName,omitempty"`
	Cidrs       []string `json:"cidrs,omitempty"`
}

func (*NodeNetwork) DeepCopy

func (in *NodeNetwork) DeepCopy() *NodeNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeNetwork.

func (*NodeNetwork) DeepCopyInto

func (in *NodeNetwork) DeepCopyInto(out *NodeNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodePortSelector

type NodePortSelector struct {
	Key   string `json:"key,omitempty"`
	Value string `json:"value,omitempty"`
}

NodePortSelector defines the node port settings, to be used only if the serviceTYpe is selected NodePort

func (*NodePortSelector) DeepCopy

func (in *NodePortSelector) DeepCopy() *NodePortSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePortSelector.

func (*NodePortSelector) DeepCopyInto

func (in *NodePortSelector) DeepCopyInto(out *NodePortSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PassthroughVSSize

type PassthroughVSSize string

+kubebuilder:validation:Enum=LARGE;MEDIUM;SMALL

type Rbac

type Rbac struct {
	PSPEnable bool `json:"pspEnable,omitempty"`
}

func (*Rbac) DeepCopy

func (in *Rbac) DeepCopy() *Rbac

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rbac.

func (*Rbac) DeepCopyInto

func (in *Rbac) DeepCopyInto(out *Rbac)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceLimits

type ResourceLimits struct {
	CPU    string `json:"cpu,omitempty"`
	Memory string `json:"memory,omitempty"`
}

ResourceLimits defines the limits on cpu and memory for the AKO controller

func (*ResourceLimits) DeepCopy

func (in *ResourceLimits) DeepCopy() *ResourceLimits

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceLimits.

func (*ResourceLimits) DeepCopyInto

func (in *ResourceLimits) DeepCopyInto(out *ResourceLimits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceRequests

type ResourceRequests struct {
	CPU    string `json:"cpu,omitempty"`
	Memory string `json:"memory,omitempty"`
}

ResourceRequests defines the requests for cpu and memory by the AKO controller

func (*ResourceRequests) DeepCopy

func (in *ResourceRequests) DeepCopy() *ResourceRequests

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequests.

func (*ResourceRequests) DeepCopyInto

func (in *ResourceRequests) DeepCopyInto(out *ResourceRequests)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Resources

type Resources struct {
	Limits   ResourceLimits   `json:"limits,omitempty"`
	Requests ResourceRequests `json:"requests,omitempty"`
}

Resources defines the limits and requests for cpu and memory to be used by the AKO controller

func (*Resources) DeepCopy

func (in *Resources) DeepCopy() *Resources

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.

func (*Resources) DeepCopyInto

func (in *Resources) DeepCopyInto(out *Resources)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceTypeStr

type ServiceTypeStr string

+kubebuilder:validation:Enum=NodePort;ClusterIP;NodePortLocal

type VSSize

type VSSize string

+kubebuilder:validation:Enum=LARGE;MEDIUM;SMALL;DEDICATED

type VipNetwork

type VipNetwork struct {
	NetworkName string `json:"networkName,omitempty"`
	Cidr        string `json:"cidr,omitempty"`
	//V6Cidr will enable the VS networks to use ipv6
	V6Cidr string `json:"v6cidr,omitempty"`
}

func (*VipNetwork) DeepCopy

func (in *VipNetwork) DeepCopy() *VipNetwork

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipNetwork.

func (*VipNetwork) DeepCopyInto

func (in *VipNetwork) DeepCopyInto(out *VipNetwork)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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