v1alpha1

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	TKGSystemNamespace            = "tkg-system"
	TKGClusterNameLabel           = "tkg.tanzu.vmware.com/cluster-name"
	TKGClusterNameSpaceLabel      = "tkg.tanzu.vmware.com/cluster-namespace"
	TKGManagememtClusterRoleLabel = "cluster-role.tkg.tanzu.vmware.com/management"

	TKGAddonAnnotationKey          = "tkg.tanzu.vmware.com/addon-type"
	TKGAddOnLabelAddonNameKey      = "tkg.tanzu.vmware.com/addon-name"
	TKGAddOnLabelClusterNameKey    = "tkg.tanzu.vmware.com/cluster-name"
	TKGAddOnLabelClusterctlKey     = "clusterctl.cluster.x-k8s.io/move"
	TKGAddOnSecretType             = "tkg.tanzu.vmware.com/addon"
	TKGClusterClassAddOnSecretType = "clusterbootstrap-secret"
	TKGAddOnSecretDataKey          = "values.yaml"
	TKGDataValueFormatString       = "#@data/values\n#@overlay/match-child-defaults missing_ok=True\n---\n"
	TKGSkipDeletePkgiAnnotationKey = "run.tanzu.vmware.com/skip-packageinstall-deletion"

	ManagementClusterAkoDeploymentConfig = "install-ako-for-management-cluster"
	WorkloadClusterAkoDeploymentConfig   = "install-ako-for-all"

	AkoUserRoleName                  = "ako-essential-role"
	ClusterFinalizer                 = "ako-operator.networking.tkg.tanzu.vmware.com"
	AkoDeploymentConfigFinalizer     = "ako-operator.networking.tkg.tanzu.vmware.com"
	AkoDeploymentConfigKind          = "AKODeploymentConfig"
	AkoDeploymentConfigVersion       = "networking.tanzu.vmware.com/v1alpha1"
	AkoStatefulSetName               = "ako"
	AkoConfigMapName                 = "avi-k8s-config"
	AkoConfigMapCloudNameKey         = "cloudName"
	AkoConfigMapControllerIPKey      = "controllerIP"
	AkoConfigMapVipNetworkListKey    = "vipNetworkList"
	AkoClusterBootstrapRefNamePrefix = "load-balancer-and-ingress-service.tanzu.vmware.com"
	AkoPackageInstallName            = "load-balancer-and-ingress-service"
	AkoPreferredIPAnnotation         = "ako.vmware.com/load-balancer-ip"

	AviClusterLabel                                              = "networking.tkg.tanzu.vmware.com/avi"
	AviClusterDeleteConfigLabel                                  = "networking.tkg.tanzu.vmware.com/avi-config-delete"
	AviClusterSecretType                                         = "avi.cluster.x-k8s.io/secret"
	AviNamespace                                                 = "avi-system"
	AviCredentialName                                            = "avi-controller-credentials"
	AviCAName                                                    = "avi-controller-ca"
	AviCertificateKey                                            = "certificateAuthorityData"
	AviResourceCleanupReason                                     = "AviResourceCleanup"
	AviResourceCleanupSucceededCondition clusterv1.ConditionType = "AviResourceCleanupSucceeded"
	AviUserCleanupSucceededCondition     clusterv1.ConditionType = "AviUserCleanupSucceeded"
	PreTerminateAnnotation                                       = clusterv1.PreTerminateDeleteHookAnnotationPrefix + "/avi-cleanup"

	HAServiceName                      = "control-plane"
	HAServiceBootstrapClusterFinalizer = "ako-operator.networking.tkg.tanzu.vmware.com/ha"
	HAServiceAnnotationsKey            = "skipnodeport.ako.vmware.com/enabled"
	HAAVIInfraSettingAnnotationsKey    = "aviinfrasetting.ako.vmware.com/name"

	AKODeploymentConfigControllerName = "akodeploymentconfig-controller"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "networking.tkg.tanzu.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 AKODeploymentConfig

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

	Spec   AKODeploymentConfigSpec   `json:"spec,omitempty"`
	Status AKODeploymentConfigStatus `json:"status,omitempty"`
}

