Directories
¶
| Path | Synopsis |
|---|---|
|
api
|
|
|
v1alpha1
Package v1alpha1 contains the shpyrd.io/v1alpha1 API: the App resource.
|
Package v1alpha1 contains the shpyrd.io/v1alpha1 API: the App resource. |
|
cmd
|
|
|
pg-gateway
command
pg-gateway is a TCP wake-on-connect proxy for sleeping PostgreSQL databases (RFC-0075).
|
pg-gateway is a TCP wake-on-connect proxy for sleeping PostgreSQL databases (RFC-0075). |
|
shpyrd
command
Command shpyrd is the shpyrd command line interface.
|
Command shpyrd is the shpyrd command line interface. |
|
shpyrd-ctl
command
shpyrd-ctl is the operator CLI (RFC-0052): the cluster lifecycle commands that need a kubeconfig (cluster create|init|status|destroy|backup|restore, extensions, registry, sizes, the admin token, the break-glass tools).
|
shpyrd-ctl is the operator CLI (RFC-0052): the cluster lifecycle commands that need a kubeconfig (cluster create|init|status|destroy|backup|restore, extensions, registry, sizes, the admin token, the break-glass tools). |
|
shpyrd-server
command
The open-source platform server: the API, the controllers, the store, the extensions, one implicit workspace.
|
The open-source platform server: the API, the controllers, the store, the extensions, one implicit workspace. |
|
Package deploy embeds the base stack manifests: Kustomize components, Helm values and installer profiles.
|
Package deploy embeds the base stack manifests: Kustomize components, Helm values and installer profiles. |
|
internal
|
|
|
cli
Package cli implements the shpyrd command tree.
|
Package cli implements the shpyrd command tree. |
|
controller
Package controller reconciles shpyrd App resources into kpack builds, Deployments, Services and Ingresses.
|
Package controller reconciles shpyrd App resources into kpack builds, Deployments, Services and Ingresses. |
|
pkg
|
|
|
api
Package api implements the shpyrd HTTP API and serves the embedded UI.
|
Package api implements the shpyrd HTTP API and serves the embedded UI. |
|
audit
Package audit records who did what (RFC-0008) as Kubernetes Events with structured annotations: the API records its mutations, the CLI records the actions it performs directly on the cluster.
|
Package audit records who did what (RFC-0008) as Kubernetes Events with structured annotations: the API records its mutations, the CLI records the actions it performs directly on the cluster. |
|
authz
Package authz decides what an identity may do (RFC-0008): a small static role table, memberships read from the control-plane store (teams and grants, RFC-0033), and a bootstrap rule so a fresh cluster is usable before anyone defines teams.
|
Package authz decides what an identity may do (RFC-0008): a small static role table, memberships read from the control-plane store (teams and grants, RFC-0033), and a bootstrap rule so a fresh cluster is usable before anyone defines teams. |
|
backup
Package backup exports the platform's state (RFC-0037): every shpyrd object, the config var Secrets and release snapshots, memberships, local accounts and the install record, plus the source archives builds need, as one tarball encrypted with age, and restores it on a fresh cluster.
|
Package backup exports the platform's state (RFC-0037): every shpyrd object, the config var Secrets and release snapshots, memberships, local accounts and the install record, plus the source archives builds need, as one tarball encrypted with age, and restores it on a fresh cluster. |
|
buildtrust
Package buildtrust serves the admission webhook that makes kpack build pods trust the platform CA (RFC-0059).
|
Package buildtrust serves the admission webhook that makes kpack build pods trust the platform CA (RFC-0059). |
|
cliout
Package cliout prints a command's result for two readers.
|
Package cliout prints a command's result for two readers. |
|
configvars
Package configvars manages an app's config vars: the keys of Secret <app>-env plus per-key metadata (when each was last set).
|
Package configvars manages an app's config vars: the keys of Secret <app>-env plus per-key metadata (when each was last set). |
|
edge
Package edge is the identity the platform hands to apps (RFC-0033): the ingress asks /edge/auth who the caller is and whether they may open the app; the answer carries a short-lived JWT signed with the platform's key, which apps verify against the JWKS.
|
Package edge is the identity the platform hands to apps (RFC-0033): the ingress asks /edge/auth who the caller is and whether they may open the app; the answer carries a short-lived JWT signed with the platform's key, which apps verify against the JWKS. |
|
ext
Package ext defines how optional platform capabilities plug into shpyrd (RFC-0002).
|
Package ext defines how optional platform capabilities plug into shpyrd (RFC-0002). |
|
ext/all
Package all is the registry of built-in extensions (RFC-0002).
|
Package all is the registry of built-in extensions (RFC-0002). |
|
ext/authlocal
Package authlocal is the auth-local extension (RFC-0007 step 3.1): a Dex issuer with local email/password accounts, registered as a login provider of the dashboard, plus account management for admins.
|
Package authlocal is the auth-local extension (RFC-0007 step 3.1): a Dex issuer with local email/password accounts, registered as a login provider of the dashboard, plus account management for admins. |
|
ext/logsagent
Package logsagent is the logs-agent extension (RFC-0022a): a Vector DaemonSet that collects container logs from all project pods, attaches project/process/instance labels and feeds log drains (RFC-0023).
|
Package logsagent is the logs-agent extension (RFC-0022a): a Vector DaemonSet that collects container logs from all project pods, attaches project/process/instance labels and feeds log drains (RFC-0023). |
|
ext/mail
Package mail is the mail extension (RFC-0013): one SMTP sender the platform uses for invitations and, later, notifications.
|
Package mail is the mail extension (RFC-0013): one SMTP sender the platform uses for invitations and, later, notifications. |
|
ext/objectstorage
Package objectstorage is the object-storage extension (RFC-0046): MinIO in the cluster as the platform's S3-compatible store, a bucket and a scoped credential per consumer through ObjectBucket resources, usage on the cluster page.
|
Package objectstorage is the object-storage extension (RFC-0046): MinIO in the cluster as the platform's S3-compatible store, a bucket and a scoped credential per consumer through ObjectBucket resources, usage on the cluster page. |
|
ext/opencost
Package opencost is the OpenCost extension (RFC-0075): infrastructure cost allocation for the operator economics dashboard.
|
Package opencost is the OpenCost extension (RFC-0075): infrastructure cost allocation for the operator economics dashboard. |
|
ext/postgres
Package postgres is the postgres extension (RFC-0009): PostgreSQL databases for projects, run by the CloudNativePG operator, attachable to apps as DATABASE_URL.
|
Package postgres is the postgres extension (RFC-0009): PostgreSQL databases for projects, run by the CloudNativePG operator, attachable to apps as DATABASE_URL. |
|
ext/redis
Package redis is the redis extension (RFC-0010): Redis-compatible stores (Valkey by default) for projects, attachable to apps as REDIS_URL.
|
Package redis is the redis extension (RFC-0010): Redis-compatible stores (Valkey by default) for projects, attachable to apps as REDIS_URL. |
|
ext/resources
Package resources holds helpers shared by the data store extensions' CLIs: creating, listing and deleting project resources with the kubeconfig, and refusing to delete what an app still uses.
|
Package resources holds helpers shared by the data store extensions' CLIs: creating, listing and deleting project resources with the kubeconfig, and refusing to delete what an app still uses. |
|
ext/sleep
Package sleep is the scale-to-zero extension (RFC-0075): it installs KEDA and the KEDA HTTP add-on, which the app controller uses to put a web process to sleep after a quiet period and wake it on the first request.
|
Package sleep is the scale-to-zero extension (RFC-0075): it installs KEDA and the KEDA HTTP add-on, which the app controller uses to put a web process to sleep after a quiet period and wake it on the first request. |
|
ids
Package ids renders the platform's identifiers for places where a UUID's 36 characters and dashes do not fit: image repositories, hostnames, file names.
|
Package ids renders the platform's identifiers for places where a UUID's 36 characters and dashes do not fit: image repositories, hostnames, file names. |
|
install
Package install renders and applies the shpyrd base stack in dependency ordered runlevels, from manifests embedded in the binary.
|
Package install renders and applies the shpyrd base stack in dependency ordered runlevels, from manifests embedded in the binary. |
|
kexec
Package kexec runs commands in pods and attaches to them with the local terminal: WebSocket with SPDY fallback, raw mode and resize forwarding when stdin is a terminal, remote exit codes surfaced as ExitError.
|
Package kexec runs commands in pods and attaches to them with the local terminal: WebSocket with SPDY fallback, raw mode and resize forwarding when stdin is a terminal, remote exit codes surfaced as ExitError. |
|
kind
Package kind creates and deletes local kind clusters shaped for shpyrd: host ports 80/443 mapped to the control-plane for ingress-nginx, the in-cluster registry NodePort mapped to the host, and a containerd mirror so nodes can pull images that kpack pushed to that registry.
|
Package kind creates and deletes local kind clusters shaped for shpyrd: host ports 80/443 mapped to the control-plane for ingress-nginx, the in-cluster registry NodePort mapped to the host, and a containerd mirror so nodes can pull images that kpack pushed to that registry. |
|
kube
Package kube provides Kubernetes configuration discovery and a small client bundle shared by the CLI, the installer and the in-cluster server.
|
Package kube provides Kubernetes configuration discovery and a small client bundle shared by the CLI, the installer and the in-cluster server. |
|
localca
Package localca manages a locally generated root certificate authority used by the local profile in place of a public or cloud CA.
|
Package localca manages a locally generated root certificate authority used by the local profile in place of a public or cloud CA. |
|
localnet
Package localnet knows the developer's machine (RFC-0057): which ports are free, whether a Caddy already owns 443 and can be the front door, and whether *.<domain> resolves locally through dnsmasq and macOS resolver files.
|
Package localnet knows the developer's machine (RFC-0057): which ports are free, whether a Caddy already owns 443 and can be the front door, and whether *.<domain> resolves locally through dnsmasq and macOS resolver files. |
|
logfmt
Package logfmt reads one log line and says what it contains: a level, a message, a timestamp and the remaining fields.
|
Package logfmt reads one log line and says what it contains: a level, a message, a timestamp and the remaining fields. |
|
logs
Package logs holds shared log-related utilities used by both the API server and the controller (RFC-0022a).
|
Package logs holds shared log-related utilities used by both the API server and the controller (RFC-0022a). |
|
objectstore
Package objectstore talks to the platform's object store (Garage, RFC-0046) as its administrator: buckets, keys and permissions through the admin API, retention through the S3 API.
|
Package objectstore talks to the platform's object store (Garage, RFC-0046) as its administrator: buckets, keys and permissions through the admin API, retention through the S3 API. |
|
pages
Package pages holds the pages the server serves by itself, where no application answers: nothing here, no access, waking up, and the mark alone.
|
Package pages holds the pages the server serves by itself, where no application answers: nothing here, no access, waking up, and the mark alone. |
|
project
Package project holds the naming rules of a project (RFC-0011): a human display name, a URL-safe slug derived from it, and the namespace scheme.
|
Package project holds the naming rules of a project (RFC-0011): a human display name, a URL-safe slug derived from it, and the namespace scheme. |
|
registry
Package registry is a small client for the OCI distribution API of the platform's image registry: what the dashboard needs to show the images it holds and what the controller needs to delete the ones no release references (RFC-0059).
|
Package registry is a small client for the OCI distribution API of the platform's image registry: what the dashboard needs to show the images it holds and what the controller needs to delete the ones no release references (RFC-0059). |
|
server
Command shpyrd-server runs the shpyrd API, the App controller and serves the dashboard from inside the cluster (or locally against a kubeconfig).
|
Command shpyrd-server runs the shpyrd API, the App controller and serves the dashboard from inside the cluster (or locally against a kubeconfig). |
|
sizes
Package sizes defines instance sizes: named CPU/memory allocations a process runs with, the equivalent of Fly machine sizes or Render instance types.
|
Package sizes defines instance sizes: named CPU/memory allocations a process runs with, the equivalent of Fly machine sizes or Render instance types. |
|
store
Package store is the platform's control-plane database (RFC-0033): the workspace, the people it has seen, teams and their grants on projects.
|
Package store is the platform's control-plane database (RFC-0033): the workspace, the people it has seen, teams and their grants on projects. |
|
tenancy
Package tenancy maps the host a request arrived at to the door it came through (RFC-0080): the console, the operator's, at the console host; or a workspace, at its address, one label under it, or one of its hosts.
|
Package tenancy maps the host a request arrived at to the door it came through (RFC-0080): the console, the operator's, at the console host; or a workspace, at its address, one label under it, or one of its hosts. |
|
ui
Package ui embeds the applications the server serves: a folder per application in dist/, console/ and workspace/, each what `next build` exported for it (apps/<app>/out).
|
Package ui embeds the applications the server serves: a folder per application in dist/, console/ and workspace/, each what `next build` exported for it (apps/<app>/out). |
|
version
Package version holds the build version, set with -ldflags "-X shpyrd/pkg/version.Version=v1.2.3".
|
Package version holds the build version, set with -ldflags "-X shpyrd/pkg/version.Version=v1.2.3". |
Click to show internal directories.
Click to hide internal directories.
