class GitlabClusterHelper::Manager

Public Class Methods

new(gcp_client: GitlabClusterHelper::GcpClient.new) click to toggle source
# File lib/gitlab_cluster_helper/manager.rb, line 3
def initialize(gcp_client: GitlabClusterHelper::GcpClient.new)
  @gcp_client = gcp_client
  @clusters = []
  @next_cluster = nil
  create_next_cluster
end

Public Instance Methods

cleanup() click to toggle source
# File lib/gitlab_cluster_helper/manager.rb, line 20
def cleanup
  @clusters.each do |cluster|
    @gcp_client.delete_cluster(cluster.name)
  end

  @next_cluster_thread.join

  @gcp_client.delete_cluster(@next_cluster.name)
end
create() click to toggle source
# File lib/gitlab_cluster_helper/manager.rb, line 10
def create
  @next_cluster_thread.join
  cluster = @next_cluster
  @next_cluster = nil
  @clusters << cluster

  create_next_cluster
  cluster
end
create_next_cluster() click to toggle source
# File lib/gitlab_cluster_helper/manager.rb, line 30
def create_next_cluster
  @next_cluster_thread = Thread.new {
    next_cluster = @gcp_client.create_cluster

    @next_cluster = next_cluster
  }
end