AKODeploymentConfig is the Schema for the akodeploymentconfigs API

func (*AKODeploymentConfig) DeepCopy

func (in *AKODeploymentConfig) DeepCopy() *AKODeploymentConfig

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

func (*AKODeploymentConfig) DeepCopyInto

func (in *AKODeploymentConfig) DeepCopyInto(out *AKODeploymentConfig)

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

func (*AKODeploymentConfig) DeepCopyObject

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

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

func (*AKODeploymentConfig) SetupWebhookWithManager

func (r *AKODeploymentConfig) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*AKODeploymentConfig) ValidateCreate

func (r *AKODeploymentConfig) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*AKODeploymentConfig) ValidateDelete

func (r *AKODeploymentConfig) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*AKODeploymentConfig) ValidateUpdate

func (r *AKODeploymentConfig) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type AKODeploymentConfigList

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

AKODeploymentConfigList contains a list of AKODeploymentConfig

func (*AKODeploymentConfigList) DeepCopy

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

func (*AKODeploymentConfigList) DeepCopyInto

func (in *AKODeploymentConfigList) DeepCopyInto(out *AKODeploymentConfigList)

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

func (*AKODeploymentConfigList) DeepCopyObject

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

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

type AKODeploymentConfigSpec

type AKODeploymentConfigSpec struct {
	// CloudName speficies the AVI Cloud AKO will be deployed with
	CloudName string `json:"cloudName"`

	// Controller is the AVI Controller endpoint to which AKO talks to
	// provision Load Balancer resources
	// The format is [scheme://]address[:port]
	// * scheme                     http or https, defaults to https if not
	//                              specified
	// * address                    IP address of the AVI Controller
	//                              specified
	// * port                       if not specified, use default port for
	//                              the corresponding scheme
	Controller string `json:"controller"`

	// ControllerVersion is the AVI Controller version which AKO Operator and AKO talks to.
	// this value can be auto detected and corrected.
	ControllerVersion string `json:"controllerVersion,omitempty"`

	// ServiceEngineGroup is the group name of Service Engine that's to be used by the set
	// of AKO Deployments
	ServiceEngineGroup string `json:"serviceEngineGroup"`

	// Label selector for Clusters. The Clusters that are
	// selected by this will be the ones affected by this
	// AKODeploymentConfig.
	// It must match the Cluster labels. This field is immutable.
	// +optional
	ClusterSelector metav1.LabelSelector `json:"clusterSelector,omitempty"`

	// WorkloadCredentialRef points to a Secret resource which includes the username
	// and password to access and configure the Avi Controller.
	//
	// * username                   Username used with basic authentication for
	//                              the Avi REST API
	// * password                   Password used with basic authentication for
	//                              the Avi REST API
	//
	// This field is optional. When it's not specified, username/password
	// will be automatically generated for each Cluster and Tenant needs to
	// be non-nil in this case.
	// +optional
	WorkloadCredentialRef SecretReference `json:"workloadCredentialRef,omitempty"`

	// AdminCredentialRef points to a Secret resource which includes the username
	// and password to access and configure the Avi Controller.
	//
	// * username                   Username used with basic authentication for
	//                              the Avi REST API
	// * password                   Password used with basic authentication for
	//                              the Avi REST API
	//
	// This credential needs to be bound with admin tenant and will be used
	// by AKO Operator to automate configurations and operations.
	AdminCredentialRef SecretReference `json:"adminCredentialRef"`

	// CertificateAuthorityRef points to a Secret resource that includes the
	// AVI Controller's CA
	//
	// * certificateAuthorityData   PEM-encoded certificate authority
	//                              certificates
	//
	CertificateAuthorityRef SecretReference `json:"certificateAuthorityRef"`

	// The AVI tenant for the current AKODeploymentConfig
	// This field is optional.
	// +optional
	Tenant AVITenant `json:"tenant,omitempty"`

	// DataNetworks describes the Data Networks the AKO will be deployed
	// with.
	// This field is immutable.
	DataNetwork DataNetwork `json:"dataNetwork"`

	// ControlPlaneNetwork describes the control plane network of the clusters selected by an akoDeploymentConfig
	//
	// +optional
	ControlPlaneNetwork ControlPlaneNetwork `json:"controlPlaneNetwork,omitempty"`

	// ExtraConfigs contains extra configurations for AKO Deployment
	//
	// +optional
	ExtraConfigs ExtraConfigs `json:"extraConfigs,omitempty"`
}

