Skip to main content

catladder CLI command reference

All commands run non-interactively as yarn catladder <command> ... (pnpm catladder ... in pnpm projects); see SKILL.md for how to pass inputs.

catladder cloudsql restore-db​

restore a db from one source to another target

  • --source <value>: Source instance (connection string or 'local')?
  • --source-local-port <value>: Local Port for source? (default: 5432)
  • --source-username <value>: Source Username? (default: "postgres")
  • --source-password <value>: Source Password?
  • --source-db-name <value>: Source DB name?
  • --target <value>: Target INSTANCE (connection string or 'local')?
  • --target-local-port <value>: Local Port for target? (default: 5432)
  • --target-username <value>: Target Username? (default: "postgres")
  • --target-password <value>: Target Password?
  • --target-db-name <value>: Target DB name?

catladder fun dadjoke​

something for jonas.

catladder fun starwars​

Long time ago... in a galaxy far far away...

catladder k8s current-context​

show current kubernetes context

catladder k8s get-shell [namespace]​

get a shell to a pod in the environment

  • namespace (positional): kubernetes namespace
  • --pod-name <value>: Which pod?

catladder k8s list-namespaces​

list all namespaces

catladder k8s list-pods [namespace]​

list all pods of namespace

  • namespace (positional): kubernetes namespace

catladder k8s list-secrets [namespace]​

show secrets

  • namespace (positional): kubernetes namespace

catladder k8s port-forward [namespace]​

start port-forwarding

  • namespace (positional): kubernetes namespace
  • --pod-name <value>: Which pod?
  • --local-port <value>: Local port:
  • --remote-port <value>: Remote port:

catladder k8s stop-portforward [name]​

stop a running port forward

  • name (positional): port forward name

catladder k8s trigger-cronjob [namespace]​

trigger cronjob

  • namespace (positional): kubernetes namespace
  • --job-name <value>: Which cronjob?

catladder mr pin [mr]​

pin the review apps of a merge request (disable their auto-stop) by adding the pin label; merging or closing the MR still stops them

  • mr (positional): merge request IID (defaults to the open MR of the current branch)
  • --pipeline: trigger a merge-request pipeline so the pin takes effect immediately

catladder mr review-app-off [mr]​

stop deploying the review apps of a merge request: switches the reviewApps label off (opt-in: removes it, opt-out: adds the skip label). Running review apps stay until the MR closes or they auto-stop

  • mr (positional): merge request IID (defaults to the open MR of the current branch)

catladder mr review-app-on [mr]​

deploy the review apps of a merge request: switches the reviewApps label on (opt-in: adds it, opt-out: removes the skip label) and triggers a pipeline, since gitlab doesn't start one for label changes

  • mr (positional): merge request IID (defaults to the open MR of the current branch)
  • --pipeline: trigger a merge-request pipeline so the review apps deploy now

catladder mr unpin [mr]​

unpin the review apps of a merge request — the auto-stop timer re-arms with the next deploy

  • mr (positional): merge request IID (defaults to the open MR of the current branch)

catladder project ci job-log​

Show a job's log

  • --job-name <value>: Which job?

catladder project ci job-open​

Open a Job

  • --job-name <value>: Which job?

catladder project cloudsql proxy [envComponent]​

proxy to cloud sql db

  • envComponent (positional): environment:component
  • --local-port <value>: Local port: (default: 54320)

catladder project cloudsql restore-db​

restores a project db from one source to another target

  • --source <value>: Source instance?
  • --target <value>: target env?
  • --confirm-instance <value>: confirm:

catladder project config-secrets [envComponent]​

setup/update secrets in the vault via your editor

  • envComponent (positional): scope: env:component, env:, :component or empty for everything
  • --key <value>: only edit these secrets (comma-separated keys)

catladder project doctor [component]​

Checks for drift between the config and the provisioned infrastructure (read-only): service accounts, IAM roles, gitlab tokens, github secrets, store entries.

  • component (positional): component name

catladder project env-vars [envComponent]​

list env vars

  • envComponent (positional): environment:component

catladder project k8s delete [envComponent]​

deletes a environment of a project (it deletes the namespace)

  • envComponent (positional): environment:component

catladder project k8s delete-pods [envComponent]​

delete / restart pods

  • envComponent (positional): environment:component
  • --selected-pod-names <value>: Which pods to delete / restart ?

catladder project k8s get-shell [envComponent]​

get a shell to a pod in the environment

  • envComponent (positional): environment:component
  • --pod-name <value>: Which pod?

