common

package
v0.0.0-...-52300d9 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2022 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Common Finalizer name used by all controllers
	FinalizerName = "controller_5g"
)

COMMON CONSTS USED IN THE 5G APPLICATION

Variables

This section is empty.

Functions

func AddFinalizer

func AddFinalizer(obj client.Object, finalizer string)

AddFinalizer Add a finalizer to an object

func CMHash

func CMHash(cm *corev1.ConfigMap) string

func GetCRState

func GetCRState(r EntityHandler, transitionCR *fivegv1alpha1.Transition) (fivegv1alpha1.CRState, error)

func GetPodCondition

func GetPodCondition(status *corev1.PodStatus, conditionType corev1.PodConditionType) (int, *corev1.PodCondition)

GetPodCondition extracts the provided condition from the given status and returns that. Returns nil and -1 if the condition is not present, and the index of the located condition.

func GetPodReadyCondition

func GetPodReadyCondition(status corev1.PodStatus) *corev1.PodCondition

GetPodReadyCondition extracts the pod ready condition from the given status and returns that. Returns nil if the condition is not present.

func GetPodSettings

func GetPodSettings(transition *v1alpha1.Transition) *v1alpha1.PodSettingsSpec

func HasFinalizer

func HasFinalizer(obj metav1.Object, finalizer string) bool

HasFinalizer check has the object got the named finalizer

func IsBeingDeleted

func IsBeingDeleted(obj metav1.Object) bool

IsBeingDeleted check for deletingTimestamp on the object

func LoadResource

func LoadResource(filename string) (*os.File, error)

func RemoveFinalizer

func RemoveFinalizer(instance client.Object, finalizer string)

RemoveFinalizer Remove finalizer from an object

func VerifyRouteAPI

func VerifyRouteAPI() (bool, error)

Types

type Entity

type Entity interface {
	GetObject() client.Object
	IsReady() bool
	IsReconciled() bool
	SetError(err error)
	SetReady(ready bool)
	SetReconciled(reconciled bool)
}

type EntityHandler

type EntityHandler interface {
	Create(transition *v1alpha1.Transition) (Entity, error)
	GetCR(transitionCR *fivegv1alpha1.Transition) (Entity, error)
	IsReconciled(transitionCR *fivegv1alpha1.Transition) (bool, error)
	IsReady(transitionCR *fivegv1alpha1.Transition) (bool, error)
	RunTransition(transition *v1alpha1.Transition, entity Entity, updateFunc func(Entity, *fivegv1alpha1.Transition, error) error) error
	CheckReady(transitionCR *fivegv1alpha1.Transition, entity Entity) (bool, error)
	AddTransitionFunction(name string, transitionFunc TransitionFunc)
}

type EntityHandlerImpl

type EntityHandlerImpl struct {
	TransitionFuncs map[string]TransitionFunc
}

func NewEntityHandler

func NewEntityHandler() *EntityHandlerImpl

func (EntityHandlerImpl) AddTransitionFunction

func (r EntityHandlerImpl) AddTransitionFunction(name string, transitionFunc TransitionFunc)

func (EntityHandlerImpl) CheckReady

func (r EntityHandlerImpl) CheckReady(transitionCR *fivegv1alpha1.Transition, entity Entity) error

func (EntityHandlerImpl) Create

func (r EntityHandlerImpl) Create(transition *v1alpha1.Transition) (Entity, error)

func (EntityHandlerImpl) GetCR

func (r EntityHandlerImpl) GetCR(transitionCR *fivegv1alpha1.Transition) (Entity, error)

func (EntityHandlerImpl) IsReady

func (r EntityHandlerImpl) IsReady(transitionCR *fivegv1alpha1.Transition) (bool, error)

func (EntityHandlerImpl) IsReconciled

func (r EntityHandlerImpl) IsReconciled(transitionCR *fivegv1alpha1.Transition) (bool, error)

func (EntityHandlerImpl) RunTransition