AKODeploymentConfigSpec defines the desired state of an AKODeploymentConfig AKODeploymentConfig describes the shared configurations for AKO deployments across a set of Clusters.

func (*AKODeploymentConfigSpec) DeepCopy

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

func (*AKODeploymentConfigSpec) DeepCopyInto

func (in *AKODeploymentConfigSpec) DeepCopyInto(out *AKODeploymentConfigSpec)

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

type AKODeploymentConfigStatus

type AKODeploymentConfigStatus struct {
	// ObservedGeneration reflects the generation of the most recently
	// observed AKODeploymentConfig.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Conditions defines current state of the AKODeploymentConfig.
	// +optional
	Conditions clusterv1.Conditions `json:"conditions,omitempty"`
}

AKODeploymentConfigStatus defines the observed state of AKODeploymentConfig

func (*AKODeploymentConfigStatus) DeepCopy

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

func (*AKODeploymentConfigStatus) DeepCopyInto

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

type AKOIngressConfig

type AKOIngressConfig struct {
	// DisableIngressClass will prevent AKO Operator to install AKO
	// IngressClass into workload clusters for old version of K8s
	//
	// +optional
	DisableIngressClass *bool `json:"disableIngressClass,omitempty"`

	// DefaultIngressController bool describes ako is the default
	// ingress controller to use
	//
	// +optional
	DefaultIngressController *bool `json:"defaultIngressController,omitempty"`

	// ServiceType string describes ingress methods for a service
	// Valid value should be NodePort, ClusterIP and NodePortLocal
	// +kubebuilder:validation:Enum=NodePort;ClusterIP;NodePortLocal
	// +optional
	ServiceType string `json:"serviceType,omitempty"`

	// ShardVSSize describes ingress shared virtual service size
	// Valid value should be SMALL, MEDIUM, LARGE or DEDICATED, default value is SMALL
	// +kubebuilder:validation:Enum=SMALL;MEDIUM;LARGE;DEDICATED
	// +optional
	ShardVSSize string `json:"shardVSSize,omitempty"`

	// PassthroughShardSize controls the passthrough virtualservice numbers
	// Valid value should be SMALL, MEDIUM or LARGE, default value is SMALL
	// +kubebuilder:validation:Enum=SMALL;MEDIUM;LARGE
	// +optional
	PassthroughShardSize string `json:"passthroughShardSize,omitempty"`

	// NodeNetworkList describes the details of network and CIDRs
	// are used in pool placement network for vcenter cloud. Node Network details
	// are not needed when in NodePort mode / static routes are disabled / non vcenter clouds.
	// +optional
	NodeNetworkList []NodeNetwork `json:"nodeNetworkList,omitempty"`

	// NoPGForSNI describes if you want to get rid of poolgroups from SNI VSes.
	// Do not use this flag, if you don't want http caching, default value is false.
	// +optional
	NoPGForSNI *bool `json:"noPGForSNI,omitempty"`

	// Enabling this flag would tell AKO to start processing multi-cluster ingress objects
	// +optional
	EnableMCI *bool `json:"enableMCI,omitempty"`
}

AKOIngressConfig contains ingress configurations for AKO Deployment

func (*AKOIngressConfig) DeepCopy

