slicegateway

package
v1.3.1-alpha Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2024 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDepNameFromPodName added in v1.1.5

func GetDepNameFromPodName(sliceGwID, podName string) string

func GetDeployments added in v1.1.5

func GetDeployments(ctx context.Context, c client.Client, sliceName, sliceGwName string) (*appsv1.DeploymentList, error)

func GetNsmIPsForGwDeployment added in v1.1.5

func GetNsmIPsForGwDeployment(ctx context.Context, c client.Client, sliceGwName, depName string) ([]string, error)

func GetPeerGwPodName added in v1.1.5

func GetPeerGwPodName(gwPodName string, sliceGw *kubeslicev1beta1.SliceGateway) (string, error)

func GetPodForGwDeployment added in v1.1.5

func GetPodForGwDeployment(ctx context.Context, c client.Client, depName string) (*corev1.Pod, error)

func GetRemoteDepName added in v1.1.5

func GetRemoteDepName(remoteGwID, localDepName string) string

func UpdateGWPodStatus

func UpdateGWPodStatus(gwPodStatus []*kubeslicev1beta1.GwPodInfo, podName string) []*kubeslicev1beta1.GwPodInfo

Types

type HubClientProvider

type HubClientProvider interface {
	UpdateNodePortForSliceGwServer(ctx context.Context, sliceGwNodePort []int, sliceGwName string) error
	GetClusterNodeIP(ctx context.Context, clusterName, namespace string) ([]string, error)
	CreateWorkerSliceGwRecycler(ctx context.Context, gwRecyclerName, clientID, serverID, sliceGwServer, sliceGwClient, slice string) error
	GetVPNKeyRotation(ctx context.Context, rotationName string) (*hubv1alpha1.VpnKeyRotation, error)
	ListWorkerSliceGwRecycler(ctx context.Context, sliceGWName string) ([]spokev1alpha1.WorkerSliceGwRecycler, error)
	DeleteWorkerSliceGwRecycler(ctx context.Context, recyclerName string) error
	UpdateLBIPsForSliceGwServer(ctx context.Context, lbIPs []string, sliceGwName string) error
}

type NetOpPod

type NetOpPod struct {
	PodIP   string
	PodName string
	Node    string
}

NetOpPod contains details of NetOp Pod running in the cluster

func GetNetOpPods

func GetNetOpPods(ctx context.Context, namespace string,
	listFn func(context.Context, client.ObjectList, ...client.ListOption) error) ([]NetOpPod, error)

GetNetOpPods returns the netop pods in the cluster

type SliceGwReconciler

type SliceGwReconciler struct {
	client.Client
	Scheme                *runtime.Scheme
	Log                   logr.Logger
	HubClient             HubClientProvider
	WorkerRouterClient    WorkerRouterClientProvider
	WorkerNetOpClient     WorkerNetOpClientProvider
	WorkerGWSidecarClient WorkerGWSidecarClientProvider
	WorkerRecyclerClient  WorkerRecyclerClientProvider

	NetOpPods        []NetOpPod
	EventRecorder    *events.EventRecorder
	NodeIPs          []string
	NumberOfGateways int
}

SliceReconciler reconciles a Slice object

func (*SliceGwReconciler) FindSliceRouterService

func (r *SliceGwReconciler) FindSliceRouterService(ctx context.Context, c client.Client, sliceName string) (bool, error)

func (*SliceGwReconciler) GetGwPodInfo

func (*SliceGwReconciler) Reconcile

func (r *SliceGwReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)

func (*SliceGwReconciler) ReconcileGatewayDeployments added in v1.1.5

func (r *SliceGwReconciler) ReconcileGatewayDeployments(ctx context.Context, sliceGw *kubeslicev1beta1.SliceGateway) (ctrl.Result, error, bool)

func (*SliceGwReconciler) ReconcileGatewayServices added in v1.1.5

func (r *SliceGwReconciler) ReconcileGatewayServices(ctx context.Context, sliceGw *kubeslicev1beta1.SliceGateway) (ctrl.Result, error, bool)

