operation

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2024 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrEmptySpec               = errors.New("empty resources in spec")
	ErrEmptyService            = errors.New("empty k8s service")
	ErrNotOneSvcWithTargetPort = errors.New("only support one k8s service to forward with target port")
)

Functions

func ForwardPort

func ForwardPort(
	ctx context.Context,
	restConfig *rest.Config,
	clientset *kubernetes.Clientset,
	namespace, serviceName string,
	servicePort, localPort int,
) error

Types

type ApplyOperation

type ApplyOperation struct {
	models.Operation
}

func (*ApplyOperation) Apply

func (ao *ApplyOperation) Apply(req *ApplyRequest) (rsp *ApplyResponse, s v1.Status)

Apply means turn all actual infra resources into the desired state described in the request by invoking a specified Runtime. Like other operations, Apply has 3 main steps during the whole process.

  1. parse resources and their relationship to build a DAG and should take care of those resources that will be deleted
  2. walk this DAG and execute all graph nodes concurrently, besides the entire process should follow dependencies in this DAG
  3. during the execution of each node, it will invoke different runtime according to the resource type

type ApplyRequest

type ApplyRequest struct {
	models.Request
	Release *apiv1.Release
}

type ApplyResponse

type ApplyResponse struct {
	Release *apiv1.Release
}

type DestroyOperation

type DestroyOperation struct {
	models.Operation
}

func (*DestroyOperation) Destroy

func (do *DestroyOperation) Destroy(req *DestroyRequest) (rsp *DestroyResponse, s v1.Status)

Destroy will delete all resources in this request. The whole process is similar to the operation Apply, but every node's execution is deleting the resource.

type DestroyRequest

type DestroyRequest struct {
	models.Request
	Release *apiv1.Release
}

type DestroyResponse

type DestroyResponse struct {
	Release *apiv1.Release
}

type PortForwardOperation

type PortForwardOperation struct {
	models.Operation
}

func (*PortForwardOperation) PortForward

func (bpo *PortForwardOperation) PortForward(req *PortForwardRequest) error

type PortForwardRequest

type PortForwardRequest struct {
	models.Request
	Spec *v1.Spec
	Port int
}

type PreviewOperation

type PreviewOperation struct {
	models.Operation
}

func (*PreviewOperation) Preview

func (po *PreviewOperation) Preview(req *PreviewRequest) (rsp *PreviewResponse, s v1.Status)

Preview compute all changes between resources in request and the actual infrastructure. The whole process is similar to the operation Apply, but the execution of each node is mocked and will not actually invoke the Runtime

type PreviewRequest

type PreviewRequest struct {
	models.Request
	Spec  *apiv1.Spec
	State *apiv1.State
}

type PreviewResponse

type PreviewResponse struct {
	Order *models.ChangeOrder
}

type WatchOperation

type WatchOperation struct {
	models.Operation
}

func (*WatchOperation) Watch

func (wo *WatchOperation) Watch(req *WatchRequest) error

type WatchRequest

type WatchRequest struct {
	models.Request
	Spec *apiv1.Spec
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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