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.