summaryrefslogtreecommitdiff
path: root/qa/qa/service/cluster_provider/gcloud.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-11-18 13:16:36 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-11-18 13:16:36 +0000
commit311b0269b4eb9839fa63f80c8d7a58f32b8138a0 (patch)
tree07e7870bca8aed6d61fdcc810731c50d2c40af47 /qa/qa/service/cluster_provider/gcloud.rb
parent27909cef6c4170ed9205afa7426b8d3de47cbb0c (diff)
downloadgitlab-ce-311b0269b4eb9839fa63f80c8d7a58f32b8138a0.tar.gz
Add latest changes from gitlab-org/gitlab@14-5-stable-eev14.5.0-rc42
Diffstat (limited to 'qa/qa/service/cluster_provider/gcloud.rb')
-rw-r--r--qa/qa/service/cluster_provider/gcloud.rb31
1 files changed, 19 insertions, 12 deletions
diff --git a/qa/qa/service/cluster_provider/gcloud.rb b/qa/qa/service/cluster_provider/gcloud.rb
index f0fb5eee6e3..c6d1f6cfe88 100644
--- a/qa/qa/service/cluster_provider/gcloud.rb
+++ b/qa/qa/service/cluster_provider/gcloud.rb
@@ -24,16 +24,6 @@ module QA
)
end
- def set_credentials(admin_user)
- master_auth = JSON.parse(`gcloud container clusters describe #{cluster_name} --region #{@region} --format 'json(masterAuth.username, masterAuth.password)'`)
-
- shell <<~CMD.tr("\n", ' ')
- kubectl config set-credentials #{admin_user}
- --username #{master_auth['masterAuth']['username']}
- --password #{master_auth['masterAuth']['password']}
- CMD
- end
-
def setup
login_if_not_already_logged_in
create_cluster
@@ -43,6 +33,12 @@ module QA
delete_cluster
end
+ def install_ingress
+ QA::Runtime::Logger.info "Attempting to install Ingress on cluster #{cluster_name}"
+ shell 'kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-0.31.0/deploy/static/provider/cloud/deploy.yaml'
+ wait_for_ingress
+ end
+
private
def login_if_not_already_logged_in
@@ -59,7 +55,7 @@ module QA
end
def attempt_login_with_env_vars
- puts "No gcloud account. Attempting to login from env vars GCLOUD_ACCOUNT_EMAIL and GCLOUD_ACCOUNT_KEY."
+ QA::Runtime::Logger.debug("Logging in with GCLOUD_ACCOUNT_EMAIL and GCLOUD_ACCOUNT_KEY.")
gcloud_account_key = Tempfile.new('gcloud-account-key')
gcloud_account_key.write(Runtime::Env.gcloud_account_key)
gcloud_account_key.close
@@ -80,7 +76,6 @@ module QA
gcloud container clusters
create #{cluster_name}
#{auth_options}
- --enable-basic-auth
--region #{@region}
--disk-size 10GB
--num-nodes #{Runtime::Env.gcloud_num_nodes}
@@ -109,6 +104,18 @@ module QA
def get_region
Runtime::Env.gcloud_region || @available_regions.delete(@available_regions.sample)
end
+
+ def wait_for_ingress
+ QA::Runtime::Logger.info 'Waiting for Ingress controller pod to be initialized'
+
+ Support::Retrier.retry_until(max_attempts: 60, sleep_interval: 1) do
+ service_available?('kubectl get pods --all-namespaces -l app.kubernetes.io/component=controller | grep -o "ingress-nginx-controller.*1/1"')
+ end
+ end
+
+ def service_available?(command)
+ system("#{command} > /dev/null 2>&1")
+ end
end
end
end