Skip to content
Snippets Groups Projects
Unverified Commit 31c256c1 authored by Alessio Caiazza's avatar Alessio Caiazza
Browse files

General cleanup

parent 30938b89
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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
Loading
Loading
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
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 }
Loading
Loading
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
Loading
Loading
@@ -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
 
Loading
Loading
@@ -86,18 +84,24 @@ 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
false
end
end
 
namespace_resource = ::Kubeclient::Resource.new
namespace_resource.metadata = {}
namespace_resource.metadata.name = NAMESPACE
def create_namespace!
namespace_resource = ::Kubeclient::Resource.new
namespace_resource.metadata = {}
namespace_resource.metadata.name = NAMESPACE
 
@kubeclient.create_namespace(namespace_resource)
end
@kubeclient.create_namespace(namespace_resource)
end
end
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment