Runs Cron based Kubernetes jobs defined via YAML. Also supports kubernetes native format.
1.1K
Stitch together a Docker job scheduler, distributed locking, task runner, and alerting system
Project: [https://github.com/sstarcher/job-runner] (https://github.com/sstarcher/job-runner)
Docker image: [https://registry.hub.docker.com/u/sstarcher/job-runner/] (https://registry.hub.docker.com/u/sstarcher/job-runner/)
SCHEDULED under the configuration for a job yamlDocker
Kubernetes
apiVersion: v1
kind: ReplicationController
metadata:
name: job-runner
spec:
replicas: 1
selector:
name: job-runner
template:
metadata:
labels:
name: job-runner
spec:
containers:
- name: job-runner
image: sstarcher/job-runner:latest
env:
- name: RUNNER
value: kubernetes
- name: KUBERNETES_MASTER
value: http://kubernetes:8080
KUBERNETES_MASTER to your Kubernetes cluster url example http://127.0.0.1:8080RUNNER to kubernetes-native when running job-runner containerKUBERNETES_MASTER to your Kubernetes cluster url example http://127.0.0.1:8080compose2kube is not used in this mode, just put Kubernetes native Job .yaml definitions in k8s-jobs/ directory, then manage your own job YAML by
jobname.yaml files added under a k8s-jobs directorycron
DockerfileFROM trinitronx/job-runner:latest
k8s-jobs['metadata']['labels']['service'] = job-name to ensure the reaper can identify the job & pods.apiVersion: batch/v1
kind: Job
metadata:
name: pi
labels:
service: pi
spec:
template:
metadata:
name: pi
labels:
service: pi
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
docker build --pull -t your-dockerhub-username/jobs .docker push your-dockerhub-username/jobs.yaml for Kubernetes, set RUNNER to kubernetes-nativeapiVersion: v1
kind: ReplicationController
metadata:
name: job-runner
spec:
replicas: 1
selector:
name: job-runner
template:
metadata:
labels:
name: job-runner
spec:
containers:
- name: job-runner
image: sstarcher/job-runner:latest
env:
- name: RUNNER
value: kubernetes-native
- name: KUBERNETES_MASTER
value: http://kubernetes:8080
kubectl apply -f path/to/jobs.yamllocalhost8500127.0.0.13030example-jobs folderjobs directory will be added and processedFROM sstarcher/job-runner:latest
Example:
image: debian:jessie #This value is overriding what is set in the DEFAULTS.yaml
Jobs:
- Test:
time: '* * * * *'
command: echo $job
Content type
Image
Digest
Size
223.5 MB
Last updated
over 10 years ago
docker pull returnpath/job-runner