diff --git a/data/deprecations/16-9-deprecate-terraform-cicd-templates.yml b/data/deprecations/16-9-deprecate-terraform-cicd-templates.yml index ad62f309d3a775674c078d167d92749764ea3e42..bd58a24b099d9570d649164734e680ab6bc94edb 100644 --- a/data/deprecations/16-9-deprecate-terraform-cicd-templates.yml +++ b/data/deprecations/16-9-deprecate-terraform-cicd-templates.yml @@ -1,6 +1,6 @@ - title: "Deprecate Terraform CI/CD templates" # The milestones for the deprecation announcement, and the removal. - removal_milestone: "17.0" + removal_milestone: "18.0" announcement_milestone: "16.9" # Change breaking_change to false if needed. breaking_change: true @@ -10,7 +10,7 @@ stage: deploy issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/438010 body: | # (required) Don't change this line. - The Terraform CI/CD templates are deprecated and will be removed in GitLab 17.0. + The Terraform CI/CD templates are deprecated and will be removed in GitLab 18.0. This affects the following templates: - `Terraform.gitlab-ci.yml` @@ -20,6 +20,9 @@ In GitLab 16.9, a new job is added to the templates to inform users of the deprecation. + GitLab won't be able to update the `terraform` binary in the job images to any version that + is licensed under BSL. + To continue using Terraform, clone the templates and [Terraform image](https://gitlab.com/gitlab-org/terraform-images), and maintain them as needed. diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index 3f903aa2954f8cd8ca4eebafabf2a332652851ce..746185129cf1fb62c2ac654f20404136e864d46a 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -69,6 +69,43 @@ next major release, GitLab 18.0. This gem sees very little use and its <div class="deprecation breaking-change" data-milestone="18.0"> +### Deprecate Terraform CI/CD templates + +<div class="deprecation-notes"> +- Announced in GitLab <span class="milestone">16.9</span> +- Removal in GitLab <span class="milestone">18.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change)) +- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/438010). +</div> + +The Terraform CI/CD templates are deprecated and will be removed in GitLab 18.0. +This affects the following templates: + +- `Terraform.gitlab-ci.yml` +- `Terraform.latest.gitlab-ci.yml` +- `Terraform/Base.gitlab-ci.yml` +- `Terraform/Base.latest.gitlab-ci.yml` + +In GitLab 16.9, a new job is added to the templates to inform users of the deprecation. + +GitLab won't be able to update the `terraform` binary in the job images to any version that +is licensed under BSL. + +To continue using Terraform, clone the templates and [Terraform image](https://gitlab.com/gitlab-org/terraform-images), +and maintain them as needed. + +As an alternative we recommend using the new OpenTofu CI/CD component on GitLab.com +or the new OpenTofu CI/CD template on self-managed. +CI/CD components are not yet available on GitLab self-managed, +but [Issue #415638](https://gitlab.com/gitlab-org/gitlab/-/issues/415638) +proposes to add this feature. If CI/CD components become available on self-managed, +the OpenTofu CI/CD template will be removed. + +You can read more about the new OpenTofu CI/CD component [here](https://gitlab.com/components/opentofu). + +</div> + +<div class="deprecation breaking-change" data-milestone="18.0"> + ### GitLab Runner registration token in Runner Operator <div class="deprecation-notes"> @@ -495,40 +532,6 @@ Maven versions below 3.6.3 have reached their end-of-life. Users are advised to <div class="deprecation breaking-change" data-milestone="17.0"> -### Deprecate Terraform CI/CD templates - -<div class="deprecation-notes"> -- Announced in GitLab <span class="milestone">16.9</span> -- Removal in GitLab <span class="milestone">17.0</span> ([breaking change](https://docs.gitlab.com/ee/update/terminology.html#breaking-change)) -- To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/438010). -</div> - -The Terraform CI/CD templates are deprecated and will be removed in GitLab 17.0. -This affects the following templates: - -- `Terraform.gitlab-ci.yml` -- `Terraform.latest.gitlab-ci.yml` -- `Terraform/Base.gitlab-ci.yml` -- `Terraform/Base.latest.gitlab-ci.yml` - -In GitLab 16.9, a new job is added to the templates to inform users of the deprecation. - -To continue using Terraform, clone the templates and [Terraform image](https://gitlab.com/gitlab-org/terraform-images), -and maintain them as needed. - -As an alternative we recommend using the new OpenTofu CI/CD component on GitLab.com -or the new OpenTofu CI/CD template on self-managed. -CI/CD components are not yet available on GitLab self-managed, -but [Issue #415638](https://gitlab.com/gitlab-org/gitlab/-/issues/415638) -proposes to add this feature. If CI/CD components become available on self-managed, -the OpenTofu CI/CD template will be removed. - -You can read more about the new OpenTofu CI/CD component [here](https://gitlab.com/components/opentofu). - -</div> - -<div class="deprecation breaking-change" data-milestone="17.0"> - ### Deprecate Windows CMD in GitLab Runner <div class="deprecation-notes"> diff --git a/lib/gitlab/ci/templates/Terraform/Base.gitlab-ci.yml b/lib/gitlab/ci/templates/Terraform/Base.gitlab-ci.yml index cb0790240cb02d637855717059cd714d35cedaeb..f9543e8b07c1077ec974342bedf74aed6f19b58d 100644 --- a/lib/gitlab/ci/templates/Terraform/Base.gitlab-ci.yml +++ b/lib/gitlab/ci/templates/Terraform/Base.gitlab-ci.yml @@ -20,14 +20,14 @@ cache: paths: - ${TF_ROOT}/.terraform/ -'deprecated-and-will-be-removed-in-17.0': +'deprecated-and-will-be-removed-in-18.0': stage: .pre needs: [] allow_failure: true image: alpine:3.19 script: - | - echo "You are using the Terraform CI/CD template, which is deprecated and will be removed in GitLab 17.0." + echo "You are using the Terraform CI/CD template, which is deprecated and will be removed in GitLab 18.0." echo "GitLab provides an alternative OpenTofu CI/CD component for GitLab.com users." echo "Self-managed users should use the OpenTofu CI/CD template, which will be removed after " echo "CI/CD components are available on GitLab self-managed." diff --git a/lib/gitlab/ci/templates/Terraform/Base.latest.gitlab-ci.yml b/lib/gitlab/ci/templates/Terraform/Base.latest.gitlab-ci.yml index 7308e699c22fe0a23127256ad94f4ad74a25ab7c..65e2382d189dc860f50b773a6a9234033e2fda56 100644 --- a/lib/gitlab/ci/templates/Terraform/Base.latest.gitlab-ci.yml +++ b/lib/gitlab/ci/templates/Terraform/Base.latest.gitlab-ci.yml @@ -22,14 +22,14 @@ variables: TF_ROOT: ${CI_PROJECT_DIR} # The relative path to the root directory of the Terraform project TF_STATE_NAME: default # The name of the state file used by the GitLab Managed Terraform state backend -'deprecated-and-will-be-removed-in-17.0': +'deprecated-and-will-be-removed-in-18.0': stage: .pre needs: [] allow_failure: true image: alpine:3.19 script: - | - echo "You are using the Terraform CI/CD template, which is deprecated and will be removed in GitLab 17.0." + echo "You are using the Terraform CI/CD template, which is deprecated and will be removed in GitLab 18.0." echo "GitLab provides an alternative OpenTofu CI/CD component for GitLab.com users." echo "Self-managed users should use the OpenTofu CI/CD template, which will be removed after " echo "CI/CD components are available on GitLab self-managed." diff --git a/spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb index 9fcae67c7177316d52b857f93029b00136d5b92c..e079bc04ca5589e2d5ad34d3968bbc001def3b04 100644 --- a/spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb @@ -31,7 +31,7 @@ end it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end end end diff --git a/spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb index ab4536e450ed917c0d61b4a0ed654de8e40877fc..6f7badd3efcb09b58a94409011c76004366be8b9 100644 --- a/spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb @@ -31,7 +31,7 @@ end it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end end end diff --git a/spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb index 38a182bcd36b184e453ba469cf6ca3c69a7711d0..b3a6a14947ed4b9d90af770b5b79a5ff2370c117 100644 --- a/spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb @@ -28,7 +28,7 @@ context 'on master branch' do it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end it 'creates init, validate,build terraform jobs as well as kics-iac-sast job', :aggregate_failures do @@ -41,7 +41,7 @@ let(:pipeline_branch) { 'patch-1' } it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end it 'does not creates a deploy and a test job', :aggregate_failures do diff --git a/spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb b/spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb index 777470def83e5da4b4f8aee09feee350f1593200..f84826efc49c3c32ebc327263cb2ac04fe9b6465 100644 --- a/spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb +++ b/spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb @@ -28,7 +28,7 @@ context 'on master branch' do it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end it 'creates init, validate and build jobs', :aggregate_failures do @@ -41,7 +41,7 @@ let(:pipeline_branch) { 'patch-1' } it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end it 'does not creates a deploy and a test job', :aggregate_failures do @@ -61,7 +61,7 @@ let(:branch_build_names) { branch_pipeline.builds.pluck(:name) } it 'creates deprecation warning job' do - expect(build_names).to include('deprecated-and-will-be-removed-in-17.0') + expect(build_names).to include('deprecated-and-will-be-removed-in-18.0') end # This is needed so that the terraform artifacts and sast_iac artifacts