stack

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: Apache-2.0 Imports: 17 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

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) 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, force bool, backendName string) error

Init initializes the stack configuration

func Purge

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

Purge deletes the cluster config and optionally data

func SaveBackend

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

SaveBackend persists the backend choice

func Up

func Up(cfg *config.Config) error

Up starts the cluster using the configured backend

Types

type Backend

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, stackID string) error

	// Up creates or starts the cluster and returns kubeconfig contents
	Up(cfg *config.Config, 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, stackID string) error

	// Destroy removes the cluster entirely (containers/processes)
	Destroy(cfg *config.Config, 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

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

func NewBackend(name string) (Backend, error)

NewBackend creates a Backend by name

type K3dBackend

type K3dBackend struct{}

K3dBackend manages clusters via k3d (k3s inside Docker containers)

func (*K3dBackend) DataDir

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

func (*K3dBackend) Destroy

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

func (*K3dBackend) Down

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

func (*K3dBackend) Init

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

func (*K3dBackend) IsRunning

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

func (*K3dBackend) Name

func (b *K3dBackend) Name() string

func (*K3dBackend) Prerequisites

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

func (*K3dBackend) Up

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

type K3sBackend

type K3sBackend struct{}

K3sBackend manages a standalone k3s cluster (bare-metal)

func (*K3sBackend) DataDir

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

func (*K3sBackend) Destroy

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

func (*K3sBackend) Down

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

func (*K3sBackend) Init

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

func (*K3sBackend) IsRunning

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

func (*K3sBackend) Name

func (b *K3sBackend) Name() string

func (*K3sBackend) Prerequisites

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

func (*K3sBackend) Up

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

Jump to

Keyboard shortcuts

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