stack

package
v0.9.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BackendK3d is the k3d backend (Docker-based, default)
	BackendK3d = "k3d"
	// BackendK3s is the standalone k3s backend (bare-metal)
	BackendK3s = "k3s"
)

Variables

This section is empty.

Functions

func DetectExistingBackend added in v0.3.1

func DetectExistingBackend(cfg *config.Config) string

DetectExistingBackend reads the persisted backend choice without falling back to a default. Returns empty string if no backend file exists, which lets Init() apply its own default.

func Down

func Down(cfg *config.Config, u *ui.UI) error

Down stops the cluster and the DNS resolver container.

func GetStackID

func GetStackID(cfg *config.Config) string

GetStackID reads the stored stack ID (exported for use in main)

func Init

func Init(cfg *config.Config, u *ui.UI, force bool, backendName string) error

Init initializes the stack configuration

func LocalIngressURL added in v0.8.0

func LocalIngressURL(cfg *config.Config) string

LocalIngressURL returns the best local HTTP base URL for the current stack. For k3d, it prefers the first host port mapped to container port 80 in the generated k3d config. For historical/default setups it falls back to http://obol.stack or http://obol.stack:8080.

func Purge

func Purge(cfg *config.Config, u *ui.UI, force bool) error

Purge deletes the cluster config and optionally data

func SaveBackend added in v0.3.1

func SaveBackend(cfg *config.Config, name string) error

SaveBackend persists the backend choice

func Up

func Up(cfg *config.Config, u *ui.UI, wildcardDNS bool) error

Up starts the cluster using the configured backend

Types

type Backend added in v0.3.1

type Backend interface {
	// Name returns the backend identifier (e.g., "k3d", "k3s")
	Name() string

	// Init generates backend-specific cluster configuration files
	Init(cfg *config.Config, u *ui.UI, stackID string) error

	// Up creates or starts the cluster and returns kubeconfig contents
	Up(cfg *config.Config, u *ui.UI, stackID string) (kubeconfigData []byte, err error)

	// IsRunning returns true if the cluster is currently running
	IsRunning(cfg *config.Config, stackID string) (bool, error)

	// Down stops the cluster without destroying configuration or data
	Down(cfg *config.Config, u *ui.UI, stackID string) error

	// Destroy removes the cluster entirely (containers/processes)
	Destroy(cfg *config.Config, u *ui.UI, stackID string) error

	// DataDir returns the storage path for the local-path-provisioner.
	// For k3d this is "/data" (Docker volume mount point).
	// For k3s this is the absolute host path to cfg.DataDir.
	DataDir(cfg *config.Config) string

	// Prerequisites checks that required software/permissions are available
	Prerequisites(cfg *config.Config) error
}

Backend abstracts the Kubernetes cluster runtime (k3d, k3s)

func LoadBackend added in v0.3.1

func LoadBackend(cfg *config.Config) (Backend, error)

LoadBackend reads the persisted backend choice from .stack-backend file. Falls back to k3d if no file exists (backward compatibility).

func NewBackend added in v0.3.1

func NewBackend(name string) (Backend, error)

NewBackend creates a Backend by name

type K3dBackend added in v0.3.1

type K3dBackend struct{}

K3dBackend manages clusters via k3d (k3s inside Docker containers)

func (*K3dBackend) DataDir added in v0.3.1

func (b *K3dBackend) DataDir(cfg *config.Config) string

func (*K3dBackend) Destroy added in v0.3.1

func (b *K3dBackend) Destroy(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3dBackend) Down added in v0.3.1

func (b *K3dBackend) Down(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3dBackend) Init added in v0.3.1

func (b *K3dBackend) Init(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3dBackend) IsRunning added in v0.3.1

func (b *K3dBackend) IsRunning(cfg *config.Config, stackID string) (bool, error)

func (*K3dBackend) Name added in v0.3.1

func (b *K3dBackend) Name() string

func (*K3dBackend) Prerequisites added in v0.3.1

func (b *K3dBackend) Prerequisites(cfg *config.Config) error

func (*K3dBackend) Up added in v0.3.1

func (b *K3dBackend) Up(cfg *config.Config, u *ui.UI, stackID string) ([]byte, error)

type K3sBackend added in v0.3.1

type K3sBackend struct{}

K3sBackend manages a standalone k3s cluster (bare-metal)

func (*K3sBackend) DataDir added in v0.3.1

func (b *K3sBackend) DataDir(cfg *config.Config) string

func (*K3sBackend) Destroy added in v0.3.1

func (b *K3sBackend) Destroy(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3sBackend) Down added in v0.3.1

func (b *K3sBackend) Down(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3sBackend) Init added in v0.3.1

func (b *K3sBackend) Init(cfg *config.Config, u *ui.UI, stackID string) error

func (*K3sBackend) IsRunning added in v0.3.1

func (b *K3sBackend) IsRunning(cfg *config.Config, stackID string) (bool, error)

func (*K3sBackend) Name added in v0.3.1

func (b *K3sBackend) Name() string

func (*K3sBackend) Prerequisites added in v0.3.1

func (b *K3sBackend) Prerequisites(cfg *config.Config) error

func (*K3sBackend) Up added in v0.3.1

func (b *K3sBackend) Up(cfg *config.Config, u *ui.UI, stackID string) ([]byte, error)

Jump to

Keyboard shortcuts

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