func (r EntityHandlerImpl) RunTransition(transition *v1alpha1.Transition, entity Entity, updateFunc func(Entity, *fivegv1alpha1.Transition, error) error) error

func (EntityHandlerImpl) Type

func (r EntityHandlerImpl) Type() string

type Finalize

type Finalize func(reconcile.Request, interface{})

Finalize cleanup on deletion

type FiveGReconcileFuncBuilder

type FiveGReconcileFuncBuilder struct {
	K8sUtils                 *K8sUtils
	ConfigMapFuncs           []ReconcileConfigMap
	ServiceFuncs             []ReconcileService
	PodFuncs                 []ReconcilePod
	DeploymentFuncs          []ReconcileDeploymennt
	DaemonSetFuncs           []ReconcileDaemonSet
	StatefulSetFuncs         []ReconcileStatefulSet
	RouteFuncs               []ReconcileRoute
	IngressFuncs             []ReconcileIngress
	JobFuncs                 []ReconcileJob
	PodDisruptionBudgetFuncs []ReconcilePodDisruptionBudget
	PVCFuncs                 []ReconcilePVC
	ServiceAccountFuncs      []ReconcileServiceAccount
	RoleBindingFuncs         []ReconcileRoleBinding
	NetworkPolicyFuncs       []ReconcileNetworkPolicy
	TransitionFuncs          []ReconcileTransition
}

func (FiveGReconcileFuncBuilder) Reconcile

func (r FiveGReconcileFuncBuilder) Reconcile(request reconcile.Request, instance interface{}) (controllerutil.OperationResult, reconcile.Result, error)

type FiveGReconciler

type FiveGReconciler interface {
	// Reconcile run reconciliation
	Reconcile(request reconcile.Request, cr interface{}) (controllerutil.OperationResult, reconcile.Result, error)

	// UpdateStatus  update the status of a CR based on status of reconciled objects status
	UpdateStatus(opResult controllerutil.OperationResult, cr Entity, reconcileErr error)

	// Finalize cleanup on deletion
	Finalize(request reconcile.Request, cr interface{})
}

5GReconciler interface to be implemented by types which need to create application k8s objects

type FiveGReconcilerFacade

type FiveGReconcilerFacade struct {
	// Functions
	ReconcileFunc    Reconcile
	UpdateStatusFunc UpdateStatus
	FinalizeFunc     Finalize
}

FiveGReconcilerFacade Facade object implementing FiveGReconciler

func (FiveGReconcilerFacade) Finalize

func (f FiveGReconcilerFacade) Finalize(request reconcile.Request, cr interface{})

Finalize Facade for FiveGReconcilerFacade.Finalize function

func (FiveGReconcilerFacade) Reconcile

Reconcile Facade for FiveGReconcilerFacade.Reconcile function

func (FiveGReconcilerFacade) UpdateStatus

func (f FiveGReconcilerFacade) UpdateStatus(opResult controllerutil.OperationResult,
	cr Entity, err error)

UpdateStatus Facade for FiveGReconcilerFacade.UpdateStatus function

type K8sUtils

type K8sUtils struct {
	RestConfig *rest.Config
	ClientSet  *kubernetes.Clientset
	Client     client.Client
	Scheme     *runtime.Scheme
}

K8sUtils k8s utilities for interacting with k8s api's

func NewK8sUtils

func NewK8sUtils(restConfig *rest.Config, clientSet *kubernetes.Clientset, client client.Client,
	scheme *runtime.Scheme) *K8sUtils

func (K8sUtils) Delete

func (k8s K8sUtils) Delete(obj *unstructured.Unstructured)

Delete deletes the specified object

func (K8sUtils) DeleteByNameSpaceLabels

func (k8s K8sUtils) DeleteByNameSpaceLabels(obj *unstructured.Unstructured, namespace string, labels map[string]string)

DeleteByNameSpaceLabels deletes an object in the specified namespace by labels

func (K8sUtils) Exec

func (k8s K8sUtils) Exec(namespace, podName, containerName string, command []string, stdin io.Reader, tty bool) (string, error)

