General cleanup
This commit is contained in:
parent
30938b898c
commit
31c256c154
|
@ -9,7 +9,7 @@ module Clusters
|
|||
|
||||
belongs_to :cluster, class_name: 'Clusters::Cluster', foreign_key: :cluster_id
|
||||
|
||||
default_value_for :version, Gitlab::Clusters::Helm::HELM_VERSION
|
||||
default_value_for :version, Gitlab::Kubernetes::Helm::HELM_VERSION
|
||||
|
||||
def name
|
||||
NAME
|
||||
|
|
|
@ -17,7 +17,7 @@ module Clusters
|
|||
end
|
||||
|
||||
def helm_api
|
||||
@helm ||= Gitlab::Clusters::Helm.new(kubeclient)
|
||||
@helm ||= Gitlab::Kubernetes::Helm.new(kubeclient)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,7 +15,6 @@ module Clusters
|
|||
rescue KubeException => ke
|
||||
app.make_errored!("Kubernetes error: #{ke.message}")
|
||||
rescue StandardError => e
|
||||
Rails.logger.warn(e.message)
|
||||
app.make_errored!("Can't start installation process")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
module Clusters
|
||||
class InstallTillerService < BaseService
|
||||
def execute
|
||||
ensure_namespace
|
||||
install
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def kubernetes_service
|
||||
return @kubernetes_service if defined?(@kubernetes_service)
|
||||
|
||||
@kubernetes_service = project&.kubernetes_service
|
||||
end
|
||||
|
||||
def ensure_namespace
|
||||
kubernetes_service&.ensure_namespace!
|
||||
end
|
||||
|
||||
def install
|
||||
kubernetes_service&.helm_client&.init!
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,4 +1,8 @@
|
|||
class CreateClustersKubernetesHelmApps < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
DOWNTIME = false
|
||||
|
||||
def change
|
||||
create_table :clusters_applications_helm do |t|
|
||||
t.references :cluster, null: false, unique: true, foreign_key: { on_delete: :cascade }
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
module Gitlab
|
||||
module Clusters
|
||||
module Kubernetes
|
||||
class Helm
|
||||
Error = Class.new(StandardError)
|
||||
HELM_VERSION = '2.7.0'.freeze
|
||||
NAMESPACE = 'gitlab-managed-apps'.freeze
|
||||
COMMAND_SCRIPT = <<-EOS.freeze
|
||||
|
@ -18,12 +17,11 @@ module Gitlab
|
|||
end
|
||||
|
||||
def init!
|
||||
ensure_namespace!
|
||||
@kubeclient.create_pod(pod_resource(OpenStruct.new(name: 'helm')))
|
||||
install(OpenStruct.new(name: 'helm'))
|
||||
end
|
||||
|
||||
def install(app)
|
||||
ensure_namespace!
|
||||
create_namespace! unless has_namespace?
|
||||
@kubeclient.create_pod(pod_resource(app))
|
||||
end
|
||||
|
||||
|
@ -86,19 +84,25 @@ module Gitlab
|
|||
"install #{app.chart} --name #{app.name} --namespace #{NAMESPACE}"
|
||||
end
|
||||
|
||||
def ensure_namespace!
|
||||
def has_namespace?
|
||||
return @has_namespace if defined?(@has_namespace)
|
||||
|
||||
begin
|
||||
@kubeclient.get_namespace(NAMESPACE)
|
||||
@has_namespace = true
|
||||
rescue KubeException => ke
|
||||
raise ke unless ke.error_code == 404
|
||||
|
||||
namespace_resource = ::Kubeclient::Resource.new
|
||||
namespace_resource.metadata = {}
|
||||
namespace_resource.metadata.name = NAMESPACE
|
||||
|
||||
@kubeclient.create_namespace(namespace_resource)
|
||||
false
|
||||
end
|
||||
end
|
||||
|
||||
def create_namespace!
|
||||
namespace_resource = ::Kubeclient::Resource.new
|
||||
namespace_resource.metadata = {}
|
||||
namespace_resource.metadata.name = NAMESPACE
|
||||
|
||||
@kubeclient.create_namespace(namespace_resource)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue