A simple CLI preflight tool to validate readiness before installing Solace Agent Mesh (SAM) on Kubernetes with Helm.
It is designed to be:
- zero-prompt by default
- one command to run
- clear PASS/WARN/FAIL output
- useful in both local terminal and CI (
--json)
pip install -e .
sam-preflightAlternative entrypoints:
python -m sam_preflight
python tools/preflight/sam_preflight.py- Tooling and cluster reachability
kubectlinstalledhelminstalled- cluster API reachable
- Kubernetes version
>= 1.34.0 - Helm version
>= 3.19.0
- Required SAM values sanity
- Persistence mode readiness (bundled vs external)
- Namespace existence and install RBAC permissions
- Image pull secret readiness
- Cluster capacity estimate (heuristic)
- Optional external checks
- Solace SEMP v2 connectivity (if
SOLACE_SEMP_*is configured) - OpenAI
/v1/modelscheck (if API key is configured)
- Solace SEMP v2 connectivity (if
- Decide the target namespace and permission model early.
- Decide persistence mode before first install:
- bundled persistence for quick starts/POC
- external PostgreSQL + S3 for production
- Prepare broker and LLM credentials securely (avoid committing secrets).
- Plan ingress/TLS strategy before Helm install (especially for OIDC).
- Confirm private registry strategy and image pull secret availability.
-
kubectlandhelmare installed and versions meet minimums - cluster is reachable and target context is correct
- target namespace is chosen and permissions are validated
- required
values.yamlkeys are populated - image pull secret exists if private images are used
- persistence mode is selected and required fields are set
- broker and LLM credentials are ready
- preflight completes with no
FAIL
sam-preflightAuto-discovery order:
- CLI flags
- environment variables
./values.yaml(if present) or--values- vendored chart defaults
sam-preflight --values ./my-values.yaml --namespace solace-agent-meshexport SAM_PREFLIGHT_NAMESPACE=solace-agent-mesh
export SAM_PREFLIGHT_SET__sam__dnsName=sam.example.com
export SAM_PREFLIGHT_SET__broker__url=wss://my-broker.messaging.solace.cloud:443
sam-preflightsam-preflight --jsonExit codes:
0no FAIL checks2one or more FAIL checks
SAM_PREFLIGHT_VALUESSAM_PREFLIGHT_NAMESPACESAM_PREFLIGHT_PROFILE(small|medium|large)SAM_PREFLIGHT_SET__...for path overrides (example:SAM_PREFLIGHT_SET__sam__dnsName)- Optional external checks:
SOLACE_SEMP_BASE_URLSOLACE_SEMP_USERNAMESOLACE_SEMP_PASSWORDSOLACE_SEMP_VERIFY_TLSOPENAI_API_KEYOPENAI_BASE_URL
See:
- This first cut intentionally favors reliability and clear guidance over exhaustive probing.
- Agent capacity estimate is heuristic and explicitly labeled as such.
- DNS pod probes and queue budget checks are intentionally deferred to a next iteration.