Lock terrafom-image on the terraform templates
Release notes
The Terraform CI/CD templates provide many Terraform users with a simple and easy start. For several years, we provided a stable and a latest template, where we tried to avoid breaking changes in minor GitLab releases in the stable template. Still, until now, even the stable template used the latest tag of the gl-terraform wrapper script that provides most of the GitLab integration logic. Changes to this script sometimes caused breaking changes in the stable template. The current release fixed the version of the stable template to avoid breaking changes outside of major releases.
The problem
Currently the terraform-image on lib/gitlab/ci/templates/Terraform/Base.gitlab-ci.yml is a floating version.
Although this is convenient to facilitate releases, it's also risky as contributions happen in different repositories and we don't yet have integration testing.
Not being able to lock the version also precludes us from working on breaking changes that could be once implemented for the latest terraform template version without breaking the stable ones.
Quoting @tigerwnz :
the templates in the gitlab repo shouldn't use a floating tag - we already push images such as terraform-images/branches/v0-38-0-1.1 with both TF and gl-terraform versions, we should use something like that (just not under branches)
Proposal
- On the
terraform-imagerepo, we should release versions which include the terraform-image version and not only the terraform version. Those should be released during default branch release pipelines. - Then we'd just update them here on the template, and get rid of the floating version.