solver

package
v0.0.0-...-f7e4497 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: EPL-2.0 Imports: 41 Imported by: 0

Documentation

Overview

Package solver contains the implementation of the "devworkspace routing solver" which provides che-specific logic to the otherwise generic dev workspace routing controller. The devworkspace routing controller needs to be provided with a "solver getter" in its configuration prior to starting the reconciliation loop. See `CheRouterGetter`.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CheRouterGetter

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

CheRouterGetter negotiates the solver with the calling code

func Getter

func Getter(scheme *runtime.Scheme) *CheRouterGetter

Getter creates a new CheRouterGetter

func (*CheRouterGetter) GetSolver

func (g *CheRouterGetter) GetSolver(client client.Client, routingClass controllerv1alpha1.DevWorkspaceRoutingClass) (solver solvers.RoutingSolver, err error)

func (*CheRouterGetter) HasSolver

func (*CheRouterGetter) SetupControllerManager

func (g *CheRouterGetter) SetupControllerManager(mgr *builder.Builder) error

type CheRoutingSolver

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

CheRoutingSolver is a struct representing the routing solver for Che specific routing of devworkspaces

func (*CheRoutingSolver) Finalize

func (*CheRoutingSolver) FinalizerRequired

func (c *CheRoutingSolver) FinalizerRequired(routing *controllerv1alpha1.DevWorkspaceRouting) bool

func (*CheRoutingSolver) GetExposedEndpoints

func (c *CheRoutingSolver) GetExposedEndpoints(endpoints map[string]controllerv1alpha1.EndpointList, routingObj solvers.RoutingObjects) (exposedEndpoints map[string]controllerv1alpha1.ExposedEndpointList, ready bool, err error)

GetExposedEndpoints retreives the URL for each endpoint in a devfile spec from a set of RoutingObjects. Returns is a map from component ids (as defined in the devfile) to the list of endpoints for that component Return value "ready" specifies if all endpoints are resolved on the cluster; if false it is necessary to retry, as URLs will be undefined.

func (*CheRoutingSolver) GetSpecObjects

GetSpecObjects constructs cluster routing objects which should be applied on the cluster

type EndpointInfo

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

type EndpointStrategy

type EndpointStrategy interface {
	// contains filtered or unexported methods
}

Interface for different workspace and endpoint url path strategies

type IngressExposer

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

type Legacy

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

Public endpoints defined in the devfile are exposed on the following path via route or ingress: <WORKSPACE_ID>-<ENDPOINT_ORDER_NUMBER>.<CLUSTER_INGRESS_DOMAIN>/<ENDPOINT_PATH>

type RouteExposer

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

type UsernameWkspName

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

Public endpoints defined in the devfile are exposed on the following path via route or ingress: <USERNAME>-<WORKSPACE_NAME>-<ENDPOINT_NAME>.<CLUSTER_INGRESS_DOMAIN>/<ENDPOINT_PATH>

Jump to

Keyboard shortcuts

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