首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >舵机cronjob多个容器

舵机cronjob多个容器
EN

Stack Overflow用户
提问于 2021-07-01 07:00:45
回答 1查看 793关注 0票数 0

我需要在一个任务执行中运行多个容器。目前,我有以下cronjob.yaml模板:

代码语言:javascript
复制
jobTemplate:
 spec:
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}
        cron: {{ .Values.filesjob.jobName }}
    spec:
      containers:
      - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        env:
          - name: FILE_MASK
            value: "{{ .Values.filesjob.fileMask }}"
          - name: ID
            value: "{{ .Values.filesjob.id }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        name: {{ .Values.filesjob.jobName }}
        volumeMounts:
        - mountPath: /data
          name: path-to-clean
        - name: path-logfiles
          mountPath: /log
      - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        env:
          - name: FILE_MASK
            value: "{{ .Values.filesjob.fileMask }}"
          - name: ID
            value: "{{ .Values.filesjob.id }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        name: {{ .Values.filesjob.jobName2 }}
        volumeMounts:
        - mountPath: /data
          name: path2-to-clean
        - name: path2-logfiles
          mountPath: /log

上面的代码生成一个cronjob,它执行两个容器,并传递不同的env变量。我可以通过对变量进行迭代来使用values.yaml生成相同的内容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-21 18:29:14

我能够根据本文中的例子- https://nikhils-devops.medium.com/helm-chart-for-kubernetes-cronjob-a694b47479a来解决这个问题。

这是我的模板:

代码语言:javascript
复制
{{- if .Values.cleanup.enabled -}}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: registry-cleanup-job
  namespace: service
  labels:
    {{- include "some.labels" . | nindent 4 }}
spec:
  schedule: {{ .Values.cleanup.schedule }}
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 2
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          {{- range .Values.cleanup.crons }}
          - name: {{ .name | quote }}
            image: {{ $.Values.cleanup.imageName }}
            imagePullPolicy: {{ $.Values.cleanup.pullPolicy }}
            args:
            - {{ .command }}
          {{- end}}
          restartPolicy: Never
{{- end }}

和相关价值:

代码语言:javascript
复制
cleanup:
  enabled: true
  schedule: "0 8 * * 5"
  imageName: digitalocean/doctl:1.60.0
  pullPolicy: IfNotPresent
  crons:
    - command0:
      name: "cleanup0"
      command: command0
    - command1:
      name: "cleanup1"
      command: command1
    - command2:
      name: "cleanup2"
      command: command2
    - command3:
      name: "cleanup3"
      command: command3
    - command4:
      name: "cleanup4"
      command: command4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68205658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档