Jobs & Scheduled Tasks
Kipper wraps Kubernetes Jobs and CronJobs so you can run one-off tasks and scheduled jobs without writing YAML.
Running a one-off job
kip job run --name db-migrate --image myapp:latest --command "npm run migrate" --project yourr-name --environment test Running job "db-migrate"...
✔ Job started
Run 'kip job history db-migrate' to check the resultThe job runs to completion in a new pod, then stops. It inherits env vars and secrets from the app of the same name if they exist.
Scheduling a recurring job
kip job schedule --name nightly-cleanup --image myapp:latest --command "python cleanup.py" --cron "0 3 * * *" --project yourr-name --environment prodCommon cron expressions:
| Expression | Meaning |
|---|---|
0 3 * * * | Every day at 3am |
*/15 * * * * | Every 15 minutes |
0 0 * * 0 | Every Sunday at midnight |
0 9 * * 1-5 | Weekdays at 9am |
Listing jobs
kip job list --project yourr-name --environment test NAME TYPE SCHEDULE LAST RUN STATUS
nightly-cleanup cronjob 0 3 * * * 8h ago scheduled
db-migrate job 2m ago completedViewing history
kip job history nightly-cleanup --project yourr-name --environment prodShows all past executions with timestamps and status (completed/failed/running).
Deleting a scheduled job
kip job delete nightly-cleanup --project yourr-name --environment prodResource limits
Configure CPU and memory limits for your jobs from the Resources tab in the job detail panel. Click a job in the web console, switch to the Resources tab, and adjust the CPU and memory requests and limits.
Resource limits control how much CPU and memory each job pod is allowed to consume. Jobs that process large datasets or run memory-intensive tasks (database migrations, batch imports) may need higher limits than the defaults.
Changes apply to the next job run. They do not affect any execution that is already in progress.
How it works
- One-off jobs create a
JobCustom Resource (kipper.run/v1alpha1). The reconciler creates a Kubernetesbatchv1.Jobthat runs to completion then stops, withTTLSecondsAfterFinished = 86400so the underlying pod auto-cleans. - Scheduled jobs create a
JobCR with a cron schedule. The reconciler creates a Kubernetes CronJob that spawns a pod on each run. - The CLI and the web console write the same Job CRs, so a job created with
kip job scheduleshows up immediately in the Jobs view and vice versa. The CR is the source of truth. - Jobs get the same env vars and secrets as apps in their project/environment.
- No additional infrastructure needed. Kubernetes handles the scheduling natively.