It should look similar to the generic job template, only it needs to have a schedule parameter that should be passed in as a value from values.yaml.
For the values.yaml, you can basically just copy this under a new section called cronjob:
|
job: |
|
# -- enable a job |
|
enabled: false |
|
# -- replica count if not using autoscaling |
|
replicaCount: 1 |
|
# -- restart policy if the job fails; can be never, or always |
|
restartPolicy: never |
|
image: |
|
# -- docker registry if not using docker.io |
|
registry: "docker.io" |
|
# -- docker repo |
|
repository: nginx |
|
# -- image pull policy, set to Always if using latest and it changes frequently |
|
pullPolicy: IfNotPresent |
|
# -- Overrides the image tag whose default is latest |
|
tag: "latest" |
|
# -- optional image pull secrets |
|
imagePullSecrets: [] |
|
# -- command to pass to docker container |
|
containerCommand: [] |
|
# -- env list for job main container |
|
env: [] |
|
# -- env from list for job main container |
|
envFrom: [] |
|
# -- extra init containers for the default job |
|
initcontainers: {} |
|
# -- extra pod annotations for the job |
|
podAnnotations: {} |
|
# -- extra pod labels for the job |
|
podLabels: {} |
|
|
|
# -- pod securityContext job's main container |
|
podSecurityContext: {} |
|
# fsGroup: 2000 |
|
|
|
# -- securityContext whole job |
|
securityContext: {} |
|
# capabilities: |
|
# drop: |
|
# - ALL |
|
# readOnlyRootFilesystem: true |
|
# runAsNonRoot: true |
|
# runAsUser: 1000 |
|
|
|
# -- Additional volumes on the output job definition. |
|
volumes: [] |
|
# - name: foo |
|
# secret: |
|
# secretName: mysecret |
|
# optional: false |
|
|
|
# -- Additional volumeMounts on the output job definition. |
|
volumeMounts: [] |
|
# - name: foo |
|
# mountPath: "/etc/foo" |
|
# readOnly: true |
|
|
|
# -- node selector for job |
|
nodeSelector: {} |
|
|
|
# -- tolerations of taints on a node |
|
tolerations: [] |
|
|
|
# -- affinity settings for the job |
|
affinity: {} |
|
|
|
# -- resources for the job |
|
resources: {} |
|
# We usually recommend not to specify default resources and to leave this as a conscious |
|
# choice for the user. This also increases chances charts run on environments with little |
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following |
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'. |
|
# limits: |
|
# cpu: 100m |
|
# memory: 128Mi |
|
# requests: |
|
# cpu: 100m |
|
# memory: 128Mi |
It should look similar to the generic job template, only it needs to have a
scheduleparameter that should be passed in as a value fromvalues.yaml.For the values.yaml, you can basically just copy this under a new section called
cronjob:generic-app-helm/charts/generic-app/values.yaml
Lines 106 to 183 in 1be3b6d