func (in *AKOIngressConfig) DeepCopy() *AKOIngressConfig

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

func (*AKOIngressConfig) DeepCopyInto

func (in *AKOIngressConfig) DeepCopyInto(out *AKOIngressConfig)

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

type AKOL4Config

type AKOL4Config struct {
	// DefaultDomain controls the default sub-domain to use for L4 VSes when multiple sub-domains
	// are configured in the cloud.
	// +optional
	DefaultDomain string `json:"defaultDomain,omitempty"`

	// AutoFQDN controls the FQDN generation.
	// Valid value should be default(<svc>.<ns>.<subdomain>), flat (<svc>-<ns>.<subdomain>) or disabled,
	// +kubebuilder:validation:Enum=default;flat;disabled
	// +optional
	AutoFQDN string `json:"autoFQDN,omitempty"`
}

AKOL4Config contains L4 load balancer configurations for AKO Deployment

func (*AKOL4Config) DeepCopy

func (in *AKOL4Config) DeepCopy() *AKOL4Config

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

func (*AKOL4Config) DeepCopyInto

func (in *AKOL4Config) DeepCopyInto(out *AKOL4Config)

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

type AKOLogConfig

type AKOLogConfig struct {
	// LogLevel specifies the AKO pod log level
	// Valid value should be INFO, DEBUG, WARN or ERROR, default value is INFO
	// +kubebuilder:validation:Enum=INFO;DEBUG;WARN;ERROR
	// +optional
	LogLevel string `json:"logLevel,omitempty"`

	// PersistentVolumeClaim specifies if a PVC should make for AKO logging
	// +optional
	PersistentVolumeClaim string `json:"persistentVolumeClaim,omitempty"`

	// MountPath specifies the path to mount PVC
	// +optional
	MountPath string `json:"mountPath,omitempty"`

	// LogFile specifies the log file name
	// +optional
	LogFile string `json:"logFile,omitempty"`
}

func (*AKOLogConfig) DeepCopy

func (in *AKOLogConfig) DeepCopy() *AKOLogConfig

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

func (*AKOLogConfig) DeepCopyInto

func (in *AKOLogConfig) DeepCopyInto(out *AKOLogConfig)

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

type AKORbacConfig

type AKORbacConfig struct {
	// PspPolicyAPIVersion decides the API version of the PodSecurityPolicy
	PspPolicyAPIVersion string `json:"pspPolicyAPIVersion,omitempty"`

	// PspEnabled enables the deployment of a PodSecurityPolicy that grants
	// AKO the proper role
	// +optional
	PspEnabled *bool `json:"pspEnabled,omitempty"`
}

func (*AKORbacConfig) DeepCopy

func (in *AKORbacConfig) DeepCopy() *AKORbacConfig

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

func (*AKORbacConfig) DeepCopyInto

func (in *AKORbacConfig) DeepCopyInto(out *AKORbacConfig)

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

type AVITenant

type AVITenant struct {
	// Context is the type of AVI tenant context. Defaults to Provider. This field is immutable.
	// +kubebuilder:validation:Enum=Provider;Tenant
	Context string `json:"context,omitempty"`

	// Name is the name of the tenant. This field is immutable.
	Name string `json:"name"`
}

AVITenant describes settings for an AVI Tenant object

func (*AVITenant) DeepCopy

func (in *AVITenant) DeepCopy() *AVITenant

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

func (*AVITenant) DeepCopyInto

func (in *AVITenant) DeepCopyInto(out *AVITenant)

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

type ControlPlaneNetwork

type ControlPlaneNetwork struct {
	Name string `json:"name"`
	CIDR string `json:"cidr"`
}

ControlPlaneNetwork describes the ControlPlane Network of the clusters selected by an akoDeploymentConfig

func (*ControlPlaneNetwork) DeepCopy

func (in *ControlPlaneNetwork) DeepCopy() *ControlPlaneNetwork

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

func (*ControlPlaneNetwork) DeepCopyInto

