Jobs & Scheduled Tasks
Skipper 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 (getkipper.com/v1alpha1). The reconciler creates a Kubernetes Job that runs to completion then stops. - Scheduled jobs create a
JobCR with a cron schedule. The reconciler creates a Kubernetes CronJob that spawns a pod on each run. - Jobs get the same env vars and secrets as apps in their project/environment
- No additional infrastructure needed. Kubernetes handles the scheduling natively.