* Executes a command (array) in a given pod container, returning stderr as a string

func (K8sUtils) ExecCommand

func (k8s K8sUtils) ExecCommand(pod *corev1.Pod, containerName string, command ...string) (string, error)

*

  • Executes a command inside the given pod container

func (K8sUtils) ExecCommands

func (k8s K8sUtils) ExecCommands(pod *corev1.Pod, containerName string, commands [][]string) (string, error)

*

  • Executes a sequence of commands inside the given pod container

func (K8sUtils) Exist

func (k8s K8sUtils) Exist(namespacedName types.NamespacedName, kind schema.GroupVersionKind) bool

Exist checks if an object exists

func (K8sUtils) GetAmf

func (k8s K8sUtils) GetAmf(namespacedName types.NamespacedName) (*v1alpha1.Amf, error)

GetAmf get a Amf object

func (K8sUtils) GetAusf

func (k8s K8sUtils) GetAusf(namespacedName types.NamespacedName) (*v1alpha1.Ausf, error)

GetAusf get a Ausf object

func (K8sUtils) GetDaemonSet

func (k8s K8sUtils) GetDaemonSet(namespacedName types.NamespacedName) (*appsv1.DaemonSet, error)

GetDaemonSet get a DaemonSet object

func (K8sUtils) GetDeployment

func (k8s K8sUtils) GetDeployment(namespacedName types.NamespacedName) (*appsv1.Deployment, error)

GetDeployment get a Deployment object

func (K8sUtils) GetJob

func (k8s K8sUtils) GetJob(namespacedName types.NamespacedName) (*batchv1.Job, error)

GetJob get a Job object

func (K8sUtils) GetMongo

func (k8s K8sUtils) GetMongo(namespacedName types.NamespacedName) (*v1alpha1.Mongo, error)

GetMongo get a Mongo object

func (K8sUtils) GetN3iwf

func (k8s K8sUtils) GetN3iwf(namespacedName types.NamespacedName) (*v1alpha1.N3iwf, error)

GetN3iwf get a N3iwf object

func (K8sUtils) GetNetworkPolicy

func (k8s K8sUtils) GetNetworkPolicy(namespacedName types.NamespacedName) (*networking.NetworkPolicy, error)

GetNetworkPolicy get a NetworkPolicy object

func (K8sUtils) GetNrf

func (k8s K8sUtils) GetNrf(namespacedName types.NamespacedName) (*v1alpha1.Nrf, error)

GetNrf get a Nrf object

func (K8sUtils) GetNssf

func (k8s K8sUtils) GetNssf(namespacedName types.NamespacedName) (*v1alpha1.Nssf, error)

GetNssf get a Nssf object

func (K8sUtils) GetPcf

func (k8s K8sUtils) GetPcf(namespacedName types.NamespacedName) (*v1alpha1.Pcf, error)

GetPcf get a Pcf object

func (K8sUtils) GetPod

func (k8s K8sUtils) GetPod(namespacedName types.NamespacedName) (*corev1.Pod, error)

GetPod get a Pod object

func (K8sUtils) GetSmf

func (k8s K8sUtils) GetSmf(namespacedName types.NamespacedName) (*v1alpha1.Smf, error)

GetSmf get a Smf object

func (K8sUtils) GetStatefulSet

func (k8s K8sUtils) GetStatefulSet(namespacedName types.NamespacedName) (*appsv1.StatefulSet, error)

GetStatefulSet get a StatefulSet object

func (K8sUtils) GetSubscriber

func (k8s K8sUtils) GetSubscriber(namespacedName types.NamespacedName) (*v1alpha1.Subscriber, error)

GetSmf get a Subscriber object

func (K8sUtils) GetUdm

func (k8s K8sUtils) GetUdm(namespacedName types.NamespacedName) (*v1alpha1.Udm, error)

GetUdm get a Udm object

func (K8sUtils) GetUdr

