consts

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2022 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 (
	// 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"
	// ClusterNameConfigMapKey is the key of the configmap where the cluster-name is stored.
	ClusterNameConfigMapKey = "CLUSTER_NAME"
	// 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 (
	// K8sAppNameKey = key of the label used to denote a deployed application.
	K8sAppNameKey = "app.kubernetes.io/name"

	// GatewayServiceLabelKey key of the label used to get the service.
	GatewayServiceLabelKey = "net.liqo.io/gateway"
	// GatewayServiceLabelValue value of the label used to get the service.
	GatewayServiceLabelValue = "true"

	// AuthAppName label value that denotes the name of the liqo-auth deployment.
	AuthAppName = "auth"

	// NetworkManagerAppName label value that denotes the name of the liqo-network-manager deployment.
	NetworkManagerAppName = "network-manager"

	// APIServerProxyAppName label value that denotes the name of the liqo-api-server-proxy deployment.
	APIServerProxyAppName = "proxy"
	// NatMappingResourceLabelKey is the constant representing
	// the key of the label assigned to all NatMapping resources.
	NatMappingResourceLabelKey = "net.liqo.io/natmapping"
	// NatMappingResourceLabelValue is the constant representing
	// the value of the label assigned to all NatMapping resources.
	NatMappingResourceLabelValue = "true"
	// IpamStorageResourceLabelKey is the constant representing
	// the key of the label assigned to all IpamStorage resources.
	IpamStorageResourceLabelKey = "net.liqo.io/ipamstorage"
	// IpamStorageResourceLabelValue is the constant representing
	// the value of the label assigned to all IpamStorage resources.
	IpamStorageResourceLabelValue = "true"
)
View Source
const (
	// NetworkManagerIpamPort is the port used by IPAM gRPCs.
	NetworkManagerIpamPort = 6000
	// NetworkManagerServiceName is the service name for IPAM gRPCs.
	NetworkManagerServiceName = "liqo-network-manager"
	// DefaultCIDRValue is the default value for a string that contains a CIDR.
	DefaultCIDRValue = "None"
	// NatMappingKind is the constant representing
	// the value of the Kind field of all NatMapping resources.
	NatMappingKind = "NatMapping"
	// RoutingTableID used to identify the custom routing table used
	// to configure the routes on the k8s nodes by route operator.
	RoutingTableID = 18952
	// OverlayNetPrefix prefix of the subnet used for the overlay network.
	// The last three octets of the IP addresses used for the vxlan devices,
	// are taken from the IPs of the nodes. In next PRs it will be introduced
	// new method to allocate non conflict IPs from a user defined subnet for
	// the overlay interfaces.
	OverlayNetPrefix = "240"
	// LiqoRouteOperatorName holds the name of the route operator.
	LiqoRouteOperatorName = "liqo-route"
	// LiqoGatewayOperatorName name of the operator.
	LiqoGatewayOperatorName = "liqo-gateway"
	// LiqoNetworkManagerName name of the operator.
	LiqoNetworkManagerName = "liqo-network-manager"
	// GatewayLeaderElectionID used as name for the lease.coordination.k8s.io resource.
	GatewayLeaderElectionID = "1d5hml1.gateway.net.liqo.io"
	// GatewayNetnsName name of the custom network namespace used by liqo-gateway.
	GatewayNetnsName = "liqo-netns"
	// HostVethName name of the veth device living in the host network namespace,
	// on the node where liqo-gateway is running.
	HostVethName = "liqo.host"
	// HostVethIPAddr is used as next hop when configuring routes for traffic coming
	// from the gateway namespace. A trick to prevent arp requests for the traffic going
	// through the veth pair.
	HostVethIPAddr = "169.254.100.2"
	// GatewayVethName nome of the veth device living in the custom network namespace
	// created by liqo-gateway.
	GatewayVethName = "liqo.gateway"
	// GatewayVethIPAddr is used as next hop when configuring routes for traffic coming
	// from the host namespace. A trick to prevent arp requests for the traffic going
	// through the veth pair.
	GatewayVethIPAddr = "169.254.100.1"
	// VxlanDeviceName name used for the vxlan devices created on each node by the instances
	// of liqo-route.
	VxlanDeviceName = "liqo.vxlan"
	// OverlayNetworkPrefix prefix used for the overlay network.
	OverlayNetworkPrefix = "240"
	// OverlayNetworkMask size of the overlay network.
	OverlayNetworkMask = "/8"
	// PodCIDR is a field of the TunnelEndpoint resource.
	PodCIDR = "PodCIDR"
	// ExternalCIDR is a field of the TunnelEndpoint resource.
	ExternalCIDR = "ExternalCIDR"
	// LocalPodCIDR is a field of the TunnelEndpoint resource.
	LocalPodCIDR = "LocalPodCIDR"
	// LocalExternalCIDR is a field of the TunnelEndpoint resource.
	LocalExternalCIDR = "LocalExternalCIDR"
	// LocalNATPodCIDR is a field of the TunnelEndpoint resource.
	LocalNATPodCIDR = "LocalNATPodCIDR"
	// LocalNATExternalCIDR is a field of the TunnelEndpoint resource.
	LocalNATExternalCIDR = "LocalNATExternalCIDR"
	// RemoteNATPodCIDR is a field of the TunnelEndpoint resource.
	RemoteNATPodCIDR = "RemoteNATPodCIDR"
	// RemoteNATExternalCIDR is a field of the TunnelEndpoint resource.
	RemoteNATExternalCIDR = "RemoteNATExternalCIDR"
	// FinalizersSuffix suffix used by the network operators to create the finalizers added to k8s resources.
	FinalizersSuffix = "net.liqo.io"
	// UDPMinPort min value for a udp port.
	UDPMinPort = 1
	// UDPMaxPort max value for a udp port.
	UDPMaxPort = 65535
	// DefaultMTU default value for the mtu used in the network interfaces managed by the network operators.
	// Used by:
	//  - the route operator for the vxlan interfaces;
	//  - the gateway operator for vpn tunnel and veth pair between host network namespace and custom network namespace.
	DefaultMTU = 1440
	// GatewayListeningPort port used by the vpn tunnel.
	GatewayListeningPort = 5871

	// GatewayServiceAnnotationKey used to annotate the Gateway service with the IP of the node where the
	// active gateway is running.
	GatewayServiceAnnotationKey = "net.liqo.io/gatewayNodeIP"
	// NetworkConfigNamePrefix prefix used to generate the names of the networkconfigs.
	NetworkConfigNamePrefix = "net-config-"
)
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"
	// EnablingLiqoLabel is used to create a default NamespaceOffloading resource for the labeled namespace, this
	// is an alternative way to start Liqo offloading.
	EnablingLiqoLabel = "liqo.io/enabled"
	// EnablingLiqoLabelValue unique value allowed for EnablingLiqoLabel.
	EnablingLiqoLabelValue = "true"
	// 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 (
	// ClusterNameParameter is the name of the parameter specifying the cluster name.
	ClusterNameParameter = "cluster-name"
	// ClusterLabelsParameter is the name of the parameter specifying the cluster labels.
	ClusterLabelsParameter = "cluster-labels"
	// ReservedSubnetsParameter is the name of the parameter specifying the cluster's reserved subnets.
	ReservedSubnetsParameter = "reserved-subnets"
	// EnableLanDiscoveryParameter is the name of the parameter specifying whether the lan discovery is enabled.
	EnableLanDiscoveryParameter = "enable-lan-discovery"
	// GenerateNameParameter is the name of the parameter specifying whether to generate a random name for the cluster.
	GenerateNameParameter = "generate-name"

	// AuthServiceAddressOverrideParameter is the name of the parameter overriding
	// the automatically detected authentication service address.
	AuthServiceAddressOverrideParameter = "auth-service-address-override"
	// AuthServicePortOverrideParameter is the name of the parameter overriding
	// the automatically detected authentication service address.
	AuthServicePortOverrideParameter = "auth-service-port-override"
)
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"
	// 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"

	// 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"
)
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"
)
View Source
const (
	// PublicKey is the key of publicKey entry in back-end map and also for the secret containing the wireguard keys.
	PublicKey = "publicKey"
	// ListeningPort is the key of the listeningPort entry in the back-end map.
	ListeningPort = "port"
	// DeviceName name of wireguard tunnel created on the custom network namespace.
	DeviceName = "liqo.tunnel"
	// DriverName  name of the driver which is also used as the type of the backend in tunnelendpoint CRD.
	DriverName = "wireguard"
	// KeysLabel label for the secret that contains the public key.
	KeysLabel = "net.liqo.io/key"
)
View Source
const (
	// AuthServiceName contains the name of the Liqo Authentication service.
	AuthServiceName = "liqo-auth"
)
View Source
const NodeFinalizer = "liqo.io/node"

