components

package
v0.0.0-...-0419f76 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2025 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddComponent

func AddComponent[C Component](
	ctx *pulumi.Context,
	name string,
	component C,
) ([]pulumi.Resource, error)

AddComponent adds a component to the cluster.

func Check

func Check(_ []pulumi.Resource, err error)

Check may be usedd as convenience wrapper to error-check component creation.

Types

type Capacitor

type Capacitor struct {
	Dependencies []pulumi.Resource
}

func (*Capacitor) Install

func (component *Capacitor) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install sets up the Capacitor dashboard.

type Cilium

type Cilium struct {
	Version string
}

Configuration for a Cilium deployment.

func (*Cilium) Install

func (component *Cilium) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install installs Cilium on the cluster.

type Component

type Component interface {
	Install(ctx *pulumi.Context, name string) ([]pulumi.Resource, error)
}

A generic Component type used by all components.

type Flux

type Flux struct {
	Version      string
	Dependencies []pulumi.Resource
}

The configuration for Flux.

func (*Flux) Install

func (component *Flux) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install sets up Flux in the cluster.

type Gateway

type Gateway struct {
	ExternalPort int
	InternalPort int
	Routes       []RouteConfig
}

type InternalGateway

type InternalGateway struct {
	Name  string
	IP    string
	HTTP2 bool
}

Gateway struct to hold name and IP.

type InternalGatewaysData

type InternalGatewaysData struct {
	InternalGateways []InternalGateway
	Gateways         []Gateway
}

GatewaysData struct to hold multiple Gateways for templating.

type Loadbalancer

type Loadbalancer struct {
	Version      string
	Gateways     []Gateway
	Dependencies []pulumi.Resource
}

A local loadbalancer.

func (*Loadbalancer) Install

func (component *Loadbalancer) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install installs a local loadbalancer on docker and makes it available to the kind cluster.

type LocalPV

type LocalPV struct {
	Size     string
	HostPath string
}

Configuration to create a PV which mount a node-local directory via `hostPath`.

func (*LocalPV) Install

func (component *LocalPV) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install creates a PersistentVolume from a `LocalPV` config.

type NativeLinkGateways

type NativeLinkGateways struct {
	Dependencies []pulumi.Resource
}

func (*NativeLinkGateways) Install

func (component *NativeLinkGateways) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install sets up the Gateways for the NativeLink deployment.

Contrary to the rest of the NativeLink setup, these gateways aren't part of the regular deployment. Recreating the Gateways would change their local IPs which makes development less convenient. Instead, we create them once and take the IPs for granted to be fixed after initial creation.

It's unclear whether this indirection is the right approach and we might add them to the regular deployments when more infrastructure is in place to support changing Gateway IPs.

type NativeLinkRoutes

type NativeLinkRoutes struct {
	Dependencies []pulumi.Resource
}

func (*NativeLinkRoutes) Install

func (component *NativeLinkRoutes) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install sets up the Routes for the NativeLink deployment.

Contrary to the rest of the NativeLink setup, these gateways aren't part of the regular deployment. Recreating the Gateways would change their local IPs which makes development less convenient. Instead, we create them once and take the IPs for granted to be fixed after initial creation.

It's unclear whether this indirection is the right approach and we might add them to the regular deployments when more infrastructure is in place to support changing Gateway IPs.

type Registry

type Registry struct {
	InternalPort int
	ExternalPort int
}

A local container registry.

func (*Registry) Install

func (component *Registry) Install(
	ctx *pulumi.Context,
	name string,
) ([]pulumi.Resource, error)

Install installs a local registry on the host and makes it available to a kind cluster.

type RouteConfig

type RouteConfig struct {
	Prefix        string
	Cluster       string
	PrefixRewrite string
	GRPC          bool
}

Route struct representing a route with prefix, cluster, and optional gRPC field.

Jump to

Keyboard shortcuts

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