catladder project k8s list-pods [envComponent]​

list pods of local project

  • envComponent (positional): environment:component

catladder project k8s namespace [envComponent]​

show namespace of local project

  • envComponent (positional): environment:component

catladder project k8s pause [envComponent]​

halts all running pods (scales to 0)

  • envComponent (positional): environment:component

catladder project k8s trigger-cronjob [envComponent]​

trigger cronjob

  • envComponent (positional): environment:component
  • --job-name <value>: Which cronjob?

catladder project logs open [envComponent]​

open logs for a component (Google Cloud Logging)

  • envComponent (positional): environment:component

catladder project mongo destroy-member [envComponent]​

DESTROY a member of a replicaset in order to reinitialize it

  • envComponent (positional): environment:component
  • --pod-name <value>: Which pod?

catladder project mongo get-shell [envComponent]​

get a shell to a mongodb in the environment

  • envComponent (positional): environment:component
  • --pod-name <value>: Which pod?

catladder project mongo port-forward [envComponent]​

port forward to a mongodb

  • envComponent (positional): environment:component
  • --pod-name <value>: Which pod?
  • --local-port <value>: Local port: (default: 30000)

catladder project open env [envComponent]​

open the live environment

  • envComponent (positional): environment:component

catladder project open git​

open the repo on gitlab / github in your browser

catladder project port-forward [envComponent]​

start port-forwarding

  • envComponent (positional): environment:component
  • --pod-name <value>: Which pod?
  • --local-port <value>: Local port:
  • --remote-port <value>: Remote port:
  • --mr <value>: Which mr

catladder project renew-token​

Configures the project access token for semantic release.

catladder project secrets-clear-backups​

clears all backups

  • --keep <value>: How many backups should we keep? (default: 1)

catladder project secrets-list [envComponent]​

lists the declared secrets of a scope with their set/unset status (values only with --reveal)

  • envComponent (positional): scope: env:component, env:, :component or empty for everything
  • --key <value>: only these secrets (comma-separated keys)
  • --reveal: also print the secret values (default: false)
  • --check: exit with an error when any secret is unset (for CI/agents) (default: false)

catladder project secrets-pull [envComponent]​

prints the current secrets of a scope as yaml (unset ones as a placeholder) — edit and feed to secrets-push

  • envComponent (positional): scope: env:component, env:, :component or empty for everything
  • --key <value>: only these secrets (comma-separated keys)
  • --out <value>: write the yaml to this file instead of stdout

catladder project secrets-push [envComponent]​

writes secrets from a yaml document (secrets-pull format, --file or stdin) to the vault; may be partial

  • envComponent (positional): scope: env:component, env:, :component or empty for everything
  • --key <value>: only write these secrets (comma-separated keys)
  • --file <value>: yaml file to push (component → env → key: value); stdin when omitted

catladder project secrets-set [envComponent] [key]​

sets one secret — in one env (dev:web), one env everywhere (dev:), or all envs of a component (:web); value via --value, --value-file or stdin

  • envComponent (positional): scope: env:component, env:, or :component
  • key (positional): which secret?
  • --value <value>: the secret value (prefer --value-file or stdin over shell history)
  • --value-file <value>: read the secret value from this file

catladder project secrets-sync-github [repo] [env]​

copies all secrets from the vault to github repo secrets (same names), for the github pipeline

  • repo (positional): github repository (owner/name)
  • env (positional): only sync these environments (comma-separated, e.g. review,dev) — github allows at most 100 repo secrets

catladder project security-evaluate​

evaluate project's security audit document

catladder project setup [component]​

Initializes all environments and creates required resources, service accounts, etc.

  • component (positional): component name

catladder project worktime​

show the total worktime that you spent on a project

catladder security audit ci-job [path] [token] [mainBranch] [projectId] [userId]​

Evaluates security audit document. Creates MR with template if missing.

  • path (positional): path to project root
  • token (positional): GitLab token (api scope)
  • mainBranch (positional): main branch name
  • projectId (positional): GitLab project ID
  • userId (positional): GitLab user ID (assignee)

catladder security audit create [token] [mainBranch] [projectId] [userId]​

Creates a MR with the latest security audit template document

  • token (positional): GitLab token (api scope)
  • mainBranch (positional): main branch name
  • projectId (positional): GitLab project ID
  • userId (positional): GitLab user ID (assignee)

catladder security audit evaluate [path]​

Evaluates security audit document in given path

  • path (positional): path to project root