consts

package
v1.0.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2024 License: Apache-2.0 Imports: 1 Imported by: 5

Documentation

Overview

Package consts provides most useful constant for Liqo Controllers

Index

Constants

View Source
const (
	// OverrideAddressAnnotation is the annotation used to override the address of a service.
	OverrideAddressAnnotation = "liqo.io/override-address"
	// OverridePortAnnotation is the annotation used to override the port of a service.
	OverridePortAnnotation = "liqo.io/override-port"

	// APIServerSupportAnnotation is the annotation used to enable the API server support for a pod.
	APIServerSupportAnnotation = "liqo.io/api-server-support"
	// APIServerSupportAnnotationValueRemote is the value of the annotation used to enable the API server support for a pod.
	APIServerSupportAnnotationValueRemote = "remote"
	// APIServerSupportAnnotationValueDisabled is the value of the annotation used to disable the API server support for a pod.
	APIServerSupportAnnotationValueDisabled = "disabled"

	// RemoteServiceAccountNameAnnotation is the annotation used to set the name of the service account used by a pod
	// in the remote cluster. This annotation requires the API server support to be "remote" for the pod and the
	// remote service account to be created.
	RemoteServiceAccountNameAnnotation = "liqo.io/remote-service-account-name"

	// LabelsTemplateAnnotationKey contains a cache to store labels keys that belongs to a template.
	LabelsTemplateAnnotationKey = "liqo.io/template-labels"
	// AnnotsTemplateAnnotationKey contains a cache to store annotations keys that belongs to a template.
	AnnotsTemplateAnnotationKey = "liqo.io/template-annotations"

	// UninstallingAnnotationKey is the annotation used to signal liqo is being uninstalled.
	UninstallingAnnotationKey = "liqo.io/uninstalling"
	// UninstallingAnnotationValue is the value of the annotation used to signal liqo is being uninstalled.
	UninstallingAnnotationValue = "true"
)
View Source
const (
	// AuthKeysSecretName is the name of the secret containing the authentication keys.
	AuthKeysSecretName = "authentication-keys"

	// SignedNonceSecretLabelKey is the label key used to identify signed nonce secrets.
	SignedNonceSecretLabelKey = "liqo.io/signed-nonce" //nolint:gosec // this is not a credential
	// NonceSecretLabelKey is the key used to store the Nonce value in the Secret.
	NonceSecretLabelKey = "liqo.io/nonce" //nolint:gosec // this is not a credential

	// NonceSecretField is the field key where the nonce is stored in the secret.
	NonceSecretField = "nonce"
	// SignedNonceSecretField is the field key where the signed nonce is stored in the secret.
	SignedNonceSecretField = "signedNonce"

	// KubeconfigSecretField is the field key where the kubeconfig is stored in the secret.
	KubeconfigSecretField = "kubeconfig"

	// IdentityTypeLabelKey is the label key to indicate the type of Identity.
	IdentityTypeLabelKey = "liqo.io/identity-type"

	// RemoteTenantNamespaceAnnotKey is the annotation key used to store the remote tenant namespace.
	RemoteTenantNamespaceAnnotKey = "liqo.io/remote-tenant-namespace"

	// ResourceSliceNameLabelKey is the label key used to store the name of the resource slice.
	ResourceSliceNameLabelKey = "liqo.io/resourceslice-name"

	// CreatorLabelKey is the label key used to store the creator of a resource.
	CreatorLabelKey = "liqo.io/creator-user"

	// CreateVirtualNodeAnnotation is the value of the annotation that enables the creation of a virtual node.
	CreateVirtualNodeAnnotation = "liqo.io/create-virtual-node"

	// CordonResourceAnnotation is the value of the annotation that enables the cordon of a resource.
	CordonResourceAnnotation = "liqo.io/cordon"

	// CordonTenantAnnotation is the value of the annotation that enables the cordon of a tenant.
	CordonTenantAnnotation = "liqo.io/cordon-tenant"
)
View Source
const (
	// ClusterIDLabelName is the name of the label key to use with Cluster ID.
	ClusterIDLabelName = "clusterID"
	// ClusterIDConfigMapKey is the key of the configmap where the cluster-id is stored.
	ClusterIDConfigMapKey = "CLUSTER_ID"
	// ClusterIDConfigMapNameLabelValue value of the name key of the configmap used to get it by label.
	ClusterIDConfigMapNameLabelValue = "clusterid-configmap"
)
View Source
const (
	// ProviderClusterLabel is the cluster label used to indicate the cluster provider.
	ProviderClusterLabel = "liqo.io/provider"
	// TopologyRegionClusterLabel is the cluster label used to indicate the cluster region.
	TopologyRegionClusterLabel = "topology.kubernetes.io/region"
)
View Source
const (
	// TenantNamespaceLabel used to mark the tenant namespaces.
	TenantNamespaceLabel = "liqo.io/tenant-namespace"

	// VirtualNodeLabel used to mark the virtual nodes.
	VirtualNodeLabel = "liqo.io/virtual-node"

	// LiqoAppLabelValue is the value of the label used to identify Liqo app.
	LiqoAppLabelValue = "liqo"
)
View Source
const (
	// IPCategoryTargetKey is the key used by the IPAM controller to reconcile only resources related to a group.
	IPCategoryTargetKey = "ipam.liqo.io/ip-category"
	// IPCategoryTargetValueMapping is the value used by the IPAM controller to reconcile only resources related to a group.
	IPCategoryTargetValueMapping = "ip-mapping"

	// GatewayResourceLabel is the label added to a gateway resource.
	GatewayResourceLabel = "networking.liqo.io/gateway-resource"
	// GatewayResourceLabelValue is the value of the label added to a gateway resource.
	GatewayResourceLabelValue = "true"

	// GatewayTypeServer indicates a Gateway of type server.
	GatewayTypeServer = "server"
	// GatewayTypeClient indicates a Gateway of type client.
	GatewayTypeClient = "client"

	// PrivateKeyField is the data field of the secrets containing private keys.
	PrivateKeyField = "privateKey"
	// PublicKeyField is the data field of the secrets containing public keys.
	PublicKeyField = "publicKey"

	// ClusterRoleBindingFinalizer is the finalizer added ti the owner when a ClusterRoleBinding is created.
	ClusterRoleBindingFinalizer = "networking.liqo.io/clusterrolebinding"
	// GatewayNameLabel is the label added to a resource to identify the Gateway it belongs to.
	GatewayNameLabel = "networking.liqo.io/gateway-name"
	// GatewayNamespaceLabel is the label added to a resource to identify the namespace of the Gateway it belongs to.
	GatewayNamespaceLabel = "networking.liqo.io/gateway-namespace"
)
View Source
const (
	// DefaultRouteTable is the name of the default table used for routes.
	DefaultRouteTable = "liqo"
	// InternalFabricName is the label used to identify the internal fabric name.
	InternalFabricName = "networking.liqo.io/internal-fabric-name"
	// InternalNodeName is the label used to identify the internal node name.
	InternalNodeName = "networking.liqo.io/internal-node-name"
	// InternalFabricGeneveTunnelFinalizer is the finalizer used to ensure that the geneve tunnel is deleted and the
	// id is freed.
	InternalFabricGeneveTunnelFinalizer = "networking.liqo.io/internal-fabric-geneve-tunnel-finalizer"
)
View Source
const (
	// IpamPort is the port used by the IPAM gRPC server.
	IpamPort = 6000

	// NetworkNotRemappedLabelKey is the label key used to mark a Network that does not need CIDR remapping.
	NetworkNotRemappedLabelKey = "ipam.liqo.io/network-not-remapped"
	// NetworkNotRemappedLabelValue is the label value used to mark a Network that does not need CIDR remapping.
	NetworkNotRemappedLabelValue = "true"

	// NetworkTypeLabelKey is the label key used to indicate the type of a Network.
	NetworkTypeLabelKey = "ipam.liqo.io/network-type"
	// NetworkTypePodCIDR is the constant representing a network of type podCIDR.
	NetworkTypePodCIDR NetworkType = "pod-cidr"
	// NetworkTypeServiceCIDR is the constant representing a network of type serviceCIDR.
	NetworkTypeServiceCIDR NetworkType = "service-cidr"
	// NetworkTypeExternalCIDR is the constant representing a network of type externalCIDR.
	NetworkTypeExternalCIDR NetworkType = "external-cidr"
	// NetworkTypeInternalCIDR is the constant representing a network of type internalCIDR.
	NetworkTypeInternalCIDR NetworkType = "internal-cidr"
	// NetworkTypeReserved is the constant representing a network of type reserved subnet.
	NetworkTypeReserved NetworkType = "reserved"

	// IPTypeLabelKey is the label key used to indicate the type of an IP.
	IPTypeLabelKey = "ipam.liqo.io/ip-type"
	// IPTypeAPIServer is the constant representing an IP of type APIServer.
	IPTypeAPIServer = "api-server"

	// DefaultCIDRValue is the default value for a string that contains a CIDR.
	DefaultCIDRValue = "None"
)
View Source
const (
	// K8sAppNameKey = key of the label used to denote a deployed application name.
	K8sAppNameKey = "app.kubernetes.io/name"
	// K8sAppInstanceKey = key of the label used to denote a deployed application instance.
	K8sAppInstanceKey = "app.kubernetes.io/instance"
	// K8sAppManagedByKey = key of the label used to denote which app is managing the resource.
	K8sAppManagedByKey = "app.kubernetes.io/managed-by"
	// K8sAppComponentKey = key of the label used to denote a deployed application component.
	K8sAppComponentKey = "app.kubernetes.io/component"
	// K8sAppPartOfKey = key of the label used to denote the application a resource is part of.
	K8sAppPartOfKey = "app.kubernetes.io/part-of"

	// ControllerManagerAppName label value that denotes the name of the liqo-controller-manager deployment.
	ControllerManagerAppName = "controller-manager"

	// APIServerProxyAppName label value that denotes the name of the liqo-api-server-proxy deployment.
	APIServerProxyAppName = "proxy"

	// IpamStorageResourceLabelKey is the constant representing
	// the key of the label assigned to all IpamStorage resources.
	IpamStorageResourceLabelKey = "ipam.liqo.io/ipamstorage"
	// IpamStorageResourceLabelValue is the constant representing
	// the value of the label assigned to all IpamStorage resources.
	IpamStorageResourceLabelValue = "true"
)
View Source
const (
	// RemoteClusterID is used to obtain cluster-id from different Liqo resources.
	RemoteClusterID = "liqo.io/remote-cluster-id"
	// TypeLabel is the key of a Liqo label that identifies different types of nodes.
	// todo: change to NodeTypeLabel
	TypeLabel = "liqo.io/type"
	// TypeNode is the value of a Liqo label that identifies Liqo virtual nodes.
	// todo: change to VirtualNodeType
	TypeNode = "virtual-node"
	// DocumentationURL is the URL to official Liqo Documentation.
	DocumentationURL = "https://doc.liqo.io/"
	// DefaultNamespaceOffloadingName is the default name of NamespaceOffloading resources. Every namespace that has
	// to be offloaded with Liqo, must have a NamespaceOffloading resource with this name.
	DefaultNamespaceOffloadingName = "offloading"
	// SchedulingLiqoLabel is necessary in order to allow Pods to be scheduled on remote clusters.
	SchedulingLiqoLabel = "liqo.io/scheduling-enabled"
	// SchedulingLiqoLabelValue unique value allowed for SchedulingLiqoLabel.
	SchedulingLiqoLabelValue = "true"

	// RemoteNamespaceManagedByAnnotationKey is the annotation that identifies the NamespaceMap managing a given remote namespace.
	RemoteNamespaceManagedByAnnotationKey = "liqo.io/managed-by-namespace-map"
	// RemoteNamespaceOriginalNameAnnotationKey is the annotation that identifies the original name of a remote namespace.
	RemoteNamespaceOriginalNameAnnotationKey = "liqo.io/original-name"
	// RemoteNamespaceClusterRoleName is the name of the cluster role used to grant permissions to the virtual kubelet in remote namespaces.
	RemoteNamespaceClusterRoleName = "liqo-virtual-kubelet-remote"
)
View Source
const (
	// ClusterLabelsParameter is the name of the parameter specifying the cluster labels.
	ClusterLabelsParameter = "cluster-labels"

	// NotApplicable is a constant used to represent a not applicable value.
	NotApplicable = "N/A"
)
View Source
const (
	// OwnershipLocal indicates that the resource is owned by the local cluster.
	OwnershipLocal OwnershipType = "Local"
	// OwnershipShared indicates that the ownership over the resource is shared between the two clusters.
	// In particular:
	// - the spec of the resource is owned by the local cluster.
	// - the status by the remote cluster.
	OwnershipShared OwnershipType = "Shared"

	// ReplicationRequestedLabel is the key of a label indicating whether the given resource should be replicated remotely.
	ReplicationRequestedLabel = "liqo.io/replication"
	// ReplicationRequestedLabelValue is the value of a label indicating that the given resource should be replicated remotely.
	ReplicationRequestedLabelValue = "true"
	// ReplicationOriginLabel is the key of a label indicating the origin cluster of a replicated resource.
	ReplicationOriginLabel = "liqo.io/originID"
	// ReplicationDestinationLabel is the key of a label indicating the destination cluster of a replicated resource.
	ReplicationDestinationLabel = "liqo.io/remoteID"
	// ReplicationStatusLabel is the key of a label indicating that this resource has been created by a remote cluster through replication.
	ReplicationStatusLabel = "liqo.io/replicated"

	// LocalPodLabelKey label key added to all the local pods that have been offloaded/replicated to a remote cluster.
	LocalPodLabelKey = "liqo.io/shadowPod"
	// LocalPodLabelValue value of the label added to the local pods that have been offloaded/replicated to a remote cluster.
	LocalPodLabelValue = "true"

	// ManagedByLabelKey is the label key used to indicate that a given resource is managed by another one.
	ManagedByLabelKey = "liqo.io/managed-by"
	// ManagedByShadowPodValue it the label value used to indicate that a given resource is managed by a ShadowPod.
	ManagedByShadowPodValue = "shadowpod"
	// ManagedByShadowEndpointSliceValue it the label value used to indicate that a given resource is managed by a ShadowEndpointSlice.
	ManagedByShadowEndpointSliceValue = "shadowendpointslice"

	// LocalResourceOwnership label key added to a resource when it is owned by a local component.
	// Ex. Local networkconfigs are owned by the component that creates them. If the resource is replicated in
	// a remote cluster this label is removed by the CRDReplicator.
	LocalResourceOwnership = "liqo.io/ownership"

	// ForceRemoteNodePortAnnotationKey is the annotation key used to indicate that a service should be forced to
	// use the same node port on both clusters.
	ForceRemoteNodePortAnnotationKey = "liqo.io/force-remote-node-port"

	// SkipReflectionAnnotationKey is the annotation key used to indicate that a given object should not be reflected into a remote cluster.
	SkipReflectionAnnotationKey = "liqo.io/skip-reflection"

	// AllowReflectionAnnotationKey is the annotation key used to indicate that a given object should be reflected into a remote cluster.
	AllowReflectionAnnotationKey = "liqo.io/allow-reflection"

	// PodAntiAffinityPresetKey is the annotation key used to express an anti-affinity preset to apply to offloaded pods.
	PodAntiAffinityPresetKey = "liqo.io/anti-affinity-preset"

	// PodAntiAffinityPresetValueSoft is the annotation value corresponding to the "soft" anti-affinity preset (i.e., preferred).
	PodAntiAffinityPresetValueSoft = "soft"

	// PodAntiAffinityPresetValueHard is the annotation value corresponding to the "hard" anti-affinity preset (i.e., required).
	PodAntiAffinityPresetValueHard = "hard"

	// PodAntiAffinityPresetValuePropagate is the annotation value corresponding to the propagation of the original pod anti-affinity constrains.
	PodAntiAffinityPresetValuePropagate = "propagate"

	// PodAntiAffinityLabelsKey is the annotation key used to specify a subset of the pod label keys for the anti-affinity constraints.
	PodAntiAffinityLabelsKey = "liqo.io/anti-affinity-labels"

	// RemoteUnavailableKey is the annotation key indicating that the remote cluster hosting the local offloaded pod is currently not available.
	RemoteUnavailableKey = "liqo.io/remote-unavailable"
	// RemoteUnavailableValue is the annotation value of the label indicating that the remote cluster hosting the local offloaded pod is currently
	// not available.
	RemoteUnavailableValue = "true"
)
View Source
const (
	// StorageProvisionerName is the name of the liqo storage provisioner.
	StorageProvisionerName = "liqo.io/storage"

	// StorageAvailableLabel is the label used to mark if the liqo storage is available on a virtual node.
	StorageAvailableLabel = "storage.liqo.io/available"

	// VirtualPvcNamespaceLabel is the label used to mark the namespace of a virtual PVC.
	VirtualPvcNamespaceLabel = "storage.liqo.io/virtual-pvc-namespace"
	// VirtualPvcNameLabel is the label used to mark the name of a virtual PVC.
	VirtualPvcNameLabel = "storage.liqo.io/virtual-pvc-name"

	// StorageNamespaceLabel is the label used to mark the liqo storage namespace.
	StorageNamespaceLabel = "liqo.io/storage-provisioner"
)
View Source
const (
	// DefaultLiqoNamespace represents the default namespace where liqo is installed in.
	DefaultLiqoNamespace = "liqo"
)
View Source
const (
	// VirtualNodeTolerationKey all Pods that have to be scheduled on virtual nodes must have this toleration
	// to Liqo taint.
	VirtualNodeTolerationKey = "virtual-node.liqo.io/not-allowed"
)

Variables

This section is empty.

Functions

func ClusterIDConfigMapSelector added in v0.3.1

func ClusterIDConfigMapSelector() labels.Selector

ClusterIDConfigMapSelector returns the selector for the configmap where the cluster-id is stored.

Types

type NetworkType

type NetworkType string

NetworkType indicates the type of Network.

type OwnershipType

type OwnershipType string

OwnershipType indicates the type of ownership over a resource.

Jump to

Keyboard shortcuts

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