func (*SliceGwReconciler) ReconcileGwPodPlacement added in v1.1.5

func (r *SliceGwReconciler) ReconcileGwPodPlacement(ctx context.Context, sliceGw *kubeslicev1beta1.SliceGateway) error

func (*SliceGwReconciler) ReconcileGwPodStatus

func (r *SliceGwReconciler) ReconcileGwPodStatus(ctx context.Context, slicegateway *kubeslicev1beta1.SliceGateway) (ctrl.Result, error, bool)

func (*SliceGwReconciler) ReconcileIntermediateGatewayDeployments added in v1.1.5

func (r *SliceGwReconciler) ReconcileIntermediateGatewayDeployments(ctx context.Context, sliceGw *kubeslicev1beta1.SliceGateway) (ctrl.Result, error, bool)

func (*SliceGwReconciler) SendConnectionContextAndQosToGwPod

func (r *SliceGwReconciler) SendConnectionContextAndQosToGwPod(ctx context.Context, slice *kubeslicev1beta1.Slice, slicegateway *kubeslicev1beta1.SliceGateway, req reconcile.Request) (ctrl.Result, error, bool)

func (*SliceGwReconciler) SendConnectionContextToSliceRouter

func (r *SliceGwReconciler) SendConnectionContextToSliceRouter(ctx context.Context, slicegateway *kubeslicev1beta1.SliceGateway) (ctrl.Result, error, bool)

In the event of slice router deletion as well this function needs to be called so that the routes can be injected into the router sidecar

func (*SliceGwReconciler) SetupWithManager

func (r *SliceGwReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

func (*SliceGwReconciler) SyncNetOpConnectionContextAndQos

func (r *SliceGwReconciler) SyncNetOpConnectionContextAndQos(ctx context.Context, slice *kubeslicev1beta1.Slice, slicegw *kubeslicev1beta1.SliceGateway, sliceGwNodePorts []int) error

type WorkerGWSidecarClientProvider

type WorkerGWSidecarClientProvider interface {
	GetSliceGwRemotePodName(ctx context.Context, gwRemoteVpnIP string, serverAddr string) (string, error)
	GetStatus(ctx context.Context, serverAddr string) (*gwsidecar.GwStatus, error)
	SendConnectionContext(ctx context.Context, serverAddr string, gwConnCtx *gwsidecar.GwConnectionContext) error
	UpdateSliceQosProfile(ctx context.Context, serverAddr string, slice *kubeslicev1beta1.Slice) error
}

type WorkerNetOpClientProvider

type WorkerNetOpClientProvider interface {
	UpdateSliceQosProfile(ctx context.Context, addr string, slice *kubeslicev1beta1.Slice) error
	SendSliceLifeCycleEventToNetOp(ctx context.Context, addr string, sliceName string, eventType netop.EventType) error
	SendConnectionContext(ctx context.Context, serverAddr string, gw *kubeslicev1beta1.SliceGateway, sliceGwNodePorts []int) error
}

type WorkerRecyclerClientProvider

type WorkerRecyclerClientProvider interface {
	// triggers FSM to recycle gateway pair by passing server gateway pod
	// numberOfGwSvc should be equal to number of new deploy that should come up
	TriggerFSM(sliceGw *kubeslicev1beta1.SliceGateway, slice *kubeslicev1beta1.Slice, serverID, clientID, controllerName string) error
}

type WorkerRouterClientProvider

type WorkerRouterClientProvider interface {
	GetClientConnectionInfo(ctx context.Context, addr string) ([]kubeslicev1beta1.AppPod, error)
	SendConnectionContext(ctx context.Context, serverAddr string, sliceRouterConnCtx *router.SliceRouterConnCtx) error
	UpdateEcmpRoutes(ctx context.Context, serverAddr string, ecmpUpdateInfo *router.UpdateEcmpInfo) error
}

Jump to

Keyboard shortcuts

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