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 ¶
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 ¶
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.)