Skip to main content
This configuration ships with Keel as examples/multi-cloud/keel.yaml. Copy the parts you need.
keel.yaml

What to notice

  • Two deployments, two images. deploy/aws.Dockerfile carries the AWS CLI; deploy/gcp.Dockerfile carries gcloud. Neither has to know about the other.
  • Login is the first step in both, and each login step ends with a call that fails immediately on bad credentials (sts get-caller-identity, gcloud config set project).
  • A multi-line secret holds the whole service-account JSON. The form masks it while typing and shows a saved indicator afterwards; the step writes it to a file rather than passing it on a command line.
  • Patterns carry messages. AKIA[0-9A-Z]{16} on its own is a puzzle; “Must look like AKIAXXXXXXXXXXXXXXXX” is an instruction. The form shows it as a hint, and the manifest renders it under Format.
  • manifest blocks only on client-supplied values. DESIRED_COUNT and PUBLIC_INGRESS are the team’s business; they stay out of the document.
  • An unset optional boolean is false. PUBLIC_INGRESS needs no default for deploy.sh to test "$PUBLIC_INGRESS" = true.
Generate the client-facing document for the AWS variant with: