| [`templates/full-pipeline.yml`](templates/full-pipeline.yml) | The `default` value and `options` list of the `sepc.inputs.opentofu_versions` entry. |
| [`.gitlab-ci.yml`](.gitlab-ci.yml) | The `.opentofu_versions.parallel.matrix` list and the `LATEST_OPENTOFU_VERSION` variable. |
All of the above definitions have to match each other.
We currently need to change it in multiple places, because there is not a good way to share information
from the templates and the components pipeline defintion - at least in the features we'd like to use them.
The file `opentofu_versions.yaml` in the root of the project acts as
Single Source of Truth (SSoT) for the OpenTofu versions currently supported.
The versions in the templates are rendered by the
`./.gitlab/scripts/update-opentofu-versions.sh` script and the versions in
the `.gitlab-ci.yml` file are referencing the data from the SSoT file by
using a combination of CI includes and `!reference`.
To update the supported OpenTofu versions perform the following steps:
- Update the SSoT file with the new latest version and supported versions.
- Run the `./.gitlab/scripts/update-opentofu-versions.sh` script.