Skip to content

Deployment with Strauss

This describes how Strauss deploys an application artifact using the Strauss repo + Strauss-Sheets.

1. Create a Strauss Environment Folder

In the strauss/ repo, each app/environment has a folder (example: strauss/eps-website/sta/).

Typical files: - helmfile.yaml — defines the Helm chart release - values.yaml — values passed into the Universal Chart - deploy.strauss.yaml — provider auth (encrypted with SOPS) - .sops.yaml — encryption key configuration

2. Configure the Helm Release

Example (strauss/eps-website/sta/helmfile.yaml):

repositories:
  - name: epsait-charts
    url: ghcr.io/epsait/charts
    oci: true

releases:
  - name: eps-website
    namespace: eps-website-sta
    chart: epsait-charts/eps-website
    version: v0.3.3
    values:
      - values.yaml

Key points: - chart references a published chart from Strauss-Sheets (OCI registry). - version selects the chart version. - values.yaml provides app-specific configuration.

3. Provide App Values

Example (strauss/eps-website/sta/values.yaml):

base-webworker:
  nameOverride: "eps-website"
  wrangler:
    pages:
      enabled: true
    name: "eps-website"
    pages_build_output_dir: ".open-next/assets"
    compatibilityDate: "2026-02-09"
    compatibilityFlags: ["nodejs_compat"]

For TechDocs (strauss/eps-techdocs/sta/values.yaml), the Pages output is site:

base-webworker:
  nameOverride: "eps-techdocs"
  wrangler:
    pages:
      enabled: true
    name: "eps-techdocs"
    pages_build_output_dir: "site"
    compatibilityDate: "2026-02-09"

4. Encrypt Provider Credentials

Deployment credentials live in deploy.strauss.yaml and are encrypted with SOPS using AGE keys. Example files exist in: - strauss/eps-website/sta/deploy.strauss.yaml - strauss/eps-techdocs/sta/deploy.strauss.yaml

The .sops.yaml file defines which AGE recipients can decrypt.

5. Deploy

Actual deployment is executed via the Strauss tooling (not stored in this repo). The flow is: 1. Strauss reads app metadata (app.strauss, version.strauss). 2. Strauss-Sheets renders the universal chart for the selected size/runtime. 3. Helmfile applies the release with values.yaml. 4. Provider credentials from deploy.strauss.yaml are used by the deployment step.

If you need the exact deploy command used in your environment, point me to the Strauss CLI or orchestration tooling repo.