···6969 ```
70703. If the app needs secrets:
7171 - `just sops-edit <name>.yaml` — write the encrypted file
7272- - Create `values/<name>.yaml` with `ref+sops://secrets/<name>.yaml#/...`
7373- refs for each key
7272+ - Create `values/<name>.yaml` with `ref+sops://../secrets/<name>.yaml#/...`
7373+ refs for each key (path is relative to `k8s/`, where helmfile runs)
7474 - Add `values: [values/<name>.yaml]` to the helmfile release
75754. `helmfile -l name=<name> apply`
7676
···4455```
66values/
77-└── secrets/ # vals refs (ref+sops://) into ../secrets/
77+└── secrets/ # vals refs (ref+sops://) into ../../secrets/
88```
991010Each file under `secrets/` is plain yaml containing only `vals` refs that
1111-point into [`../secrets/`](../secrets/) for the actual encrypted values.
1111+point into [`../../secrets/`](../../secrets/) for the actual encrypted values.
1212helmfile passes these as `values:` to a release; `vals` resolves the refs
1313at render time (SOPS-decrypts → splices into the values stream → helm
1414renders).