Commit 796141f5 authored by Shinya Maeda's avatar Shinya Maeda Committed by Michael Kozono

Add documentation for environment tier

This commit adds the documentation for environment tier
feature that was added in GitLab 13.10.
parent 7a55aa8d
...@@ -461,8 +461,6 @@ class Environment < ApplicationRecord ...@@ -461,8 +461,6 @@ class Environment < ApplicationRecord
end end
def ensure_environment_tier def ensure_environment_tier
return unless ::Feature.enabled?(:environment_tier, project, default_enabled: :yaml)
self.tier ||= guess_tier self.tier ||= guess_tier
end end
......
...@@ -68,7 +68,7 @@ module Deployments ...@@ -68,7 +68,7 @@ module Deployments
end end
def renew_deployment_tier def renew_deployment_tier
return unless deployable && ::Feature.enabled?(:environment_tier, deployable.project, default_enabled: :yaml) return unless deployable
if (tier = deployable.environment_deployment_tier) if (tier = deployable.environment_deployment_tier)
environment.tier = tier environment.tier = tier
......
---
title: Support environment deployment tier
merge_request: 56081
author:
type: added
---
name: environment_tier
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55471
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/323166
milestone: '13.10'
type: development
group: group::release
default_enabled: false
...@@ -123,6 +123,30 @@ Some variables cannot be used as environment names or URLs. ...@@ -123,6 +123,30 @@ Some variables cannot be used as environment names or URLs.
For more information about the `environment` keywords, see For more information about the `environment` keywords, see
[the `.gitlab-ci.yml` keyword reference](../yaml/README.md#environment). [the `.gitlab-ci.yml` keyword reference](../yaml/README.md#environment).
## Deployment tier of environments (**FREE**)
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/300741) in GitLab 13.10.
There are cases where you might want to use a code name as an environment name instead of using
an [industry standard](https://en.wikipedia.org/wiki/Deployment_environment). For example, your environment might be called `customer-portal` instead of `production`.
This is perfectly fine, however, it loses information that the specific
environment is used as production.
To keep information that a specific environment is for production or
some other use, you can set one of the following tiers to each environment:
| Environment tier | Environment names examples |
| ---- | -------- |
| `production` | Production, Live |
| `staging` | Staging, Model, Pre, Demo |
| `testing` | Test, QC |
| `development` | Dev, [Review apps](../review_apps/index.md), Trunk |
| `other` | |
By default, an approximate tier is automatically guessed and set from [the environment name](../yaml/README.md#environmentname).
Alternatively, you can specify a specific tier with `deployment_tier` keyword,
see the [`.gitlab-ci.yml` syntax reference](../yaml/README.md#environmentdeployment_tier) for more details.
## Configure manual deployments ## Configure manual deployments
You can create a job that requires someone to manually start the deployment. You can create a job that requires someone to manually start the deployment.
......
...@@ -2632,6 +2632,23 @@ that are [managed by GitLab](../../user/project/clusters/index.md#gitlab-managed ...@@ -2632,6 +2632,23 @@ that are [managed by GitLab](../../user/project/clusters/index.md#gitlab-managed
To follow progress on support for GitLab-managed clusters, see the To follow progress on support for GitLab-managed clusters, see the
[relevant issue](https://gitlab.com/gitlab-org/gitlab/-/issues/38054). [relevant issue](https://gitlab.com/gitlab-org/gitlab/-/issues/38054).
#### `environment:deployment_tier`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27630) in GitLab 13.10.
Use the `deployment_tier` keyword to specify the tier of the deployment environment:
```yaml
deploy:
script: echo
environment:
name: customer-portal
deployment_tier: production
```
For more information,
see [Deployment tier of environments](../environments/index.md#deployment-tier-of-environments).
#### Dynamic environments #### Dynamic environments
Use CI/CD [variables](../variables/README.md) to dynamically name environments. Use CI/CD [variables](../variables/README.md) to dynamically name environments.
......
...@@ -15,7 +15,7 @@ module Gitlab ...@@ -15,7 +15,7 @@ module Gitlab
environments.safe_find_or_create_by(name: expanded_environment_name) do |environment| environments.safe_find_or_create_by(name: expanded_environment_name) do |environment|
# Initialize the attributes at creation # Initialize the attributes at creation
environment.auto_stop_in = auto_stop_in environment.auto_stop_in = auto_stop_in
environment.tier = deployment_tier if ::Feature.enabled?(:environment_tier, job.project, default_enabled: :yaml) environment.tier = deployment_tier
end end
end end
......
...@@ -123,16 +123,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Seed::Environment do ...@@ -123,16 +123,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Seed::Environment do
expect { subject }.to raise_error(ArgumentError, "'unknown' is not a valid tier") expect { subject }.to raise_error(ArgumentError, "'unknown' is not a valid tier")
end end
end end
context 'when environment_tier feature flag is disabled' do
before do
stub_feature_flags(environment_tier: false)
end
it 'does not set the specified tier' do
expect(subject.tier).to be_nil
end
end
end end
context 'when environment has already been created' do context 'when environment has already been created' do
......
...@@ -53,18 +53,6 @@ RSpec.describe Environment, :use_clean_rails_memory_store_caching do ...@@ -53,18 +53,6 @@ RSpec.describe Environment, :use_clean_rails_memory_store_caching do
expect { environment.update!(name: 'gstg') }.not_to change { environment.reload.tier } expect { environment.update!(name: 'gstg') }.not_to change { environment.reload.tier }
end end
context 'when environment_tier feature flag is disabled' do
before do
stub_feature_flags(environment_tier: false)
end
it 'does not ensure environment tier' do
environment = build(:environment, name: 'gprd', tier: nil)
expect { environment.save }.not_to change { environment.tier }
end
end
end end
describe '.order_by_last_deployed_at' do describe '.order_by_last_deployed_at' do
......
...@@ -168,16 +168,6 @@ RSpec.describe Deployments::UpdateEnvironmentService do ...@@ -168,16 +168,6 @@ RSpec.describe Deployments::UpdateEnvironmentService do
.to change { environment.reset.tier }.from(nil).to('other') .to change { environment.reset.tier }.from(nil).to('other')
end end
end end
context 'when environment_tier feature flag is disabled' do
before do
stub_feature_flags(environment_tier: false)
end
it 'does not set the specified deployment tier' do
expect { subject.execute }.not_to change { environment.reset.tier }
end
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment