Skip to content

Latest commit

 

History

History
116 lines (93 loc) · 6.46 KB

File metadata and controls

116 lines (93 loc) · 6.46 KB

Reference

Lookup tables for the public CLI, endpoint variables, local settings, and fogstack-owned resources. For a first run, use the Tutorial; for recovery, use the Runbook.

CLI Commands

Command Contract
fog init [--force] Creates .env from .env.example. Refuses to replace an existing file unless --force is explicit.
fog up [--profile minimal|full] Diagnoses required runtime capabilities; creates or reuses the cluster, registry, and selected services; waits for health; prints endpoints. Defaults to minimal.
fog demo [--profile minimal|full] Starts/reuses the selected stack, builds and pushes the included sample app, deploys it idempotently with Helm, then prints a verified local URL and response.
fog down Stops/removes fogstack runtime resources while preserving named data volumes.
fog down --volumes --yes Permanently deletes fogstack-owned named data volumes as well. --yes is required for non-interactive destructive cleanup.
fog status [--profile minimal|full] Prints one row per component and exits non-zero when unhealthy. Without a flag, uses the last-started profile when available.
fog endpoints [--profile minimal|full] Prints shell-safe KEY=value lines. Without a flag, uses the last-started profile when available. Read-only.
fog doctor [--profile minimal|full] Checks Docker, 8 GB Docker memory, required runtime tools, compatibility, ports, and host isolation. Exits 2 on a blocking failure and provides remediation.
fog tf-init [--force] <dir> Generates <dir>/fogstack_override.tf for the local AWS-compatible endpoint. Refuses to replace an existing file without --force.
fog version Prints the fogstack version.

Use --verbose where supported to enable shell tracing. Expected unhealthy states use domain messages and documented exit codes; line-number diagnostics are reserved for unexpected internal failures.

fog-toolbox, next to fog, builds/runs pinned contributor and client tools. See the Runbook.

Tools By Capability

Capability Required host commands
minimal/full runtime docker, kind, kubectl, curl
sample-app demo runtime commands plus helm
Terraform override/use terraform (and full runtime for AWS calls)
AWS recipes aws (and full runtime)
contributor verification checks/verify.sh; pinned tools are available through fog-toolbox

Normal users need compatible client versions, not exact patch equality with repository pins. Strict pin enforcement is reserved for repository development.

Variables Printed By fog endpoints

Variable Profile Example value
KUBECONFIG minimal, full <repo>/.state/kubeconfig.yaml
KUBE_CONTEXT minimal, full kind-fogstack
REGISTRY minimal, full localhost:5001
POSTGRES_URL minimal, full postgresql://fogstack:test@localhost:5432/appdb
REDIS_URL minimal, full redis://localhost:6379/0
AWS_ENDPOINT_URL full http://localhost:4566
OPENSEARCH_URL full http://localhost:9200
DASHBOARDS_URL full http://localhost:5601

Preview this output before using eval. Variables apply only to the current shell and should not be copied into a global shell profile.

.env Settings

Use fog init to create .env, then edit local values if required. An exported shell value takes precedence where supported.

Variable Default Purpose
FOGSTACK_PROFILE minimal Default profile before any last-started profile is recorded.
CLUSTER_NAME fogstack kind cluster name.
KUBE_CONTEXT kind-fogstack Context inside the repo-local kubeconfig.
REGISTRY_NAME fogstack-registry Registry container name.
REGISTRY_HOST / REGISTRY_PORT localhost / 5001 Registry endpoint.
POSTGRES_HOST / POSTGRES_PORT localhost / 5432 Postgres endpoint.
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB fogstack / test / appdb Development-only database values.
REDIS_HOST / REDIS_PORT / REDIS_DB localhost / 6379 / 0 Redis endpoint.
AWS_ENDPOINT_URL http://localhost:4566 Full-profile AWS-compatible endpoint.
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY test / test Fake local credentials.
AWS_DEFAULT_REGION us-east-1 Fake local region.
OPENSEARCH_URL / DASHBOARDS_URL localhost:9200 / localhost:5601 Full-profile search endpoints.

Image versions and client pins live in versions.env; change them only during an intentional stack upgrade. Never put real credentials in .env.

Containers, Ports, And Volumes

Container Host port Profile Role
fogstack-control-plane, fogstack-worker* minimal, full kind nodes
fogstack-registry 127.0.0.1:5001 minimal, full OCI registry
fogstack-postgres 127.0.0.1:5432 minimal, full Postgres
fogstack-redis 127.0.0.1:6379 minimal, full Redis
fogstack-emulator 127.0.0.1:4566, 7001-7099 full AWS-compatible API
fogstack-opensearch 127.0.0.1:9200 full OpenSearch
fogstack-dashboards 127.0.0.1:5601 full OpenSearch Dashboards
cloud-provider-kind LB containers dynamic localhost ports minimal, full one per LoadBalancer service

Named volumes are fogstack-pgdata, fogstack-redis-data, fogstack-emulator-data, and fogstack-opensearch-data. fog down preserves them. Only the acknowledged fog down --volumes --yes removes them.

Files In .state/

File Purpose
kubeconfig.yaml Repo-local kubeconfig; the only one fogstack commands use.
aws-config, aws-credentials Repo-local AWS files containing fake local values.
profile Last successfully started profile.
cloud-provider-kind PID/log files Runtime process ownership and diagnostics.

.state/ is disposable runtime configuration. Delete it only while the stack is down; fog up recreates what it needs.

AWS Endpoint Coverage

The full-profile emulator exposes an AWS-compatible API. fog tf-init wires Terraform services such as S3, SQS, IAM, STS, RDS, and EKS to it; CLI and SDK clients must receive an explicit endpoint override. Coverage varies by service. Treat integration wiring as supported and security/network-policy parity as out of scope. See AWS Recipes and Security.