func (in *ControlPlaneNetwork) DeepCopyInto(out *ControlPlaneNetwork)

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

type DataNetwork

type DataNetwork struct {
	Name    string   `json:"name"`
	CIDR    string   `json:"cidr"`
	IPPools []IPPool `json:"ipPools,omitempty"`
}

DataNetwork describes one AVI Data Network

func (*DataNetwork) DeepCopy

func (in *DataNetwork) DeepCopy() *DataNetwork

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

func (*DataNetwork) DeepCopyInto

func (in *DataNetwork) DeepCopyInto(out *DataNetwork)

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

type ExtraConfigs

type ExtraConfigs struct {
	// Defines AKO instance is primary or not. Value `true` indicates that AKO instance is primary.
	// In a multiple AKO deployment in a cluster, only one AKO instance should be primary.
	// Default value: true.
	// +optional
	PrimaryInstance *bool `json:"primaryInstance,omitempty"`

	// Log specifies the configuration for AKO logging
	// +optional
	Log AKOLogConfig `json:"log,omitempty"`

	// FullSyncFrequency controls how often AKO polls the Avi controller to update itself
	// with cloud configurations. Default value is 1800
	// +optional
	FullSyncFrequency string `json:"fullSyncFrequency,omitempty"`

	// ApiServerPort specifies Internal port for AKO's API server for the liveness probe of the AKO pod
	// default port is 8080
	// +optional
	ApiServerPort *int `json:"apiServerPort,omitempty"`

	// Defines Enable or disable Event broadcasting via AKO
	// +optional
	EnableEvents *bool `json:"enableEvents,omitempty"`

	// DisableStaticRouteSync describes ako should sync static routing or not.
	// If the POD networks are reachable from the Avi SE, this should be to true.
	// Otherwise, it should be false.
	// It would be true by default.
	// +optional
	DisableStaticRouteSync *bool `json:"disableStaticRouteSync,omitempty"`

	// CniPlugin describes which cni plugin cluster is using.
	// default value is antrea, set this string if cluster cni is other type.
	// AKO supported CNI: antrea|calico|canal|flannel|openshift|ncp
	// +kubebuilder:validation:Enum=antrea;calico;canal;flannel;openshift;ncp
	// +optional
	CniPlugin string `json:"cniPlugin,omitempty"`

	// EnableEVH specifies if you want to enable the Enhanced Virtual Hosting Model
	// in Avi Controller for the Virtual Services, default value is false
	// +optional
	EnableEVH *bool `json:"enableEVH,omitempty"`

	// Layer7Only specifies if you want AKO only to do layer 7 load balancing.
	// default value is false
	// +optional
	Layer7Only *bool `json:"layer7Only,omitempty"`

	// 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
	// +optional
	NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty"`

	// ServicesAPI specifies if enables AKO in services API mode: https://kubernetes-sigs.github.io/service-apis/.
	// Currently, implemented only for L4. This flag uses the upstream GA APIs which are not backward compatible
	// with the advancedL4 APIs which uses a fork and a version of v1alpha1pre1
	// default value is false
	// +optional
	ServicesAPI *bool `json:"servicesAPI,omitempty"`

	// Enabling this flag would tell AKO to create Parent VS per Namespace in EVH mode
	// default value is false
	// +optional
	VIPPerNamespace *bool `json:"vipPerNamespace,omitempty"`

	// This flag needs to be enabled when AKO is be to brought up in an Istio environment
	// default value is false
	// +optional
	IstioEnabled *bool `json:"istioEnabled,omitempty"`

	// This is the list of system namespaces from which AKO will not listen any Kubernetes object event.
	// +optional
	BlockedNamespaceList []string `json:"blockedNamespaceList,omitempty"`

	// This flag can take values V4 or V6 (default V4)
	// default value is V4
	// +kubebuilder:validation:Enum=V4;V6
	// +optional
	IpFamily string `json:"ipFamily,omitempty"`

	// If this flag is set to true, AKO will only handle default secrets from the namespace where AKO is installed
	// This flag is applicable only to Openshift clusters
	// default value is false
	// +optional
	UseDefaultSecretsOnly *bool `json:"useDefaultSecretsOnly,omitempty"`

	// NetworksConfig specifies the network configurations for virtual services.
	// +optional
	NetworksConfig NetworksConfig `json:"networksConfig,omitempty"`

	// IngressConfigs specifies ingress configuration for ako
	// +optional
	IngressConfigs AKOIngressConfig `json:"ingress,omitempty"`

	// IngressConfigs specifies L4 load balancer configuration for ako
	// +optional
	L4Configs AKOL4Config `json:"l4Config,omitempty"`

	// NodePortSelector only applicable if serviceType is NodePort
	// +optional
	NodePortSelector NodePortSelector `json:"nodePortSelector,omitempty"`

	// Rbac specifies the configuration for AKO Rbac
	// +optional
	Rbac AKORbacConfig `json:"rbac,omitempty"`
}

