common

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2025 License: Apache-2.0 Imports: 24 Imported by: 8

Documentation

Index

Constants

View Source
const (
	ResourceNamePrefixEnv   = "RESOURCE_NAME_PREFIX"
	ImagePullSecretEnv      = "IMAGE_PULL_SECRET"
	NSMRegistryServiceEnv   = "NSM_REGISTRY_SERVICE"
	LogLevelEnv             = "LOG_LEVEL"
	NspServiceAccountEnv    = "NSP_SERVICE_ACCOUNT"
	FeServiceAccountEnv     = "FE_SERVICE_ACCOUNT"
	GRPCHealthRPCTimeoutEnv = "GRPC_PROBE_RPC_TIMEOUT" // RPC timeout of grpc_health_probes run from code
	ConduitMTU              = "CONDUIT_MTU"            // Control default Conduit MTU
	ProxyIPReleaseDelayEnv  = "PROXY_IP_RELEASE_DELAY" // Duration how much the IP release of NSM connections in proxy should be delayed by.

	Registry        = "registry.nordix.org"
	Organization    = "cloud-native/meridio"
	OrganizationNsm = "cloud-native/nsm"
	Tag             = "latest"

	BusyboxImage = "busybox"
	BusyboxTag   = "1.29"

	SubnetPoolIpv4                 = "172.16.0.0/16"
	SubnetPoolIpv6                 = "fd00::/48"
	ConduitPrefixLengthIpv4        = "20"
	ConduitPrefixLengthIpv6        = "56"
	NodePrefixLengthIpv4           = "24"
	NodePrefixLengthIpv6           = "64"
	IPAMGarbageCollectionEnabled   = "IPAM_GARBAGE_COLLECTION_ENABLED"
	IPAMGarbageCollectionInterval  = "IPAM_GARBAGE_COLLECTION_INTERVAL"
	IPAMGarbageCollectionThreshold = "IPAM_GARBAGE_COLLECTION_THRESHOLD"

	NspPort        = 7778
	NspTargetPort  = 7778
	IpamPort       = 7777
	IpamTargetPort = 7777
	VlanNsePort    = 5003

	IpamSvcName             = "ipam-service"
	NspSvcName              = "nsp-service"
	PodDisruptionBudgetName = "pdb"
	LBName                  = "stateless-lb-frontend"
	ProxyName               = "proxy"
	IpamName                = "ipam"
	NseName                 = "nse-vlan"
	NspName                 = "nsp"
	NspServiceAccountName   = "meridio-sa"
	CMName                  = "meridio-configuration"

	NetworkServiceName = "external-vlan"

	ResourceRequirementKey          = "resource-template"
	ResourceRequirementTemplatePath = "template/resource"

	ConduitUpdateSyncGroupKeyEnv     = "CONDUIT_UPDATE_SYNC_GROUP_KEY" // Annotation key to be used to mark Conduits which update sync group they belong to if any.
	DefaultConduitUpdateSyncGroupKey = "update-sync-group"
)
View Source
const (
	NetworkAttachmentAnnot = "k8s.v1.cni.cncf.io/networks"
)

Variables

View Source
var (
	LivenessTimer = probeTimer{
					// contains filtered or unexported fields
	}

	ReadinessTimer = probeTimer{
					// contains filtered or unexported fields
	}

	StartUpTimer = probeTimer{
					// contains filtered or unexported fields
	}
)

Functions

func CompileEnvironmentVariables

func CompileEnvironmentVariables(allEnv []corev1.EnvVar, operatorEnv []corev1.EnvVar) []corev1.EnvVar

func ConfigMapName

func ConfigMapName(trench *meridiov1.Trench) string

func FEServiceAccountName

func FEServiceAccountName() string

func GetConduitMTU added in v1.0.12

func GetConduitMTU() string

func GetConduitUpdateSyncGroupKey added in v1.1.7

func GetConduitUpdateSyncGroupKey() string

func GetContainerResourceRequirements

func GetContainerResourceRequirements(containerName, templateName string) (*corev1.ResourceRequirements, error)

GetContainerResourceRequirements - Reads and searches template resource requirements for container. (A template resource requirement with param 'templateName' must exist for a match)

func GetDaemonsetModel

func GetDaemonsetModel(f string) (*appsv1.DaemonSet, error)

func GetDeploymentModel

func GetDeploymentModel(f string) (*appsv1.Deployment, error)

func GetGRPCProbeRPCTimeout added in v1.0.6

func GetGRPCProbeRPCTimeout() string

func GetIPAMGCEnabled added in v1.2.2

func GetIPAMGCEnabled() (string, bool)

