diff --git a/app/actions/clusters/create_namespace.rb b/app/actions/clusters/create_namespace.rb index c820ccd5..53a27165 100644 --- a/app/actions/clusters/create_namespace.rb +++ b/app/actions/clusters/create_namespace.rb @@ -1,12 +1,9 @@ class Clusters::CreateNamespace extend LightService::Action - expects :cluster, :user + expects :kubectl executed do |context| - cluster = context.cluster - runner = Cli::RunAndLog.new(cluster) - kubectl = K8::Kubectl.new(K8::Connection.new(cluster, context.user), runner) - kubectl.apply_yaml(K8::Namespace.new(Struct.new(:name).new(Clusters::Install::DEFAULT_NAMESPACE)).to_yaml) + context.kubectl.apply_yaml(K8::Namespace.new(Struct.new(:name).new(Clusters::Install::DEFAULT_NAMESPACE)).to_yaml) end end diff --git a/app/actions/clusters/install.rb b/app/actions/clusters/install.rb index f5fa6aad..716064eb 100644 --- a/app/actions/clusters/install.rb +++ b/app/actions/clusters/install.rb @@ -3,7 +3,6 @@ class Clusters::Install extend LightService::Organizer def self.call(cluster, user) - cluster.installing! result = with(cluster:, user:).reduce( Clusters::IsReady, Clusters::CreateNamespace, diff --git a/app/actions/clusters/install_acme_issuer.rb b/app/actions/clusters/install_acme_issuer.rb index 977ed949..41932e5d 100644 --- a/app/actions/clusters/install_acme_issuer.rb +++ b/app/actions/clusters/install_acme_issuer.rb @@ -1,13 +1,12 @@ class Clusters::InstallAcmeIssuer extend LightService::Action - expects :cluster, :user + expects :cluster, :kubectl executed do |context| cluster = context.cluster + kubectl = context.kubectl cluster.info("Checking if acme issuer is already installed", color: :yellow) - runner = Cli::RunAndLog.new(cluster) - kubectl = K8::Kubectl.new(K8::Connection.new(cluster, context.user), runner) begin kubectl.("get clusterissuer letsencrypt -n #{Clusters::Install::DEFAULT_NAMESPACE}") cluster.success("Acme issuer is already installed") diff --git a/app/actions/clusters/install_metric_server.rb b/app/actions/clusters/install_metric_server.rb index 1145d796..84c8ce47 100644 --- a/app/actions/clusters/install_metric_server.rb +++ b/app/actions/clusters/install_metric_server.rb @@ -1,12 +1,11 @@ class Clusters::InstallMetricServer extend LightService::Action - expects :cluster, :user + expects :cluster, :kubectl executed do |context| cluster = context.cluster - runner = Cli::RunAndLog.new(cluster) - kubectl = K8::Kubectl.new(K8::Connection.new(cluster, context.user), runner) + kubectl = context.kubectl cluster.info("Checking if metric server is already installed...", color: :yellow) begin diff --git a/app/actions/clusters/install_nginx_ingress.rb b/app/actions/clusters/install_nginx_ingress.rb index d00ab819..e648d560 100644 --- a/app/actions/clusters/install_nginx_ingress.rb +++ b/app/actions/clusters/install_nginx_ingress.rb @@ -1,12 +1,11 @@ class Clusters::InstallNginxIngress extend LightService::Action - expects :cluster, :user + expects :kubectl, :cluster executed do |context| cluster = context.cluster - runner = Cli::RunAndLog.new(cluster) - kubectl = K8::Kubectl.new(K8::Connection.new(cluster, context.user), runner) + kubectl = context.kubectl cluster.info("Checking if Nginx ingress controller is already installed...", color: :yellow) begin diff --git a/app/actions/clusters/install_telepresence.rb b/app/actions/clusters/install_telepresence.rb index 887c31d6..7832b0b4 100644 --- a/app/actions/clusters/install_telepresence.rb +++ b/app/actions/clusters/install_telepresence.rb @@ -1,11 +1,10 @@ class Clusters::InstallTelepresence extend LightService::Action - expects :cluster, :user + expects :cluster, :kubectl executed do |context| cluster = context.cluster - runner = Cli::RunAndLog.new(cluster) - kubectl = K8::Kubectl.new(K8::Connection.new(cluster, context.user), runner) + kubectl = context.kubectl cluster.info("Checking if Telepresence is already installed...", color: :yellow) begin diff --git a/app/actions/clusters/is_ready.rb b/app/actions/clusters/is_ready.rb index ef29d424..96967da4 100644 --- a/app/actions/clusters/is_ready.rb +++ b/app/actions/clusters/is_ready.rb @@ -2,16 +2,20 @@ class Clusters::IsReady extend LightService::Action expects :cluster, :user + promises :kubectl executed do |context| cluster = context.cluster - client = K8::Client.new(K8::Connection.new(cluster, context.user)) + connection = K8::Connection.new(cluster, context.user) + client = K8::Client.new(connection) + runner = Cli::RunAndLog.new(cluster) + context.kubectl = K8::Kubectl.new(connection, runner) if client.can_connect? cluster.installing! cluster.success("Cluster is ready") else cluster.error("Cluster is not ready, retrying in 60 seconds...") - context.fail!("Cluster is not ready") + context.fail_and_return!("Cluster is not ready") end end end