ExtraConfigs contains extra configurations for AKO Deployment

func (*ExtraConfigs) DeepCopy

func (in *ExtraConfigs) DeepCopy() *ExtraConfigs

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

func (*ExtraConfigs) DeepCopyInto

func (in *ExtraConfigs) DeepCopyInto(out *ExtraConfigs)

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

type IPPool

type IPPool struct {
	// Start represents the starting IP address of the pool.
	Start string `json:"start"`
	// End represents the ending IP address of the pool.
	End string `json:"end"`
	// Type represents the type of IP Address
	// +kubebuilder:validation:Enum=V4;
	Type string `json:"type"`
}

IPPool defines a contiguous range of IP Addresses

func (*IPPool) DeepCopy

func (in *IPPool) DeepCopy() *IPPool

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

func (*IPPool) DeepCopyInto

func (in *IPPool) DeepCopyInto(out *IPPool)

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

type NamespaceSelector

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

NameSpaceSelector contains label key and value used for namespace migration

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 NetworksConfig

type NetworksConfig struct {
	// EnableRHI specifies cluster wide setting for BGP peering.
	// default value is false
	// +optional
	EnableRHI *bool `json:"enableRHI,omitempty"`

	// BGPPeerLabels specifies BGP peers, this is used for selective VsVip advertisement.
	// +optional
	BGPPeerLabels []string `json:"bgpPeerLabels,omitempty"`

	// T1 Logical Segment mapping for backend network. Only applies to NSX-T cloud.
	// +optional
	NsxtT1LR string `json:"nsxtT1LR,omitempty"`
}

func (*NetworksConfig) DeepCopy

func (in *NetworksConfig) DeepCopy() *NetworksConfig

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

func (*NetworksConfig) DeepCopyInto

func (in *NetworksConfig) DeepCopyInto(out *NetworksConfig)

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

type NodeNetwork

type NodeNetwork struct {
	// NetworkName is the name of this network
	// +optional
	NetworkName string `json:"networkName,omitempty"`
	// Cidrs represents all the IP CIDRs in this network
	// +optional
	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 is only applicable if serviceType is 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 SecretRef

type SecretRef struct {
	// Name is the name of resource being referenced.
	Name string `json:"name"`
	// Namespace of the resource being referenced.
	Namespace string `json:"namespace"`
}

SecretRef references a Kind Secret object in the same kubernetes cluster

func (*SecretRef) DeepCopy

func (in *SecretRef) DeepCopy() *SecretRef

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

func (*SecretRef) DeepCopyInto

func (in *SecretRef) DeepCopyInto(out *SecretRef)

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

type SecretReference

type SecretReference *SecretRef

SecretReference pointer to SecretRef

type VIPNetwork

type VIPNetwork struct {
	NetworkName string `json:"networkName"`
	CIDR        string `json:"cidr"`
}

VIPNetwork describes a VIPNetwork in the adc file

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