catalog

package
v0.4.8 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package catalog resolves a module NAME to the coordinates `tiny` needs to install it, using the public, unauthenticated Tiny Systems catalog at api.tinysystems.io. No account, no key.

The key insight: every module installs from the SAME helm chart (tinysystems-operator). What varies per module is the container image (repo + tag) and whether it needs Kubernetes RBAC. So "resolve a module" means "look up its image + access flag" — the chart itself is constant.

Index

Constants

View Source
const DefaultBaseURL = "https://api.tinysystems.io"

DefaultBaseURL is the public catalog. Overridable for on-prem mirrors.

Variables

This section is empty.

Functions

This section is empty.

Types

type Module

type Module struct {
	// Name is what the user typed (e.g. "http-module" or "http-module-v0").
	Name string
	// FullName is workspace-qualified (e.g. "tinysystems/http-module-v0").
	// This is what the operator runs as `--name`, so node IDs the agent
	// builds line up with the module that reconciles them.
	FullName string
	// Repo + Tag are the container image coordinates fed to the operator chart.
	Repo string
	Tag  string
	// RequiresKubernetesAccess turns on the chart's baseline RBAC (pods,
	// services, deployments, ingresses) for modules that manage cluster
	// resources — http-module's port exposure, kubernetes-module's ops.
	RequiresKubernetesAccess bool
	// RequiresIngress / RequiresStorage tell us whether this module needs the
	// cluster's ingress class / storage class wired at install time.
	RequiresIngress bool
	RequiresStorage bool
}

Module is the resolved, install-ready view of a catalog module.

func Resolve

func Resolve(ctx context.Context, name string) (*Module, error)

Resolve looks up a module by name against the public catalog. The catalog is a FLAT namespace keyed by the bare module id (`<module>-v0`) — the workspace prefix in a name's `full_name` (e.g. `tinysystems/http-module-v0`) is a display label, not part of the lookup (GET /v1/modules/tinysystems/… 404s). So a workspace-qualified name is accepted for readability but resolved by its module part, and the version suffix ("-v0") stays optional. (True per- workspace lookup has to start at the catalog API, not here.)

Jump to

Keyboard shortcuts

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