summaryrefslogtreecommitdiff
path: root/qa/qa/resource/group_kubernetes_cluster.rb
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2018-11-22 22:40:05 +1300
committerThong Kuah <tkuah@gitlab.com>2018-11-22 23:29:40 +1300
commit1b95882c39ada0eb78b810f500c8cf1f2083d4bd (patch)
treef6d764ae1d97c202b7d1cc02a6bee119e0842baa /qa/qa/resource/group_kubernetes_cluster.rb
parent6a31259ccef5106126421ab5a93fd303a9326e4a (diff)
downloadgitlab-ce-1b95882c39ada0eb78b810f500c8cf1f2083d4bd.tar.gz
Group cluster QA specgroup-cluster-qa-spec
Diffstat (limited to 'qa/qa/resource/group_kubernetes_cluster.rb')
-rw-r--r--qa/qa/resource/group_kubernetes_cluster.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/qa/qa/resource/group_kubernetes_cluster.rb b/qa/qa/resource/group_kubernetes_cluster.rb
new file mode 100644
index 00000000000..ee8aeef2de1
--- /dev/null
+++ b/qa/qa/resource/group_kubernetes_cluster.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require 'securerandom'
+
+module QA
+ module Resource
+ class GroupKubernetesCluster < Base
+ attr_writer :Group, :cluster,
+ :install_helm_tiller, :install_ingress
+
+ attribute :ingress_ip do
+ Page::Group::Kubenertes::Kubernetes::Show.perform(&:ingress_ip)
+ end
+
+ def fabricate!
+ @group.visit!
+
+ Page::Group::Menu.perform(
+ &:click_kubernetes_kubernetes)
+
+ Page::Group::Kubernetes::Kubernetes::Index.perform(
+ &:add_kubernetes_cluster)
+
+ Page::Group::Kubernetes::Kubernetes::Add.perform(
+ &:add_existing_cluster)
+
+ Page::Group::Kubernetes::Kubernetes::AddExisting.perform do |page|
+ page.set_cluster_name(@cluster.cluster_name)
+ page.set_api_url(@cluster.api_url)
+ page.set_ca_certificate(@cluster.ca_certificate)
+ page.set_token(@cluster.token)
+ page.check_rbac! if @cluster.rbac
+ page.add_cluster!
+ end
+
+ if @install_helm_tiller
+ Page::Group::Kubernetes::Kubernetes::Show.perform do |page|
+ # We must wait a few seconds for permissions to be set up correctly for new cluster
+ sleep 10
+
+ # Helm must be installed before everything else
+ page.install!(:helm)
+ page.await_installed(:helm)
+
+ page.install!(:ingress) if @install_ingress
+
+ page.await_installed(:ingress) if @install_ingress
+ end
+ end
+ end
+ end
+ end
+end