GetIPAMGCEnabled reads the IPAM_GARBAGE_COLLECTION_ENABLED env var from the operator's environment. Returns the string value and true if set, empty string and false otherwise.

func GetIPAMGCInterval added in v1.2.2

func GetIPAMGCInterval() (string, bool)

GetIPAMGCInterval reads the IPAM_GARBAGE_COLLECTION_INTERVAL env var from the operator's environment. Returns the string value and true if set, empty string and false otherwise.

func GetIPAMGCThreshold added in v1.2.2

func GetIPAMGCThreshold() (string, bool)

GetIPAMGCThreshold reads the IPAM_GARBAGE_COLLECTION_THRESHOLD env var from the operator's environment. Returns the string value and true if set, empty string and false otherwise.

func GetIPFamily

func GetIPFamily(cr *meridiov1.Trench) string

func GetImagePullSecrets

func GetImagePullSecrets() []corev1.LocalObjectReference

func GetLoadBalancerSysCtl

func GetLoadBalancerSysCtl(cr *meridiov1.Trench) string

func GetLogLevel

func GetLogLevel() string

func GetNSMRegistryService

func GetNSMRegistryService() string

func GetPodDisruptionBudgetModel

func GetPodDisruptionBudgetModel(f string) (*policyv1.PodDisruptionBudget, error)

func GetPodDisruptionBudgetVersion

func GetPodDisruptionBudgetVersion(client client.Client) (string, error)

func GetPrefixedName

func GetPrefixedName(resourceName string) string

func GetProbe

func GetProbe(timer probeTimer, command []string) *corev1.Probe

func GetProbeCommand

func GetProbeCommand(spiffe bool, addr, svc string) []string

func GetProxyIPReleaseDelay added in v1.1.1

func GetProxyIPReleaseDelay() string

func GetProxySysCtl

func GetProxySysCtl(cr *meridiov1.Trench) string

func GetResourceRequirementAnnotation

func GetResourceRequirementAnnotation(from *metav1.ObjectMeta) (string, bool)

GetResourceRequirementAnnotation - Gets ResourceRequirementKey annotation based on param 'from'

func GetRoleBindingModel

func GetRoleBindingModel(f string) (*rbacv1.RoleBinding, error)

func GetRoleModel

func GetRoleModel(f string) (*rbacv1.Role, error)

func GetServiceAccountModel

func GetServiceAccountModel(f string) (*corev1.ServiceAccount, error)

func GetServiceModel

func GetServiceModel(f string) (*corev1.Service, error)

func GetStatefulSetModel

func GetStatefulSetModel(f string) (*appsv1.StatefulSet, error)

func GetSuffixedName

func GetSuffixedName(resourceName, suffix string) string

func GetTrenchBySelector

func GetTrenchBySelector(e *Executor, selector client.ObjectKey) (*meridiov1.Trench, error)

func IPAMServiceName

func IPAMServiceName(trench *meridiov1.Trench) string

func IPAMServiceWithPort

func IPAMServiceWithPort(cr *meridiov1.Trench) string

func IPAMStatefulSetName

func IPAMStatefulSetName(trench *meridiov1.Trench) string

func LbFeDeploymentName

func LbFeDeploymentName(attractor *meridiov1.Attractor) string

func LoadBalancerNsName

func LoadBalancerNsName(conduit, trench, namespace string) string

func MakeNetworkAttachmentSpecMap added in v1.0.0

func MakeNetworkAttachmentSpecMap(list []*NetworkAttachmentSelector) map[NetworkAttachmentSelector]*NetworkAttachmentSelector

MakeNetworkAttachmentSpecMap - Creates a map from list of NetworkAttachmentSelectors.

func MergeMapsInPlace added in v1.1.7

func MergeMapsInPlace(existing map[string]string, desired map[string]string) map[string]string

MergeMapsInPlace returns a merged map based on the existing map extended or overwritten based on the desired map. This function can be used for both labels and annotations.

func NSEDeploymentName

func NSEDeploymentName(attractor *meridiov1.Attractor) string

func NSPServiceAccountName

func NSPServiceAccountName() string

func NSPServiceName

func NSPServiceName(trench *meridiov1.Trench) string

func NSPServiceWithPort

func NSPServiceWithPort(cr *meridiov1.Trench) string

func NSPStatefulSetName

func NSPStatefulSetName(trench *meridiov1.Trench) string

func NsName

func NsName(meta metav1.ObjectMeta) string

func PDBName

func PDBName(attractir *meridiov1.Attractor) string

func ProxyDeploymentName

func ProxyDeploymentName(conduit *meridiov1.Conduit) string

func ProxyNtwkSvcNsName

func ProxyNtwkSvcNsName(cr *meridiov1.Conduit) string

