26 lines
828 B
Ruby
26 lines
828 B
Ruby
module Ci
|
|
class IntegrateClusterService
|
|
def execute(cluster, endpoint, ca_cert, token, username, password)
|
|
Gcp::Cluster.transaction do
|
|
cluster.update!(
|
|
enabled: true,
|
|
endpoint: endpoint,
|
|
ca_cert: ca_cert,
|
|
kubernetes_token: token,
|
|
username: username,
|
|
password: password,
|
|
service: cluster.project.find_or_initialize_service('kubernetes'),
|
|
status_event: :make_created)
|
|
|
|
cluster.service.update!(
|
|
active: true,
|
|
api_url: cluster.api_url,
|
|
ca_pem: ca_cert,
|
|
namespace: cluster.project_namespace,
|
|
token: token)
|
|
end
|
|
rescue ActiveRecord::RecordInvalid => e
|
|
cluster.make_errored!("Failed to integrate cluster into kubernetes_service: #{e.message}")
|
|
end
|
|
end
|
|
end
|