fix: support --global on cron:set

`cron:set --global` wrote the property but emitted `unknown flag: --global` because the post-set `scheduler-cron-write` trigger received `--global` as the appName arg, which pflag rejected before reaching the trigger body.

The trigger args now omit appName for global writes, and the `scheduler-k3s` cron-write trigger short-circuits when called without an app since per-app reconciliation requires a real app name. The docker-local trigger already regenerates the global crontab from all apps so global `mailfrom`/`mailto` are picked up without any further changes.
This commit is contained in:
Jose Diaz-Gonzalez
2026-05-13 12:37:14 -04:00
parent fee155a0a6
commit 4001f318a6
4 changed files with 84 additions and 2 deletions

View File

@@ -192,9 +192,13 @@ func CommandSet(appName string, property string, value string) error {
common.CommandPropertySet("cron", appName, property, value, validProperties, globalProperties)
scheduler := common.GetAppScheduler(appName)
triggerArgs := []string{scheduler, appName}
if appName == "--global" {
triggerArgs = []string{scheduler}
}
_, err := common.CallPlugnTrigger(common.PlugnTriggerInput{
Trigger: "scheduler-cron-write",
Args: []string{scheduler, appName},
Args: triggerArgs,
StreamStdio: true,
})
return err

View File

@@ -255,6 +255,10 @@ func TriggerSchedulerCronWrite(scheduler string, appName string) error {
return nil
}
if appName == "" {
return nil
}
cronTasks, err := cron.FetchCronTasks(cron.FetchCronTasksInput{AppName: appName})
if err != nil {
return fmt.Errorf("Error fetching cron tasks: %w", err)