class Gitlab::QA::Service::KubernetesCluster

def admin_user

def admin_user
  @admin_user ||= "#{@provider.cluster_name}-admin"
end

def apply_manifest(manifest)

def apply_manifest(manifest)
  shell('kubectl apply -f -', stdin_data: manifest)
end

def cluster_name

def cluster_name
  @provider.cluster_name
end

def create!

def create!
  validate_dependencies
  @provider.validate_dependencies
  @provider.setup
  self
end

def create_registry_mirror

def create_registry_mirror
  @provider.create_registry_mirror
end

def create_secret(secret, secret_name)

def create_secret(secret, secret_name)
  shell("kubectl create secret generic #{secret_name} --from-literal=token='#{secret}'", mask_secrets: [secret])
end

def initialize(provider_class: QA::Service::ClusterProvider::K3d)

def initialize(provider_class: QA::Service::ClusterProvider::K3d)
  @provider = provider_class.new
end

def remove!

def remove!
  @provider.teardown
end

def to_s

def to_s
  cluster_name
end

def validate_dependencies

def validate_dependencies
  find_executable('kubectl') || raise("You must first install `kubectl` executable to run these tests.")
end