NodeFinalizer is the finalizer added on a ResourceOffer when the related VirtualNode is up. (managed by the VirtualKubelet).

View Source
const VirtualKubeletFinalizer = "liqo.io/virtualkubelet"

VirtualKubeletFinalizer is the finalizer added on a ResourceOffer when the related VirtualKubelet is up. (managed by the ResourceOffer Operator).

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 OwnershipType

type OwnershipType string

OwnershipType indicates the type of ownership over a resource.

type PeeringPhase

type PeeringPhase string

PeeringPhase contains the status of the peering with a remote cluster.

const (
	// PeeringPhaseNone -> no pering has been established.
	PeeringPhaseNone PeeringPhase = "None"
	// PeeringPhaseAuthenticated -> an identity to interact with the remote cluster is available.
	PeeringPhaseAuthenticated PeeringPhase = "Authenticated"
	// PeeringPhaseEstablished -> the peering has been established (either incoming or outgoing).
	PeeringPhaseEstablished PeeringPhase = "Established"
	// PeeringPhaseIncoming -> an incoming peering has been established.
	PeeringPhaseIncoming PeeringPhase = "Incoming"
	// PeeringPhaseOutgoing -> an outgoing peering has been established.
	PeeringPhaseOutgoing PeeringPhase = "Outgoing"
	// PeeringPhaseBidirectional -> both incoming and outgoing peerings have been established.
	PeeringPhaseBidirectional PeeringPhase = "Bidirectional"
)

Jump to

Keyboard shortcuts

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