Coder Social home page Coder Social logo

kjob's Introduction

kjob

e2e release

kjob is a small utility written in Go that:

  • creates a Kubernetes Job from a CronJob template
  • overrides the job command if specified
  • waits for job completion
  • prints the pods logs
  • removes the pods and the job object
  • exits with status 1 if the job failed

Usage

Download kjob binary from GitHub releases.

Create a suspended CronJob that will serve as a template:

cat <<EOF | kubectl apply -f -
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: curl
spec:
  schedule: "*/1 * * * *"
  successfulJobsHistoryLimit: 0
  failedJobsHistoryLimit: 0
  suspend: true
  jobTemplate:
    spec:
      backoffLimit: 0
      activeDeadlineSeconds: 100
      template:
        spec:
          restartPolicy: Never
          containers:
            - name: curl
              image: curlimages/curl:7.69.0
              command:
                - sh
                - -c
                - "curl -sL flagger.app/index.yaml | grep generated"
EOF

Run the job with:

$ kjob run -t curl -n default

generated: "2020-03-04T18:53:07.586083089Z"

Override the job command with:

$ kjob run -t curl -c "echo 'something went wrong' && grep tag"

something went wrong
error: Job has reached the specified backoff limit
exit status 1

List of available flags:

$ kjob run --help

Usage:
  kjob run -t cron-job-template -n namespace [flags]

Examples:
  run --template curl --command "curl -sL flagger.app/index.yaml" --cleanup=false --timeout=2m

Flags:
      --cleanup             delete job and pods after completion (default true)
  -c, --command string      override job command
  -h, --help                help for run
      --kubeconfig string   path to the kubeconfig file (default "~/.kube/config")
  -n, --namespace string    namespace of the cron job template (default "default")
      --shell string        command shell (default "sh")
  -t, --template string     cron job template name
      --timeout duration    timeout for Kubernetes operations (default 1m0s)

kjob's People

Contributors

stefanprodan avatar alexellis avatar

Stargazers

Terry Chou avatar Ash Wu avatar  avatar Kevin Hansen avatar  avatar José Hermosilla avatar Yashwanth Lakkaraju avatar Steve Coffman avatar Karthik avatar Prudent NGAIPERA-DONG  avatar Bassi avatar Yodai Kishimoto avatar Matt Anderson avatar Acumenix avatar Takahiro Tsuruda avatar Roman Hossain Shaon avatar  avatar myoung-su,shin avatar Pedro Lobo avatar  avatar Waseem Hassan Shahid avatar Krzysztof Wilczyński avatar Reilly Lowery avatar Sergey Romanov avatar  avatar  avatar Shun Kakinoki avatar Salvador Guzman avatar SHIMIZU Taku avatar Hendrik Ferber avatar Davide Berdin avatar  avatar Alexandr Fofanov avatar Daniel Pacak avatar YS Liu avatar Doru Carastan avatar Camil Blanaru avatar  avatar Asher Foa avatar Zadkiel AHARONIAN avatar  avatar Arvind Naidu avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

alexellis hsatac

kjob's Issues

IS this not the same as

kubectl create job test-benchmark-job-$(date | md5sum | head -c${1:-8}) --from=cronjob/my-cronjob --context staging --namespace some-palce

set the ttl for the template and thats it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.