41 lines
883 B
Ruby
41 lines
883 B
Ruby
|
class Projects::Clusters::UserController < Projects::ApplicationController
|
||
|
before_action :authorize_read_cluster!
|
||
|
before_action :authorize_create_cluster!, only: [:new, :create]
|
||
|
|
||
|
def new
|
||
|
@cluster = ::Clusters::Cluster.new.tap do |cluster|
|
||
|
cluster.build_platform_kubernetes
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def create
|
||
|
@cluster = ::Clusters::CreateService
|
||
|
.new(project, current_user, create_params)
|
||
|
.execute
|
||
|
|
||
|
if @cluster.persisted?
|
||
|
redirect_to project_cluster_path(project, @cluster)
|
||
|
else
|
||
|
render :new
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def create_params
|
||
|
params.require(:cluster).permit(
|
||
|
:enabled,
|
||
|
:name,
|
||
|
:environment_scope,
|
||
|
platform_kubernetes_attributes: [
|
||
|
:namespace,
|
||
|
:api_url,
|
||
|
:token,
|
||
|
:ca_cert
|
||
|
]).merge(
|
||
|
provider_type: :user,
|
||
|
platform_type: :kubernetes
|
||
|
)
|
||
|
end
|
||
|
end
|