furiko
furiko copied to clipboard
Kubernetes cron and batch job platform
Implements a new task executor: [Argo Workflows](https://argoproj.github.io/argo-workflows/). Currently, the task executor is very simple: 1. One task = one Workflow. This means that retries (at Furiko level) will create a...
Observed panic when deleting a JobConfig that has no schedule set: ``` panic: time: missing Location in call to Time.In goroutine 259 [running]: time.Time.In(...) /usr/local/go/src/time/time.go:1105 github.com/furiko-io/furiko/pkg/execution/util/schedule.(*Schedule).Bump(0xc0004d12f0?, 0xc00060cf00?, {0x40d425?, 0x7f81f46e2b00?, 0x29e0220?})...
Ref https://github.com/kubernetes/kubernetes/issues/94738 Internally we upgraded to use v0.24.x of client-go (was previously on v0.20.9), and found that some usages of `k8s.io/apimachinery/pkg/util/clock` is not 100% compatible with the now-preferred `k8s.io/utils/clock`. It...
We want to support the feature as described on the website: https://furiko.io/guide/execution/job/timeout-retries/#jobtimeoutseconds This will act as a global timeout across the whole Job, regardless of individual tasks, beyond which it...
The feature is as described on the website, even though it is not yet implemented: https://furiko.io/guide/execution/job/timeout-retries/#runningtimeoutseconds We want to support a task running for up to a certain duration, which...
There are some issues with the current templating language used for [context variables](https://furiko.io/guide/execution/jobconfig/context-variables/), such as `${context.var_name}`: 1. Looks too similar to shell variables. We have to clear all unsubstituted variables...
Furiko currently uses the tz database bundled with the Go runtime to provide timezone support: https://furiko.io/guide/execution/jobconfig/scheduling/#crontimezone While this avoids dependencies on the external environment in which Furiko is run, it...
When updating the `defaultPendingTimeoutSeconds`, any already ongoing jobs will be affected by the change. This is probably undesirable, especially if the cluster administrator shortens the timeout from a longer one...
Users may want to have a periodically scheduled job that runs regularly on interval, except for some explicitly defined time ranges. For example, we may want to specify that during...
Since we have updated to use the JobQueueController instead, the process of admitting a Job to be started is now asynchronous. The CronController will back-schedule multiple Jobs even though it...