Skip to content

trussiumctl

trussiumctl is the standalone, public Go CLI for Trussium platform operations. It will own Kubernetes and Helm workflows while the Python trussium CLI continues to own runtime-local commands.

Current status

The repository provides a versioned command boundary for read-only inspection, diagnostics, and guarded install, upgrade, and rollback workflows against the published Helm chart and Operator.

$ trussiumctl version
dev
$ trussiumctl runtime status --url http://127.0.0.1:9000
{"status":"ready"}
$ trussiumctl operator status --namespace trussium-system
$ trussiumctl helm status --namespace trussium-system --release trussium
$ trussiumctl compatibility check --runtime 1.27.0 --chart 1.3.1 --operator 1.0.3
$ trussiumctl diagnostics cluster --namespace trussium-system
$ trussiumctl install --dry-run --namespace trussium-system --chart trussium/trussium
$ trussiumctl install --dry-run --server-dry-run --namespace trussium-system --chart trussium/trussium
$ trussiumctl upgrade --dry-run --namespace trussium-system --target-runtime 1.28.0 --target-chart 1.3.1 --target-operator 1.0.3
$ trussiumctl rollback --dry-run --namespace trussium-system --target-runtime 1.27.0 --target-chart 1.3.1 --target-operator 1.0.3

The CLI does not embed runtime execution logic, provider SDKs, or credentials. Inspection commands invoke only read-only kubectl get and helm status operations and return bounded JSON suitable for automation. Compatibility checks are local and read-only; they fail closed when versions are missing, malformed, or below the current supported baseline. diagnostics cluster composes the four read-only checks and preserves bounded section results when one dependency is unavailable. When version flags are omitted, it discovers the deployed runtime app version, Helm chart version, and Operator image tag from the cluster; explicit version flags remain available to override discovery for planned-change checks. upgrade --dry-run uses the same discovery for omitted current-version flags; provide any current version explicitly when validating a hypothetical baseline. Guarded upgrades use the same read-only discovery before requesting confirmation or rendering a manifest, and fail closed if the deployed baseline cannot be resolved. This prevents a mutation from proceeding with an unknown baseline. install currently requires --dry-run and invokes only helm template; it cannot change a cluster. With --server-dry-run, the rendered manifest is additionally sent to kubectl apply --dry-run=server; the API server validates it without storing resources. The guarded write form requires --confirm TRUSSIUM, validates first, waits for Helm completion, and verifies the resulting release status. upgrade --dry-run validates both version sets and renders the target chart without invoking helm upgrade. The guarded write form requires --confirm TRUSSIUM, validates the target chart server-side, runs helm upgrade --install --wait, and verifies the release status. rollback requires --dry-run, validates the target release, and renders the rollback chart without invoking helm rollback. Rollback reports include an explicit verification result; dry-run verification is always marked as not performed. Mutating commands require the exact confirmation token TRUSSIUM. The guarded write form requires --confirm TRUSSIUM, validates the rollback chart server-side, runs helm rollback --wait, and verifies the release status.

Development

Requires Go 1.25 or newer.

go test ./...
go vet ./...
go run ./cmd/trussiumctl version

Releases use Conventional Commits and semantic-release tags. Release assets are built for Linux and macOS on amd64 and arm64; package publication is deferred until a registry credential is intentionally configured. Release archives are checksum-verified and accompanied by GitHub artifact attestations generated by the release workflow. Verify a downloaded archive with:

sha256sum -c checksums.txt --ignore-missing
gh attestation verify path/to/trussiumctl_linux_amd64.tar.gz \
  --repo trussiumhq/trussiumctl

See docs/RELEASE.md for the complete release-readiness and post-release verification checklist, including archive checksum and attestation verification.

License

Apache-2.0. See LICENSE.