Skip to content

kindgi deploy

View as Markdown

Synopsis

Terminal window
kindgi deploy [--env <name>] [--from-envelope <path>] [--endpoint <url>] [--token <bearer>] [--tenant <id>] [--project <id|slug>] [--hosted] [--idempotency-key <str>] [--dry-run] [--sync-secrets] [--allow-missing-env] [--target <t>] [--build-endpoint <url>] [--out <dir>] [--artifact-version <v>] [--published-at <iso>] [--signing-key <path>] [--signer-key-id <id>] [--registry-push-creds <ref>] [--skip-integrity-gate] [--skip-image-pull] [--skip-sign] [--path <dir>]
Signature

Deploy a signed pack image to Kindgi. Reads deploy-envelope.json (or runs kindgi build inline) + POSTs to /v1/deployments.

Options

Option Default Description
--allow-missing-env off Deploy, with a warning, even when a name in the pack's env.required has no value for --env.
--artifact-version <value> for an inline build: the build time, as YYYYMMDD.HHMMSS (UTC) For an inline build: the artifact version. Default: the build time as YYYYMMDD.HHMMSS (UTC). For a reproducible build, pass --artifact-version and --published-at.
--build-endpoint <value> for an inline build: the env block's build For an inline build: the build server (kindgi build --endpoint). Default: the env block's build.
--dry-run off Print the equivalent curl request instead of sending it. A missing envelope is still built first.
--endpoint <value> the env block's endpoint, else the CLI's API URL (--url, KINDGI_API_URL, config files); required when none. A stored API key goes only to the address stored with it (--token or KINDGI_API_TOKEN gives another server's key); with --hosted, the endpoint can only be the CLI's API URL, and the .kindgirc.json that kindgi dev writes isn't read The API to deploy to. Default: the env block's endpoint, else the CLI's API URL (--url, KINDGI_API_URL, config files).
--env <value> staging The environment: its block in kindgi.config.ts and its .env.<name> file. Default: staging.
--from-envelope <value> deploy-envelope.json in --out; an inline build runs when it is missing The envelope to deploy. Default: deploy-envelope.json in --out; when there is none, kindgi build runs first.
--hosted off Deploy to Kindgi hosted: an inline build runs on the hosted build service (as kindgi build --hosted), and after the deploy it waits, up to 5 minutes, for the deployment's pack service to be ready. Same as the env block's build: 'hosted'.
--idempotency-key <value> a hash of the request body The Idempotency-Key header. Default: a hash of the request body, so the same image deployed again returns the same deployment.
--out <value> .kindgi/build under the pack root Where the envelope is looked for, and an inline build writes. Default: .kindgi/build under the pack root.
--path <value> the current directory The pack root. Default: the current directory.
--project <value> none: a tenant-wide deploy, into the tenant's Default project The project to deploy into, one per client: its id, or its slug. A slug two orgs share is refused: pass the id. Default: a tenant-wide deploy, into the tenant's Default project.
--published-at <value> for an inline build: the build time For an inline build: the publish time (an ISO 8601 time with a zone, or a date: its start, UTC). Default: the build time. For a reproducible build, pass --artifact-version and --published-at.
--registry-push-creds <value> none For an inline build: a reference to the registry push credentials for the build server to use.
--signer-key-id <value> for an inline build: the env block's signerKeyId, else the key file's name For an inline build: the key id the signature names. Default: the env block's signerKeyId, else the key file's name.
--signing-key <value> for an inline build: the env block's signingKey For an inline build: the Ed25519 private key (PEM) to sign with. Default: the env block's signingKey.
--skip-image-pull off For an inline build: check the image's index by hash only, without pulling the image.
--skip-integrity-gate off For an inline build: sign without checking the image's index against the local one.
--skip-sign off For an inline build: write an unsigned envelope, which the deploy then refuses unless --dry-run.
--sync-secrets off After the deploy lands, also send the values in .env.<env> to the deployment's secrets. Off by default.
--target <value> for an inline build: the env block's buildTarget, else the env name For an inline build: the build target. Default: the env block's buildTarget, else the env name.
--tenant <value> none (no check); an inline build takes the env block's tenantId, else KINDGI_TENANT_ID Refuse unless the envelope was signed for this tenant (checked before sending). Also passed to an inline build.

Every command also takes the global flags.

Examples

From Deploy on Azure Container Apps:

Terminal window
pnpm exec kindgi deploy --env dev --endpoint "$URL"

From Deploy on Google Cloud Run:

Terminal window
pnpm exec kindgi deploy --env prod --endpoint "$URL"

See also