diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2018-07-03 16:13:54 +0200 |
---|---|---|
committer | Dylan Griffith <dyl.griffith@gmail.com> | 2018-07-03 17:48:03 +0200 |
commit | 2a8d0b59a37be30e27255220b911c6d052ca48e1 (patch) | |
tree | e928d59a197c213915d6b00f90e4c846fc481a79 /qa | |
parent | 00518d261d2e5b751bb5da93531880d4b3eb4250 (diff) | |
download | gitlab-ce-2a8d0b59a37be30e27255220b911c6d052ca48e1.tar.gz |
Auto DevOps QA: Prefer gcloud credentials from env
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/runtime/env.rb | 4 | ||||
-rw-r--r-- | qa/qa/service/kubernetes_cluster.rb | 10 |
2 files changed, 11 insertions, 3 deletions
diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb index 81d00d45753..4db76a57f96 100644 --- a/qa/qa/runtime/env.rb +++ b/qa/qa/runtime/env.rb @@ -58,6 +58,10 @@ module QA def gcloud_zone ENV.fetch('GCLOUD_ZONE') end + + def has_gcloud_credentials? + %w[GCLOUD_ACCOUNT_KEY GCLOUD_ACCOUNT_EMAIL].none? { |var| ENV[var].to_s.empty? } + end end end end diff --git a/qa/qa/service/kubernetes_cluster.rb b/qa/qa/service/kubernetes_cluster.rb index 7627c8c7ad9..abd9d53554f 100644 --- a/qa/qa/service/kubernetes_cluster.rb +++ b/qa/qa/service/kubernetes_cluster.rb @@ -50,11 +50,15 @@ module QA end def login_if_not_already_logged_in - account = `gcloud auth list --filter=status:ACTIVE --format="value(account)"` - if account.empty? + if Runtime::Env.has_gcloud_credentials? attempt_login_with_env_vars else - puts "gcloud account found. Using: #{account} for creating K8s cluster." + account = `gcloud auth list --filter=status:ACTIVE --format="value(account)"` + if account.empty? + raise "Failed to login to gcloud. No credentials provided in environment and no credentials found locally." + else + puts "gcloud account found. Using: #{account} for creating K8s cluster." + end end end |