From 882ca8781bad7e7125864419fc11723236403b7d Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 22 Aug 2025 01:51:38 -0400 Subject: [PATCH] fix: implement scheduler-is-deployed for scheduler-k3s --- plugins/scheduler-k3s/Makefile | 2 +- .../scheduler-k3s/src/triggers/triggers.go | 4 +++ plugins/scheduler-k3s/triggers.go | 26 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/plugins/scheduler-k3s/Makefile b/plugins/scheduler-k3s/Makefile index 870e3ba05..e894570d5 100644 --- a/plugins/scheduler-k3s/Makefile +++ b/plugins/scheduler-k3s/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/annotations:set subcommands/autoscaling-auth:set subcommands/autoscaling-auth:report subcommands/cluster-add subcommands/cluster-list subcommands/cluster-remove subcommands/ensure-charts subcommands/initialize subcommands/labels:set subcommands/report subcommands/set subcommands/show-kubeconfig subcommands/uninstall -TRIGGERS = triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/report triggers/scheduler-app-status triggers/scheduler-deploy triggers/scheduler-enter triggers/scheduler-logs triggers/scheduler-proxy-config triggers/scheduler-proxy-logs triggers/scheduler-post-delete triggers/scheduler-run triggers/scheduler-run-list triggers/scheduler-stop +TRIGGERS = triggers/core-post-deploy triggers/core-post-extract triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-create triggers/post-delete triggers/report triggers/scheduler-app-status triggers/scheduler-deploy triggers/scheduler-enter triggers/scheduler-is-deployed triggers/scheduler-logs triggers/scheduler-proxy-config triggers/scheduler-proxy-logs triggers/scheduler-post-delete triggers/scheduler-run triggers/scheduler-run-list triggers/scheduler-stop BUILD = commands subcommands triggers PLUGIN_NAME = scheduler-k3s diff --git a/plugins/scheduler-k3s/src/triggers/triggers.go b/plugins/scheduler-k3s/src/triggers/triggers.go index 692c62e1f..dd48a6b71 100644 --- a/plugins/scheduler-k3s/src/triggers/triggers.go +++ b/plugins/scheduler-k3s/src/triggers/triggers.go @@ -72,6 +72,10 @@ func main() { } err = scheduler_k3s.TriggerSchedulerEnter(scheduler, appName, containerType, ptr.Deref(podIdentifier, ""), args) + case "scheduler-is-deployed": + scheduler := flag.Arg(0) + appName := flag.Arg(1) + err = scheduler_k3s.TriggerSchedulerIsDeployed(scheduler, appName) case "scheduler-logs": var tail bool var quiet bool diff --git a/plugins/scheduler-k3s/triggers.go b/plugins/scheduler-k3s/triggers.go index 7c0a9f8c4..0207d42f3 100644 --- a/plugins/scheduler-k3s/triggers.go +++ b/plugins/scheduler-k3s/triggers.go @@ -789,6 +789,32 @@ func TriggerSchedulerDeploy(scheduler string, appName string, imageTag string) e return nil } +// TriggerSchedulerIsDeployed returns true if given app has a running container +func TriggerSchedulerIsDeployed(scheduler string, appName string) error { + if scheduler != "k3s" { + return nil + } + + // check if there are any helm revisions for the specified appName + helmAgent, err := NewHelmAgent(getComputedNamespace(appName), DeployLogPrinter) + if err != nil { + return fmt.Errorf("Error creating helm agent: %w", err) + } + + revisions, err := helmAgent.ListRevisions(ListRevisionsInput{ + ReleaseName: appName, + }) + if err != nil { + return fmt.Errorf("Error listing helm revisions: %w", err) + } + + if len(revisions) > 0 { + return nil + } + + return fmt.Errorf("App %s is not deployed", appName) +} + // TriggerSchedulerEnter enters a container for a given application func TriggerSchedulerEnter(scheduler string, appName string, processType string, podName string, args []string) error { if scheduler != "k3s" {