gmapi

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package gmapi executes greymatter CLI commands to configure mesh behavior in Control and Catalog APIs in each install namespace for each mesh. It enables Mesh CR specifications to define how a mesh should be configured.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyAll

func ApplyAll(client *Client, objects []json.RawMessage, kinds []string)

func ApplyCoreMeshConfigs

func ApplyCoreMeshConfigs(client *Client, operatorCUE *cuemodule.OperatorCUE)

ApplyCoreMeshConfigs extracts the greymatter manifests from the CUE and applies them to control-api

func DeleteAllByGMObjectRefs added in v0.10.0

func DeleteAllByGMObjectRefs(client *Client, objectsToDelete []gitops.GMObjectRef)

func UnApplyAll

func UnApplyAll(client *Client, objects []json.RawMessage, kinds []string)

Types

type CLI

type CLI interface {
	GetClient() *Client
	ConfigureMeshClient(mesh *meshv1.Mesh, sync *gitops.Sync)
	RemoveMeshClient()
	MaybeConfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)
	EnsureClient(in string)
	UnconfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)
}

CLI interface for configuring Grey Matter

func New

func New(ctx context.Context, operatorCUE *cuemodule.OperatorCUE) (CLI, error)

New returns a new *CLI instance. It receives a context for cleaning up goroutines started by the *CLI.

type Client

type Client struct {
	ControlCmds chan Cmd
	CatalogCmds chan Cmd
	Ctx         context.Context
	Cancel      context.CancelFunc
	Sync        *gitops.Sync
	// contains filtered or unexported fields
}

type Cmd

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

func MkApply

func MkApply(kind string, data json.RawMessage) Cmd

type GreymatterCLI added in v0.11.0

type GreymatterCLI struct {
	*sync.RWMutex
	Client *Client
	// contains filtered or unexported fields
}

GreymatterCLI exposes methods for configuring clients that execute greymatter CLI commands.

func (*GreymatterCLI) ConfigureMeshClient added in v0.11.0

func (c *GreymatterCLI) ConfigureMeshClient(mesh *meshv1.Mesh, sync *gitops.Sync)

ConfigureMeshClient initializes or updates a greymatter CLI client utilizing a base64 encoded config.toml file.

func (*GreymatterCLI) EnsureClient added in v0.11.0

func (c *GreymatterCLI) EnsureClient(in string)

func (*GreymatterCLI) GetClient added in v0.11.0

func (c *GreymatterCLI) GetClient() *Client

func (*GreymatterCLI) MaybeConfigureSidecar added in v0.11.0

func (c *GreymatterCLI) MaybeConfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)

MaybeConfigureSidecar applies fabric objects that add a workload to the mesh specified given the workload's annotations and a list of its corev1.Containers.

func (*GreymatterCLI) RemoveMeshClient added in v0.11.0

func (c *GreymatterCLI) RemoveMeshClient()

RemoveMeshClient cleans up a Client's goroutines before removing it from the *CLI.

func (*GreymatterCLI) UnconfigureSidecar added in v0.11.0

func (c *GreymatterCLI) UnconfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)

UnconfigureSidecar removes fabric objects, disconnecting the workload from the mesh specified

type MockCLI added in v0.11.0

type MockCLI struct {
	Client      *Client
	ControlCmds []Cmd
	CatalogCmds []Cmd
}

MockCLI implements CLI for testing purposes

func (*MockCLI) ConfigureMeshClient added in v0.11.0

func (m *MockCLI) ConfigureMeshClient(mesh *meshv1.Mesh, sync *gitops.Sync)

func (*MockCLI) EnsureClient added in v0.11.0

func (m *MockCLI) EnsureClient(in string)

func (*MockCLI) GetClient added in v0.11.0

func (m *MockCLI) GetClient() *Client

func (*MockCLI) MaybeConfigureSidecar added in v0.11.0

func (m *MockCLI) MaybeConfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)

func (*MockCLI) RemoveMeshClient added in v0.11.0

func (m *MockCLI) RemoveMeshClient()

func (*MockCLI) UnconfigureSidecar added in v0.11.0

func (m *MockCLI) UnconfigureSidecar(operatorCUE *cuemodule.OperatorCUE, name string, annotations map[string]string)

Jump to

Keyboard shortcuts

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