func SetContainerResourceRequirements

func SetContainerResourceRequirements(from *metav1.ObjectMeta, container *corev1.Container) error

SetContainerResourceRequirements - Finds and sets resource requirements for container.

func SetResourceRequirementAnnotation

func SetResourceRequirementAnnotation(from *metav1.ObjectMeta, into *metav1.ObjectMeta)

SetResourceRequirementAnnotation - Sets ResourceRequirementKey annotation based on param 'from'.

func VlanNtwkSvcName

func VlanNtwkSvcName(attractorCr *meridiov1.Attractor, trenchCr *meridiov1.Trench) string

Types

type Action

type Action interface {
	Run(e *Executor) (string, string, error)
}

func AppendActions

func AppendActions(actions ...Action) []Action

type Executions

type Executions interface {
	RunAll(actions []Action) error
	// contains filtered or unexported methods
}

type Executor

type Executor struct {
	// contains filtered or unexported fields
}

func NewExecutor

func NewExecutor(s *runtime.Scheme, c client.Client, ct context.Context, cr client.Object, l logr.Logger) *Executor

func (*Executor) AddCreateAction

func (e *Executor) AddCreateAction(obj client.Object)

func (*Executor) AddUpdateAction

func (e *Executor) AddUpdateAction(obj client.Object)

func (*Executor) AddUpdateStatusAction

func (e *Executor) AddUpdateStatusAction(obj client.Object)

func (*Executor) GetObject

func (e *Executor) GetObject(selector client.ObjectKey, obj client.Object) error

func (*Executor) GetOwner

func (e *Executor) GetOwner() client.Object

func (*Executor) ListObject

func (e *Executor) ListObject(obj client.ObjectList, opts ...client.ListOption) error

func (*Executor) LogError

func (e *Executor) LogError(err error, msg string)

func (*Executor) LogInfo

func (e *Executor) LogInfo(msg string)

func (*Executor) RunActions

func (e *Executor) RunActions() error

func (*Executor) SetControllerReference

func (e *Executor) SetControllerReference(obj client.Object) error

func (*Executor) SetOwner

func (e *Executor) SetOwner(cr client.Object)

Set the owner of created objects

func (*Executor) SetOwnerReference

func (e *Executor) SetOwnerReference(obj client.Object, owners ...client.Object) error

Append/update owner reference. Used when setting owner reference for custom resource

type NamedResourceRequirements

type NamedResourceRequirements struct {
	Name      string                      `json:"name" protobuf:"bytes,1,opt,name=name"`
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,2,opt,name=resources"`
}

type NetworkAttachmentSelector added in v1.0.0

type NetworkAttachmentSelector struct {
	Name             string `json:"name,omitempty"`
	Namespace        string `json:"namespace,omitempty"`
	InterfaceRequest string `json:"interface,omitempty"`
}

NetworkAttachmentSelector - Represents a selector for a json formattad Network Attachment Annotation. (Not using meridiov1alpha1 NetworkAttachmentSpec to keep compatibility even if the meridio API gets extended/changed in the future.)

If required, can be replaced with e.g. 3rd party NetworkSelectionElement: https://github.com/k8snetworkplumbingwg/network-attachment-definition-client/blob/master/pkg/apis/k8s.cni.cncf.io/v1/types.go#L135

func GetNetworkAnnotation added in v1.0.0

func GetNetworkAnnotation(networks, defaultNamespace string) ([]*NetworkAttachmentSelector, error)

GetNetworkAnnotation - Parses k8s.v1.cni.cncf.io/networks annotations, and fills in the namespace information if missing with defaultNamespace. Understands both json and <namespace>/<network name>@<ifname> format.

type Reader added in v1.1.7

type Reader struct {
	// contains filtered or unexported fields
}

func NewReader added in v1.1.7

func NewReader(s *runtime.Scheme, c client.Reader, ct context.Context, l logr.Logger) *Reader

func (*Reader) GetObject added in v1.1.7

func (r *Reader) GetObject(selector client.ObjectKey, obj client.Object) error

func (*Reader) ListObject added in v1.1.7

func (r *Reader) ListObject(obj client.ObjectList, opts ...client.ListOption) error

func (*Reader) LogError added in v1.1.7

func (r *Reader) LogError(err error, msg string)

func (*Reader) LogInfo added in v1.1.7

func (r *Reader) LogInfo(msg string)

type ResourceRequirementTemplates

type ResourceRequirementTemplates struct {
	Templates []NamedResourceRequirements `json:"templates,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=templates"`
}

ResourceRequirementTemplates - Describes the data layout of a resource requirement template file

Jump to

Keyboard shortcuts

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