mirror of https://github.com/dapr/docs.git
				
				
				
			
		
			
				
	
	
	
		
			1.5 KiB
		
	
	
	
	
	
			
		
		
	
	
			1.5 KiB
		
	
	
	
	
	
| type | title | linkTitle | weight | description | type | 
|---|---|---|---|---|---|
| docs | Running Dapr with a Kubernetes Job | Kubernetes Jobs | 70000 | Use Dapr API in a Kubernetes Job context | docs | 
Kubernetes Job
The Dapr sidecar is designed to be a long running process, in the context of a Kubernetes Job this behaviour can block your job completion.
To address this issue the Dapr sidecar has an endpoint to Shutdown the sidecar.
When running a basic Kubernetes Job you will need to call the /shutdown endpoint for the sidecar to gracefully stop and the job will be considered Completed.
When a job is finish without calling Shutdown your job will be in a NotReady state with only the daprd container running endlessly.
apiVersion: batch/v1
kind: Job
metadata:
  name: job-with-shutdown
spec:
  template:
    metadata:
      annotations:
        dapr.io/enabled: "true"
        dapr.io/app-id: "with-shutdown"
    spec:
      containers:
      - name: job
        image: busybox
        command: ["/bin/sh", "-c", "sleep 20 && wget localhost:3500/v1.0/shutdown"]
      restartPolicy: Never
You can also call the Shutdown from any of the Dapr SDK
package main
import (
	"context"
	"log"
	"os"
	dapr "github.com/dapr/go-sdk/client"
)
func main() {
  client, err := dapr.NewClient()
  if err != nil {
    log.Panic(err)
  }
  defer client.Close()
  defer client.Shutdown()
  // Job
}