Stop emitting AUTO_DEVOPS_DOMAIN Ci variable
Update documentation to reflect removal
This commit is contained in:
parent
7b5cc7b47e
commit
f0efa2f91f
10 changed files with 19 additions and 219 deletions
|
@ -204,7 +204,7 @@ module Clusters
|
|||
end
|
||||
|
||||
def kube_ingress_domain
|
||||
@kube_ingress_domain ||= domain.presence || instance_domain || legacy_auto_devops_domain
|
||||
@kube_ingress_domain ||= domain.presence || instance_domain
|
||||
end
|
||||
|
||||
def predefined_variables
|
||||
|
@ -221,24 +221,6 @@ module Clusters
|
|||
@instance_domain ||= Gitlab::CurrentSettings.auto_devops_domain
|
||||
end
|
||||
|
||||
# To keep backward compatibility with AUTO_DEVOPS_DOMAIN
|
||||
# environment variable, we need to ensure KUBE_INGRESS_BASE_DOMAIN
|
||||
# is set if AUTO_DEVOPS_DOMAIN is set on any of the following options:
|
||||
# ProjectAutoDevops#Domain, project variables or group variables,
|
||||
# as the AUTO_DEVOPS_DOMAIN is needed for CI_ENVIRONMENT_URL
|
||||
#
|
||||
# This method should is scheduled to be removed on
|
||||
# https://gitlab.com/gitlab-org/gitlab-ce/issues/56959
|
||||
def legacy_auto_devops_domain
|
||||
if project_type?
|
||||
project&.auto_devops&.domain.presence ||
|
||||
project.variables.find_by(key: 'AUTO_DEVOPS_DOMAIN')&.value.presence ||
|
||||
project.group&.variables&.find_by(key: 'AUTO_DEVOPS_DOMAIN')&.value.presence
|
||||
elsif group_type?
|
||||
group.variables.find_by(key: 'AUTO_DEVOPS_DOMAIN')&.value.presence
|
||||
end
|
||||
end
|
||||
|
||||
def restrict_modification
|
||||
if provider&.on_creation?
|
||||
errors.add(:base, "cannot modify during creation")
|
||||
|
|
|
@ -24,19 +24,8 @@ class ProjectAutoDevops < ApplicationRecord
|
|||
domain.present? || instance_domain.present?
|
||||
end
|
||||
|
||||
# From 11.8, AUTO_DEVOPS_DOMAIN has been replaced by KUBE_INGRESS_BASE_DOMAIN.
|
||||
# See Clusters::Cluster#predefined_variables and https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24580
|
||||
# for more info.
|
||||
#
|
||||
# Suppport AUTO_DEVOPS_DOMAIN is scheduled to be removed on
|
||||
# https://gitlab.com/gitlab-org/gitlab-ce/issues/52363
|
||||
def predefined_variables
|
||||
Gitlab::Ci::Variables::Collection.new.tap do |variables|
|
||||
if has_domain?
|
||||
variables.append(key: 'AUTO_DEVOPS_DOMAIN',
|
||||
value: domain.presence || instance_domain)
|
||||
end
|
||||
|
||||
variables.concat(deployment_strategy_default_variables)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Removes support for AUTO_DEVOPS_DOMAIN
|
||||
merge_request: 28460
|
||||
author:
|
||||
type: removed
|
|
@ -126,10 +126,6 @@ Auto Deploy, and Auto Monitoring will be silently skipped.
|
|||
|
||||
## Auto DevOps base domain
|
||||
|
||||
NOTE: **Note**
|
||||
`AUTO_DEVOPS_DOMAIN` environment variable is deprecated and
|
||||
[is scheduled to be removed](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959).
|
||||
|
||||
The Auto DevOps base domain is required if you want to make use of [Auto
|
||||
Review Apps](#auto-review-apps) and [Auto Deploy](#auto-deploy). It can be defined
|
||||
in any of the following places:
|
||||
|
@ -162,6 +158,12 @@ Auto DevOps base domain to `1.2.3.4.nip.io`.
|
|||
Once set up, all requests will hit the load balancer, which in turn will route
|
||||
them to the Kubernetes pods that run your application(s).
|
||||
|
||||
NOTE: **Note:**
|
||||
From GitLab 11.8, `KUBE_INGRESS_BASE_DOMAIN` replaces `AUTO_DEVOPS_DOMAIN`.
|
||||
Support for `AUTO_DEVOPS_DOMAIN` was [removed in GitLab
|
||||
12.0](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959).
|
||||
|
||||
|
||||
## Using multiple Kubernetes clusters **[PREMIUM]**
|
||||
|
||||
When using Auto DevOps, you may want to deploy different environments to
|
||||
|
@ -209,10 +211,6 @@ and verifying that your app is deployed as a review app in the Kubernetes
|
|||
cluster with the `review/*` environment scope. Similarly, you can check the
|
||||
other environments.
|
||||
|
||||
NOTE: **Note:**
|
||||
From GitLab 11.8, `KUBE_INGRESS_BASE_DOMAIN` replaces `AUTO_DEVOPS_DOMAIN`.
|
||||
`AUTO_DEVOPS_DOMAIN` [is scheduled to be removed](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959).
|
||||
|
||||
## Enabling/Disabling Auto DevOps
|
||||
|
||||
When first using Auto Devops, review the [requirements](#requirements) to ensure all necessary components to make
|
||||
|
@ -734,7 +732,6 @@ also be customized, and you can easily use a [custom buildpack](#custom-buildpac
|
|||
|
||||
| **Variable** | **Description** |
|
||||
| ------------ | --------------- |
|
||||
| `AUTO_DEVOPS_DOMAIN` | The [Auto DevOps domain](#auto-devops-base-domain). By default, set automatically by the [Auto DevOps setting](#enablingdisabling-auto-devops). This variable is deprecated and [is scheduled to be removed](https://gitlab.com/gitlab-org/gitlab-ce/issues/56959). Use `KUBE_INGRESS_BASE_DOMAIN` instead. |
|
||||
| `AUTO_DEVOPS_CHART` | The Helm Chart used to deploy your apps; defaults to the one [provided by GitLab](https://gitlab.com/gitlab-org/charts/auto-deploy-app). |
|
||||
| `AUTO_DEVOPS_CHART_REPOSITORY` | The Helm Chart repository used to search for charts; defaults to `https://charts.gitlab.io`. |
|
||||
| `AUTO_DEVOPS_CHART_REPOSITORY_NAME` | From Gitlab 11.11, this variable can be used to set the name of the helm repository; defaults to "gitlab" |
|
||||
|
|
|
@ -507,23 +507,13 @@ rollout 100%:
|
|||
kubectl describe namespace "$KUBE_NAMESPACE" || kubectl create namespace "$KUBE_NAMESPACE"
|
||||
}
|
||||
|
||||
# Function to ensure backwards compatibility with AUTO_DEVOPS_DOMAIN
|
||||
function ensure_kube_ingress_base_domain() {
|
||||
if [ -z ${KUBE_INGRESS_BASE_DOMAIN+x} ] && [ -n "$AUTO_DEVOPS_DOMAIN" ] ; then
|
||||
export KUBE_INGRESS_BASE_DOMAIN=$AUTO_DEVOPS_DOMAIN
|
||||
fi
|
||||
}
|
||||
|
||||
function check_kube_domain() {
|
||||
ensure_kube_ingress_base_domain
|
||||
|
||||
if [[ -z "$KUBE_INGRESS_BASE_DOMAIN" ]]; then
|
||||
echo "In order to deploy or use Review Apps,"
|
||||
echo "AUTO_DEVOPS_DOMAIN or KUBE_INGRESS_BASE_DOMAIN variables must be set"
|
||||
echo "KUBE_INGRESS_BASE_DOMAIN variables must be set"
|
||||
echo "From 11.8, you can set KUBE_INGRESS_BASE_DOMAIN in cluster settings"
|
||||
echo "or by defining a variable at group or project level."
|
||||
echo "You can also manually add it in .gitlab-ci.yml"
|
||||
echo "AUTO_DEVOPS_DOMAIN support will be dropped on 12.0"
|
||||
false
|
||||
else
|
||||
true
|
||||
|
|
|
@ -190,7 +190,6 @@ describe Gitlab::Ci::Config do
|
|||
let(:remote_file_content) do
|
||||
<<~HEREDOC
|
||||
variables:
|
||||
AUTO_DEVOPS_DOMAIN: domain.example.com
|
||||
POSTGRES_USER: user
|
||||
POSTGRES_PASSWORD: testing-password
|
||||
POSTGRES_ENABLED: "true"
|
||||
|
@ -232,7 +231,6 @@ describe Gitlab::Ci::Config do
|
|||
"bundle install --jobs $(nproc) \"${FLAGS[@]}\""
|
||||
]
|
||||
variables = {
|
||||
AUTO_DEVOPS_DOMAIN: "domain.example.com",
|
||||
POSTGRES_USER: "user",
|
||||
POSTGRES_PASSWORD: "testing-password",
|
||||
POSTGRES_ENABLED: "true",
|
||||
|
|
|
@ -2604,30 +2604,6 @@ describe Ci::Build do
|
|||
it { is_expected.to include(ci_config_path) }
|
||||
end
|
||||
|
||||
context 'when using auto devops' do
|
||||
context 'and is enabled' do
|
||||
before do
|
||||
project.create_auto_devops!(enabled: true, domain: 'example.com')
|
||||
end
|
||||
|
||||
it "includes AUTO_DEVOPS_DOMAIN" do
|
||||
is_expected.to include(
|
||||
{ key: 'AUTO_DEVOPS_DOMAIN', value: 'example.com', public: true, masked: false })
|
||||
end
|
||||
end
|
||||
|
||||
context 'and is disabled' do
|
||||
before do
|
||||
project.create_auto_devops!(enabled: false, domain: 'example.com')
|
||||
end
|
||||
|
||||
it "includes AUTO_DEVOPS_DOMAIN" do
|
||||
is_expected.not_to include(
|
||||
{ key: 'AUTO_DEVOPS_DOMAIN', value: 'example.com', public: true, masked: false })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when pipeline variable overrides build variable' do
|
||||
before do
|
||||
build.yaml_variables = [{ key: 'MYVAR', value: 'myvar', public: true }]
|
||||
|
|
|
@ -557,62 +557,15 @@ describe Clusters::Cluster do
|
|||
end
|
||||
|
||||
context 'with no domain on cluster' do
|
||||
context 'with a project cluster' do
|
||||
let(:cluster) { create(:cluster, :project, :provided_by_gcp) }
|
||||
let(:project) { cluster.project }
|
||||
let(:cluster) { create(:cluster, :project, :provided_by_gcp) }
|
||||
let(:project) { cluster.project }
|
||||
|
||||
context 'with domain set at instance level' do
|
||||
before do
|
||||
stub_application_setting(auto_devops_domain: 'global_domain.com')
|
||||
|
||||
it { is_expected.to eq('global_domain.com') }
|
||||
end
|
||||
context 'with domain set at instance level' do
|
||||
before do
|
||||
stub_application_setting(auto_devops_domain: 'global_domain.com')
|
||||
end
|
||||
|
||||
context 'with domain set on ProjectAutoDevops' do
|
||||
before do
|
||||
auto_devops = project.build_auto_devops(domain: 'legacy-ado-domain.com')
|
||||
auto_devops.save
|
||||
end
|
||||
|
||||
it { is_expected.to eq('legacy-ado-domain.com') }
|
||||
end
|
||||
|
||||
context 'with domain set as environment variable on project' do
|
||||
before do
|
||||
variable = project.variables.build(key: 'AUTO_DEVOPS_DOMAIN', value: 'project-ado-domain.com')
|
||||
variable.save
|
||||
end
|
||||
|
||||
it { is_expected.to eq('project-ado-domain.com') }
|
||||
end
|
||||
|
||||
context 'with domain set as environment variable on the group project' do
|
||||
let(:group) { create(:group) }
|
||||
|
||||
before do
|
||||
project.update(parent_id: group.id)
|
||||
variable = group.variables.build(key: 'AUTO_DEVOPS_DOMAIN', value: 'group-ado-domain.com')
|
||||
variable.save
|
||||
end
|
||||
|
||||
it { is_expected.to eq('group-ado-domain.com') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a group cluster' do
|
||||
let(:cluster) { create(:cluster, :group, :provided_by_gcp) }
|
||||
|
||||
context 'with domain set as environment variable for the group' do
|
||||
let(:group) { cluster.group }
|
||||
|
||||
before do
|
||||
variable = group.variables.build(key: 'AUTO_DEVOPS_DOMAIN', value: 'group-ado-domain.com')
|
||||
variable.save
|
||||
end
|
||||
|
||||
it { is_expected.to eq('group-ado-domain.com') }
|
||||
end
|
||||
it { is_expected.to eq('global_domain.com') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -45,34 +45,6 @@ describe ProjectAutoDevops do
|
|||
describe '#predefined_variables' do
|
||||
let(:auto_devops) { build_stubbed(:project_auto_devops, project: project, domain: domain) }
|
||||
|
||||
context 'when domain is defined' do
|
||||
let(:domain) { 'example.com' }
|
||||
|
||||
it 'returns AUTO_DEVOPS_DOMAIN' do
|
||||
expect(auto_devops.predefined_variables).to include(domain_variable)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain is not defined' do
|
||||
let(:domain) { nil }
|
||||
|
||||
context 'when there is an instance domain specified' do
|
||||
before do
|
||||
allow(Gitlab::CurrentSettings).to receive(:auto_devops_domain).and_return('example.com')
|
||||
end
|
||||
|
||||
it { expect(auto_devops.predefined_variables).to include(domain_variable) }
|
||||
end
|
||||
|
||||
context 'when there is no instance domain specified' do
|
||||
before do
|
||||
allow(Gitlab::CurrentSettings).to receive(:auto_devops_domain).and_return(nil)
|
||||
end
|
||||
|
||||
it { expect(auto_devops.predefined_variables).not_to include(domain_variable) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when deploy_strategy is manual' do
|
||||
let(:auto_devops) { build_stubbed(:project_auto_devops, :manual_deployment, project: project) }
|
||||
let(:expected_variables) do
|
||||
|
@ -105,10 +77,6 @@ describe ProjectAutoDevops do
|
|||
.not_to include("STAGING_ENABLED", "INCREMENTAL_ROLLOUT_ENABLED")
|
||||
end
|
||||
end
|
||||
|
||||
def domain_variable
|
||||
{ key: 'AUTO_DEVOPS_DOMAIN', value: 'example.com', public: true }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#create_gitlab_deploy_token' do
|
||||
|
|
|
@ -3975,64 +3975,6 @@ describe Project do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#auto_devops_variables' do
|
||||
set(:project) { create(:project) }
|
||||
|
||||
subject { project.auto_devops_variables }
|
||||
|
||||
context 'when enabled in instance settings' do
|
||||
before do
|
||||
stub_application_setting(auto_devops_enabled: true)
|
||||
end
|
||||
|
||||
context 'when domain is empty' do
|
||||
before do
|
||||
stub_application_setting(auto_devops_domain: nil)
|
||||
end
|
||||
|
||||
it 'variables does not include AUTO_DEVOPS_DOMAIN' do
|
||||
is_expected.not_to include(domain_variable)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain is configured' do
|
||||
before do
|
||||
stub_application_setting(auto_devops_domain: 'example.com')
|
||||
end
|
||||
|
||||
it 'variables includes AUTO_DEVOPS_DOMAIN' do
|
||||
is_expected.to include(domain_variable)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when explicitly enabled' do
|
||||
context 'when domain is empty' do
|
||||
before do
|
||||
create(:project_auto_devops, project: project, domain: nil)
|
||||
end
|
||||
|
||||
it 'variables does not include AUTO_DEVOPS_DOMAIN' do
|
||||
is_expected.not_to include(domain_variable)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain is configured' do
|
||||
before do
|
||||
create(:project_auto_devops, project: project, domain: 'example.com')
|
||||
end
|
||||
|
||||
it 'variables includes AUTO_DEVOPS_DOMAIN' do
|
||||
is_expected.to include(domain_variable)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def domain_variable
|
||||
{ key: 'AUTO_DEVOPS_DOMAIN', value: 'example.com', public: true }
|
||||
end
|
||||
end
|
||||
|
||||
describe '#latest_successful_builds_for' do
|
||||
let(:project) { build(:project) }
|
||||
|
||||
|
|
Loading…
Reference in a new issue