website/content/zh-cn/examples/controllers/job-backoff-limit-per-index...

40 lines
1.0 KiB
YAML

apiVersion: batch/v1
kind: Job
metadata:
name: job-backoff-limit-per-index-failindex
spec:
completions: 4
parallelism: 2
completionMode: Indexed
backoffLimitPerIndex: 1
template:
spec:
restartPolicy: Never
containers:
- name: main
image: docker.io/library/python:3
command:
# 此脚本:
# - 使索引为 0 的 Pod 以退出码 1 失败,这将导致一次重试;
# - 使索引为 1 的 Pod 以退出码 42 失败,这将导致此索引直接失败且不重试;
# - 使所有其他索引的 Pod 成功。
- python3
- -c
- |
import os, sys
index = int(os.environ.get("JOB_COMPLETION_INDEX"))
if index == 0:
sys.exit(1)
elif index == 1:
sys.exit(42)
else:
sys.exit(0)
backoffLimit: 6
podFailurePolicy:
rules:
- action: FailIndex
onExitCodes:
containerName: main
operator: In
values: [42]