func (k8s K8sUtils) GetUdr(namespacedName types.NamespacedName) (*v1alpha1.Udr, error)

GetUdr get a Udr object

func (K8sUtils) GetUpf

func (k8s K8sUtils) GetUpf(namespacedName types.NamespacedName) (*v1alpha1.Upf, error)

GetUpf get a Upf object

func (K8sUtils) GetWebconsole

func (k8s K8sUtils) GetWebconsole(namespacedName types.NamespacedName) (*v1alpha1.Webconsole, error)

GetWebconsole get a Webconsole object

func (K8sUtils) ReconcileClusterRole

func (k8s K8sUtils) ReconcileClusterRole(cr metav1.Object, clusterrole *rbacv1.ClusterRole) (controllerutil.OperationResult, error)

ReconcileClusterRole reconcile a ClusterRole with provided configuration

func (K8sUtils) ReconcileClusterRoleBinding

func (k8s K8sUtils) ReconcileClusterRoleBinding(cr metav1.Object, clusterrolebinding *rbacv1.ClusterRoleBinding) (controllerutil.OperationResult, error)

ReconcileClusterRoleBinding reconcile a ClusterRoleBinding with provided configuration

func (K8sUtils) ReconcileConfigMap

func (k8s K8sUtils) ReconcileConfigMap(cr metav1.Object, configmap *corev1.ConfigMap) (controllerutil.OperationResult, error)

ReconcileConfigMap reconcile a ConfigMap with provided configuration

func (K8sUtils) ReconcileDaemonSet

func (k8s K8sUtils) ReconcileDaemonSet(cr metav1.Object, daemonset *appsv1.DaemonSet) (controllerutil.OperationResult, error)

ReconcileDaemonSet reconcile a DaemonSet with provided configuration

func (K8sUtils) ReconcileDeployment

func (k8s K8sUtils) ReconcileDeployment(cr metav1.Object, deployment *appsv1.Deployment) (controllerutil.OperationResult, error)

ReconcileDeployment reconcile a Deployment with provided configuration

func (K8sUtils) ReconcileIngress

func (k8s K8sUtils) ReconcileIngress(cr metav1.Object, ingress *ingressv1b1.Ingress) (controllerutil.OperationResult, error)

ReconcileIngress reconcile a Ingress with provided configuration

func (K8sUtils) ReconcileJob

func (k8s K8sUtils) ReconcileJob(cr metav1.Object, job *batchv1.Job) (controllerutil.OperationResult, error)

ReconcileJob reconcile a Job with provided configuration

func (K8sUtils) ReconcileNetworkPolicy

func (k8s K8sUtils) ReconcileNetworkPolicy(cr metav1.Object, np *networkingv1.NetworkPolicy) (controllerutil.OperationResult, error)

func (K8sUtils) ReconcilePVC

func (K8sUtils) ReconcilePod

func (k8s K8sUtils) ReconcilePod(cr metav1.Object, pod *corev1.Pod) (controllerutil.OperationResult, error)

ReconcilePod reconcile a Pod with provided configuration

func (K8sUtils) ReconcilePodDisruptionBudget

func (k8s K8sUtils) ReconcilePodDisruptionBudget(cr metav1.Object, podDisruptionBudget *policyv1beta1.PodDisruptionBudget) (controllerutil.OperationResult, error)

ReconcilePodDisruptionBudget reconcile a PodDisruptionBudget with provided configuration

func (K8sUtils) ReconcileRole

func (k8s K8sUtils) ReconcileRole(cr metav1.Object, role *rbacv1.Role) (controllerutil.OperationResult, error)

ReconcileRole reconcile a Role with provided configuration

func (K8sUtils) ReconcileRoleBinding

func (k8s K8sUtils) ReconcileRoleBinding(cr metav1.Object, rolebinding *rbacv1.RoleBinding) (controllerutil.OperationResult, error)

ReconcileRoleBinding reconcile a RoleBinding with provided configuration

func (K8sUtils) ReconcileRoute

