From a4e07c2bd61fcdd756ea1589fcd805369efdc18f Mon Sep 17 00:00:00 2001 From: Celina Lopez Date: Tue, 29 Oct 2024 14:22:53 -0700 Subject: [PATCH] destroy project will destroy namespace --- app/controllers/projects_controller.rb | 2 +- app/jobs/projects/destroy_job.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 app/jobs/projects/destroy_job.rb diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index c189b519..231960ef 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -68,7 +68,7 @@ class ProjectsController < ApplicationController # DELETE /projects/1 or /projects/1.json def destroy - @project.destroy! + Projects::DestroyJob.perform_later(@project) respond_to do |format| format.html { redirect_to projects_url, status: :see_other, notice: "Project was successfully destroyed." } format.json { head :no_content } diff --git a/app/jobs/projects/destroy_job.rb b/app/jobs/projects/destroy_job.rb new file mode 100644 index 00000000..54757b17 --- /dev/null +++ b/app/jobs/projects/destroy_job.rb @@ -0,0 +1,12 @@ + +class Projects::DestroyJob < ApplicationJob + + def perform(project) + kubeconfig = project.cluster.kubeconfig + kubectl = K8::Kubectl.new(kubeconfig) + + kubectl.call("delete namespace #{project.name}") + + project.destroy! + end +end