Files

32 lines
1.2 KiB
Markdown

# container-opentofu
The estate's OpenTofu/Terragrunt image for terraform-* CI, built on each `container-base`
distro image. Published as
`artifactapi.k8s.syd1.au.unkin.net/docker-internal/opentofu:<version>-<suffix>`;
the default distro's build is retagged as the unsuffixed `:<version>`, so both resolve
to one digest. Only explicit versions are published; never a floating tag.
| distro | from | tag suffix | default |
| --- | --- | --- | --- |
| `alma9` | `docker-internal/almalinux9:<base version>` | `alma9` | yes |
Adds `opentofu`, `terragrunt`, `tflint` and the `vault` CLI on top of the base image's
`make`, `git`, `jq` and `uv`/`uvx`. Versions come from the estate dnf repos.
The `container-base` release this image builds on is `BASE_VERSION` in the `Dockerfile`.
## Adding a distro
1. `distros/<name>/distro.env` — `BASE_IMAGE_NAME`, `IMAGE`, `TAG_SUFFIX`, `DEFAULT`, `PACKAGES`.
2. One `include` entry in each of `.woodpecker/{build,docker}.yaml`.
The `check-distros` pre-commit hook fails if step 1 or 2 is incomplete, or if more than
one distro claims `DEFAULT`.
## Make
make build # build every distro
make pre-commit # uvx pre-commit run --all-files
make build-alma9 # one distro
make patch|minor|major