func (k8s K8sUtils) ReconcileRoute(cr metav1.Object, route *routev1.Route) (controllerutil.OperationResult, error)

ReconcileRoute reconcile a Route with provided configuration

func (K8sUtils) ReconcileService

func (k8s K8sUtils) ReconcileService(cr metav1.Object, service *corev1.Service) (controllerutil.OperationResult, error)

ReconcileService reconcile a Service with provided configuration

func (K8sUtils) ReconcileServiceAccount

func (k8s K8sUtils) ReconcileServiceAccount(cr metav1.Object, sa *corev1.ServiceAccount) (controllerutil.OperationResult, error)

ReconcileServiceAccount reconcile a Service Account with provided configuration

func (K8sUtils) ReconcileStatefulSet

func (k8s K8sUtils) ReconcileStatefulSet(cr metav1.Object, statefulSet *appsv1.StatefulSet) (controllerutil.OperationResult, error)

ReconcileStatefulSet reconcile a StatefulSet with provided configuration

func (K8sUtils) RunOperation

func (k8s K8sUtils) RunOperation(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string, commands []string) (string, error)

func (K8sUtils) Start

func (k8s K8sUtils) Start(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error)

* Starts a component by running the start transition script for the component type

func (K8sUtils) Stop

func (k8s K8sUtils) Stop(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error)

* Stops a component by running the stop transition script for the component type

func (K8sUtils) UpdateCR

func (k8s K8sUtils) UpdateCR(cr client.Object) error

func (K8sUtils) UploadToK8s

func (k8s K8sUtils) UploadToK8s(pod *corev1.Pod, toPath, containerName string, reader io.Reader) (string, error)

*

  • Uploads a file (given by 'reader') to the given pod

type OperationRunner

type OperationRunner interface {
	Start(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error)
	Stop(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error)
	RunOperation(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string, commands []string) (string, error)
}

type Reconcile

type Reconcile func(reconcile.Request, interface{}) (controllerutil.OperationResult, reconcile.Result, error)

Reconcile run reconciliation

type ReconcileConfigMap

type ReconcileConfigMap func(interface{}) (*corev1.ConfigMap, error)

type ReconcileDaemonSet

type ReconcileDaemonSet func(interface{}) *appsv1.DaemonSet

type ReconcileDeploymennt

type ReconcileDeploymennt func(interface{}) *appsv1.Deployment

type ReconcileIngress

type ReconcileIngress func(interface{}) *ingressv1b1.Ingress

type ReconcileJob

type ReconcileJob func(interface{}) *batchv1.Job

type ReconcileNetworkPolicy

type ReconcileNetworkPolicy func(interface{}) *networking.NetworkPolicy

type ReconcilePVC

type ReconcilePVC func(interface{}) *corev1.PersistentVolumeClaim

type ReconcilePod

type ReconcilePod func(interface{}) *corev1.Pod

type ReconcilePodDisruptionBudget

type ReconcilePodDisruptionBudget func(interface{}) *policyv1beta1.PodDisruptionBudget

type ReconcileRoleBinding

type ReconcileRoleBinding func(interface{}) *rbacv1.RoleBinding

type ReconcileRoute

type ReconcileRoute func(interface{}) *routev1.Route

type ReconcileService

type ReconcileService func(interface{}) *corev1.Service

type ReconcileServiceAccount

type ReconcileServiceAccount func(interface{}) *corev1.ServiceAccount

type ReconcileStatefulSet

type ReconcileStatefulSet func(interface{}) *appsv1.StatefulSet

type ReconcileTransition

type ReconcileTransition func(interface{}) error

type TransitionFunc

type TransitionFunc func(transition *v1alpha1.Transition) (string, error)

* Represents a CP4NA transition CR execution against one of the 5G CRs e.g. AMF, AUSF, etc

type UpdateStatus

type UpdateStatus func(controllerutil.OperationResult, Entity, error)

UpdateStatus update the status of a CR based on status of reconciled objects status

Jump to

Keyboard shortcuts

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