feat(cronjobs): cronjob add suspend parameter
This commit is contained in:
@ -14,4 +14,4 @@ type: library
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
|
131
README.md
131
README.md
@ -4,38 +4,34 @@ This chart was originally forked from [`incubator/common`](https://github.com/he
|
||||
|
||||
It provides utilities that reflect best practices of Kubernetes chart development, making it faster for you to write charts.
|
||||
|
||||
|
||||
|
||||
## Contents
|
||||
|
||||
- [Getting Started](#getting-started)
|
||||
* [Adding Repository](#adding-repository)
|
||||
* [Adding Dependency](#adding-dependency)
|
||||
* [Using Starter](#using-starter)
|
||||
- [Adding Repository](#adding-repository)
|
||||
- [Adding Dependency](#adding-dependency)
|
||||
- [Using Starter](#using-starter)
|
||||
- [Resource Kinds](#resource-kinds)
|
||||
* [`common.configMap`](#commonconfigmap)
|
||||
* [`common.cronJob`](#commoncronjob)
|
||||
* [`common.deployment`](#commondeployment)
|
||||
* [`common.hpa`](#commonhpa)
|
||||
* [`common.ingress`](#commoningress)
|
||||
* [`common.pdb`](#commonpdb)
|
||||
* [`common.secret`](#commonsecret)
|
||||
* [`common.service`](#commonservice)
|
||||
* [`common.serviceAccount`](#commonserviceaccount)
|
||||
* [`common.serviceMonitor`](#commonservicemonitor)
|
||||
* [`common.serviceMonitor.secret`](#commonservicemonitorsecret)
|
||||
- [`common.configMap`](#commonconfigmap)
|
||||
- [`common.cronJob`](#commoncronjob)
|
||||
- [`common.deployment`](#commondeployment)
|
||||
- [`common.hpa`](#commonhpa)
|
||||
- [`common.ingress`](#commoningress)
|
||||
- [`common.pdb`](#commonpdb)
|
||||
- [`common.secret`](#commonsecret)
|
||||
- [`common.service`](#commonservice)
|
||||
- [`common.serviceAccount`](#commonserviceaccount)
|
||||
- [`common.serviceMonitor`](#commonservicemonitor)
|
||||
- [`common.serviceMonitor.secret`](#commonservicemonitorsecret)
|
||||
- [Partial Objects](#partial-objects)
|
||||
* [`common.chart`](#commonchart)
|
||||
* [`common.container`](#commoncontainer)
|
||||
* [`common.fullname`](#commonfullname)
|
||||
* [`common.labels`](#commonlabels)
|
||||
* [`common.metadata`](#commonmetadata)
|
||||
* [`common.name`](#commonname)
|
||||
* [`common.pod.template`](#commonpodtemplate)
|
||||
* [`common.selectorLabels`](#commonselectorlabels)
|
||||
* [`common.serviceAccountName`](#commonserviceaccountname)
|
||||
|
||||
|
||||
- [`common.chart`](#commonchart)
|
||||
- [`common.container`](#commoncontainer)
|
||||
- [`common.fullname`](#commonfullname)
|
||||
- [`common.labels`](#commonlabels)
|
||||
- [`common.metadata`](#commonmetadata)
|
||||
- [`common.name`](#commonname)
|
||||
- [`common.pod.template`](#commonpodtemplate)
|
||||
- [`common.selectorLabels`](#commonselectorlabels)
|
||||
- [`common.serviceAccountName`](#commonserviceaccountname)
|
||||
|
||||
## Getting Started
|
||||
|
||||
@ -84,8 +80,6 @@ $ curl https://raw.githubusercontent.com/hahow/common-chart/master/create.sh | b
|
||||
|
||||
Now, there is a chart in `./mychart`. You can edit it and create your own templates.
|
||||
|
||||
|
||||
|
||||
## Resource Kinds
|
||||
|
||||
Kubernetes defines a variety of resource kinds, from `Secret` to `StatefulSet`. We define some of the most common kinds in a way that lets you easily work with them.
|
||||
@ -122,8 +116,6 @@ The [`common.service`](#commonservice) template is responsible for rendering the
|
||||
|
||||
Each implemented base resource is described in greater detail below.
|
||||
|
||||
|
||||
|
||||
### `common.configMap`
|
||||
|
||||
The `common.configMap` template accepts a list of two values:
|
||||
@ -167,8 +159,6 @@ metadata:
|
||||
name: release-name-mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.cronJob`
|
||||
|
||||
The `common.cronJob` template accepts a list of five values:
|
||||
@ -187,28 +177,29 @@ It defines a basic `CronJob` with the following defaults:
|
||||
In addition, it uses the following configuration from the `$cronJob`:
|
||||
|
||||
| Value | Description |
|
||||
| ----- | ----------- |
|
||||
| ------------------------------------- | ------------------------------------------------------- |
|
||||
| `$cronJob.schedule` | Schedule for the cronjob |
|
||||
| `$cronJob.concurrencyPolicy` | [optional] `Allow\|Forbid\|Replace` concurrent jobs |
|
||||
| `$cronJob.failedJobsHistoryLimit` | [optional] Specify the number of failed jobs to keep |
|
||||
| `$cronJob.successfulJobsHistoryLimit` | [optional] Specify the number of completed jobs to keep |
|
||||
| `$cronJob.suspend` | [optional] Specify cronjob is suspend, default false |
|
||||
|
||||
Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) template with `$pod` to populate the `PodTemplate`.
|
||||
|
||||
Example use:
|
||||
|
||||
```yaml
|
||||
{{- include "common.cronJob" (list . .Values.cronJob .Values .Values.serviceAccount) }}
|
||||
|
||||
{
|
||||
{
|
||||
- include "common.cronJob" (list . .Values.cronJob .Values .Values.serviceAccount),
|
||||
},
|
||||
}
|
||||
## The following is the same as above:
|
||||
# {{- include "common.cronJob" (list . .Values.cronJob .Values .Values.serviceAccount "mychart.cronJob") }}
|
||||
# {{- define "mychart.cronJob" -}}
|
||||
# {{- end }}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
### `common.deployment`
|
||||
|
||||
The `common.deployment` template accepts a list of five values:
|
||||
@ -222,7 +213,7 @@ The `common.deployment` template accepts a list of five values:
|
||||
It defines a basic `Deployment` with the following settings:
|
||||
|
||||
| Value | Description |
|
||||
| ----- | ----------- |
|
||||
| -------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `$deployment.replicaCount` | Number of replica. If autoscaling enabled, this field will be ignored |
|
||||
| `$deployment.imagePullSecrets` | [optional] Name of Secret resource containing private registry credentials |
|
||||
| `$deployment.podSecurityContext` | [optional] Security options for pod |
|
||||
@ -236,16 +227,17 @@ Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) temp
|
||||
Example use:
|
||||
|
||||
```yaml
|
||||
{{- include "common.deployment" (list . .Values .Values.autoscaling .Values.serviceAccount) }}
|
||||
|
||||
{
|
||||
{
|
||||
- include "common.deployment" (list . .Values .Values.autoscaling .Values.serviceAccount),
|
||||
},
|
||||
}
|
||||
## The following is the same as above:
|
||||
# {{- include "common.deployment" (list . .Values .Values.autoscaling .Values.serviceAccount "mychart.deployment") }}
|
||||
# {{- define "mychart.deployment" -}}
|
||||
# {{- end }}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.hpa`
|
||||
|
||||
The `common.hpa` template accepts a list of three values:
|
||||
@ -273,7 +265,6 @@ Example use:
|
||||
|
||||
```yaml
|
||||
{ { - include "common.hpa" (list . .Values.autoscaling) } }
|
||||
|
||||
## The following is the same as above:
|
||||
# {{- include "common.hpa" (list . .Values.autoscaling "mychart.hpa") }}
|
||||
# {{- define "mychart.hpa" -}}
|
||||
@ -315,8 +306,6 @@ spec:
|
||||
name: release-name-mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.ingress`
|
||||
|
||||
The `common.ingress` template accepts a list of four values:
|
||||
@ -352,7 +341,6 @@ Example use:
|
||||
|
||||
```yaml
|
||||
{ { - include "common.ingress" (list . .Values.ingress .Values.service) } }
|
||||
|
||||
## The following is the same as above:
|
||||
# {{- include "common.ingress" (list . .Values.ingress .Values.service "mychart.ingress") }}
|
||||
# {{- define "mychart.ingress" -}}
|
||||
@ -393,8 +381,6 @@ spec:
|
||||
secretName: chart-example-tls
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.pdb`
|
||||
|
||||
The `common.pdb` template accepts a list of five values:
|
||||
@ -421,8 +407,11 @@ podDisruptionBudget:
|
||||
Example use:
|
||||
|
||||
```yaml
|
||||
{{- include "common.pdb" (list . .Values.podDisruptionBudget .Values .Values.autoscaling) }}
|
||||
|
||||
{
|
||||
{
|
||||
- include "common.pdb" (list . .Values.podDisruptionBudget .Values .Values.autoscaling),
|
||||
},
|
||||
}
|
||||
## The following is the same as above:
|
||||
# {{- include "common.pdb" (list . .Values.podDisruptionBudget .Values .Values.autoscaling "mychart.pdb") }}
|
||||
# {{- define "mychart.pdb" -}}
|
||||
@ -450,8 +439,6 @@ spec:
|
||||
app.kubernetes.io/name: mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.secret`
|
||||
|
||||
The `common.secret` template accepts a list of two values:
|
||||
@ -496,8 +483,6 @@ metadata:
|
||||
type: Opaque
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.service`
|
||||
|
||||
The `common.service` template accepts a list of three values:
|
||||
@ -603,8 +588,6 @@ spec:
|
||||
type: ClusterIP
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.serviceAccount`
|
||||
|
||||
The `common.serviceAccount` template accepts a list of three values:
|
||||
@ -631,7 +614,6 @@ Example use:
|
||||
|
||||
```yaml
|
||||
{ { - include "common.serviceAccount" (list . .Values.serviceAccount) } }
|
||||
|
||||
## The following is the same as above:
|
||||
# {{- include "common.serviceAccount" (list . .Values.serviceAccount "mychart.serviceAccount") }}
|
||||
# {{- define "mychart.serviceAccount" -}}
|
||||
@ -653,8 +635,6 @@ metadata:
|
||||
name: release-name-mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.serviceMonitor`
|
||||
|
||||
The `common.serviceMonitor` template accepts a list of three values:
|
||||
@ -688,7 +668,6 @@ Example use:
|
||||
|
||||
```yaml
|
||||
{ { - include "common.serviceMonitor" (list . .Values.serviceMonitor) } }
|
||||
|
||||
## The following is the same as above:
|
||||
# {{- include "common.serviceMonitor" (list . .Values.serviceMonitor "mychart.serviceMonitor") }}
|
||||
# {{- define "mychart.serviceMonitor" -}}
|
||||
@ -731,8 +710,6 @@ spec:
|
||||
app.kubernetes.io/name: mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.serviceMonitor.secret`
|
||||
|
||||
The `common.serviceMonitor.secret` template accepts a list of three values:
|
||||
@ -757,7 +734,6 @@ Example use:
|
||||
|
||||
```yaml
|
||||
{ { - include "common.serviceMonitor.secret" (list . .Values.serviceMonitor) } }
|
||||
|
||||
## The following is the same as above:
|
||||
# {{- include "common.serviceMonitor.secret" (list . .Values.serviceMonitor "mychart.serviceMonitor.secret") }}
|
||||
# {{- define "mychart.serviceMonitor.secret" -}}
|
||||
@ -784,14 +760,10 @@ metadata:
|
||||
type: Opaque
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Partial Objects
|
||||
|
||||
When writing Kubernetes resources, you may find the following helpers useful to construct parts of the spec.
|
||||
|
||||
|
||||
|
||||
### `common.chart`
|
||||
|
||||
The `common.chart` helper prints the chart name and version, escaped to be legal in a Kubernetes label field.
|
||||
@ -810,8 +782,6 @@ helm.sh/chart: foo-1.2.3-beta.55_1234
|
||||
|
||||
(Note that `+` is an illegal character in label values)
|
||||
|
||||
|
||||
|
||||
### `common.container`
|
||||
|
||||
The `common.container` template accepts a list of three values:
|
||||
@ -948,8 +918,6 @@ spec:
|
||||
serviceAccountName: release-name-mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.fullname`
|
||||
|
||||
The `common.fullname` template generates a name suitable for the `name:` field in Kubernetes metadata. It is used like this:
|
||||
@ -978,8 +946,6 @@ name: release-name-mychart
|
||||
|
||||
Output of this function is truncated at 63 characters, which is the maximum length of name.
|
||||
|
||||
|
||||
|
||||
### `common.labels`
|
||||
|
||||
`common.selectorLabels` prints the standard set of labels.
|
||||
@ -1000,8 +966,6 @@ app.kubernetes.io/version: 1.16.0
|
||||
helm.sh/chart: mychart-0.1.0
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.metadata`
|
||||
|
||||
The `common.metadata` helper generates value for the `metadata:` section of a Kubernetes resource.
|
||||
@ -1016,9 +980,7 @@ It generates standard labels and a name field.
|
||||
Example template:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
{{- include "common.metadata" (list .) | nindent 2 }}
|
||||
|
||||
metadata: { { - include "common.metadata" (list .) | nindent 2 } }
|
||||
## The following is the same as above:
|
||||
# metadata:
|
||||
# {{- include "common.metadata" (list . "mychart.metadata") | nindent 2 }}
|
||||
@ -1041,8 +1003,6 @@ metadata:
|
||||
|
||||
Most of the common templates that define a resource type (e.g. `common.configMap` or `common.cronJob`) use this to generate the metadata, which means they inherit the same `labels` and `name` fields.
|
||||
|
||||
|
||||
|
||||
### `common.name`
|
||||
|
||||
The `common.name` template generates a name suitable for the `app.kubernetes.io/name` label. It is used like this:
|
||||
@ -1071,7 +1031,6 @@ app.kubernetes.io/name: mychart
|
||||
|
||||
Output of this function is truncated at 63 characters, which is the maximum length of name.
|
||||
|
||||
|
||||
### `common.pod.template`
|
||||
|
||||
The `common.pod.template` template accepts a list of four values:
|
||||
@ -1089,7 +1048,7 @@ It creates a basic `PodTemplate` spec to be used within a `Deployment` or `CronJ
|
||||
It also uses the following configuration from the `$pod`:
|
||||
|
||||
| Value | Description |
|
||||
| ----- | ----------- |
|
||||
| ------------------------- | -------------------------------------------------------- |
|
||||
| `$pod.imagePullSecrets` | Names of secrets containing private registry credentials |
|
||||
| `$pod.podAnnotations` | Pod annotations |
|
||||
| `$pod.podSecurityContext` | Security options |
|
||||
@ -1099,8 +1058,6 @@ It also uses the following configuration from the `$pod`:
|
||||
|
||||
Underneath the hood, it invokes [`common.container`](#commoncontainer) template with `$pod` to populate the `PodSpec`'s container list.
|
||||
|
||||
|
||||
|
||||
### `common.selectorLabels`
|
||||
|
||||
`common.selectorLabels` prints the standard set of selector labels.
|
||||
@ -1118,8 +1075,6 @@ app.kubernetes.io/instance: release-name
|
||||
app.kubernetes.io/name: mychart
|
||||
```
|
||||
|
||||
|
||||
|
||||
### `common.serviceAccountName`
|
||||
|
||||
The `common.serviceAccountName` template accepts a list of two values:
|
||||
|
@ -29,6 +29,9 @@ spec:
|
||||
{{- with $cronJob.successfulJobsHistoryLimit }}
|
||||
successfulJobsHistoryLimit: {{ . }}
|
||||
{{- end }}
|
||||
{{- with $cronJob.suspend }}
|
||||
suspend: {{ . }}
|
||||
{{- end }}
|
||||
jobTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
|
Reference in New Issue
Block a user