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
|
# 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.
|
# to the chart and its templates, including the app version.
|
||||||
version: 1.0.0
|
version: 1.1.0
|
||||||
|
351
README.md
351
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.
|
It provides utilities that reflect best practices of Kubernetes chart development, making it faster for you to write charts.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
- [Getting Started](#getting-started)
|
- [Getting Started](#getting-started)
|
||||||
* [Adding Repository](#adding-repository)
|
- [Adding Repository](#adding-repository)
|
||||||
* [Adding Dependency](#adding-dependency)
|
- [Adding Dependency](#adding-dependency)
|
||||||
* [Using Starter](#using-starter)
|
- [Using Starter](#using-starter)
|
||||||
- [Resource Kinds](#resource-kinds)
|
- [Resource Kinds](#resource-kinds)
|
||||||
* [`common.configMap`](#commonconfigmap)
|
- [`common.configMap`](#commonconfigmap)
|
||||||
* [`common.cronJob`](#commoncronjob)
|
- [`common.cronJob`](#commoncronjob)
|
||||||
* [`common.deployment`](#commondeployment)
|
- [`common.deployment`](#commondeployment)
|
||||||
* [`common.hpa`](#commonhpa)
|
- [`common.hpa`](#commonhpa)
|
||||||
* [`common.ingress`](#commoningress)
|
- [`common.ingress`](#commoningress)
|
||||||
* [`common.pdb`](#commonpdb)
|
- [`common.pdb`](#commonpdb)
|
||||||
* [`common.secret`](#commonsecret)
|
- [`common.secret`](#commonsecret)
|
||||||
* [`common.service`](#commonservice)
|
- [`common.service`](#commonservice)
|
||||||
* [`common.serviceAccount`](#commonserviceaccount)
|
- [`common.serviceAccount`](#commonserviceaccount)
|
||||||
* [`common.serviceMonitor`](#commonservicemonitor)
|
- [`common.serviceMonitor`](#commonservicemonitor)
|
||||||
* [`common.serviceMonitor.secret`](#commonservicemonitorsecret)
|
- [`common.serviceMonitor.secret`](#commonservicemonitorsecret)
|
||||||
- [Partial Objects](#partial-objects)
|
- [Partial Objects](#partial-objects)
|
||||||
* [`common.chart`](#commonchart)
|
- [`common.chart`](#commonchart)
|
||||||
* [`common.container`](#commoncontainer)
|
- [`common.container`](#commoncontainer)
|
||||||
* [`common.fullname`](#commonfullname)
|
- [`common.fullname`](#commonfullname)
|
||||||
* [`common.labels`](#commonlabels)
|
- [`common.labels`](#commonlabels)
|
||||||
* [`common.metadata`](#commonmetadata)
|
- [`common.metadata`](#commonmetadata)
|
||||||
* [`common.name`](#commonname)
|
- [`common.name`](#commonname)
|
||||||
* [`common.pod.template`](#commonpodtemplate)
|
- [`common.pod.template`](#commonpodtemplate)
|
||||||
* [`common.selectorLabels`](#commonselectorlabels)
|
- [`common.selectorLabels`](#commonselectorlabels)
|
||||||
* [`common.serviceAccountName`](#commonserviceaccountname)
|
- [`common.serviceAccountName`](#commonserviceaccountname)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Getting Started
|
## 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.
|
Now, there is a chart in `./mychart`. You can edit it and create your own templates.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Resource Kinds
|
## 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.
|
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.
|
Each implemented base resource is described in greater detail below.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.configMap`
|
### `common.configMap`
|
||||||
|
|
||||||
The `common.configMap` template accepts a list of two values:
|
The `common.configMap` template accepts a list of two values:
|
||||||
@ -167,8 +159,6 @@ metadata:
|
|||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.cronJob`
|
### `common.cronJob`
|
||||||
|
|
||||||
The `common.cronJob` template accepts a list of five values:
|
The `common.cronJob` template accepts a list of five values:
|
||||||
@ -186,29 +176,30 @@ It defines a basic `CronJob` with the following defaults:
|
|||||||
|
|
||||||
In addition, it uses the following configuration from the `$cronJob`:
|
In addition, it uses the following configuration from the `$cronJob`:
|
||||||
|
|
||||||
| Value | Description |
|
| Value | Description |
|
||||||
| ----- | ----------- |
|
| ------------------------------------- | ------------------------------------------------------- |
|
||||||
| `$cronJob.schedule` | Schedule for the cronjob |
|
| `$cronJob.schedule` | Schedule for the cronjob |
|
||||||
| `$cronJob.concurrencyPolicy` | [optional] `Allow\|Forbid\|Replace` concurrent jobs |
|
| `$cronJob.concurrencyPolicy` | [optional] `Allow\|Forbid\|Replace` concurrent jobs |
|
||||||
| `$cronJob.failedJobsHistoryLimit` | [optional] Specify the number of failed jobs to keep |
|
| `$cronJob.failedJobsHistoryLimit` | [optional] Specify the number of failed jobs to keep |
|
||||||
| `$cronJob.successfulJobsHistoryLimit` | [optional] Specify the number of completed 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`.
|
Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) template with `$pod` to populate the `PodTemplate`.
|
||||||
|
|
||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```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:
|
## The following is the same as above:
|
||||||
# {{- include "common.cronJob" (list . .Values.cronJob .Values .Values.serviceAccount "mychart.cronJob") }}
|
# {{- include "common.cronJob" (list . .Values.cronJob .Values .Values.serviceAccount "mychart.cronJob") }}
|
||||||
# {{- define "mychart.cronJob" -}}
|
# {{- define "mychart.cronJob" -}}
|
||||||
# {{- end }}
|
# {{- end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.deployment`
|
### `common.deployment`
|
||||||
|
|
||||||
The `common.deployment` template accepts a list of five values:
|
The `common.deployment` template accepts a list of five values:
|
||||||
@ -221,31 +212,32 @@ The `common.deployment` template accepts a list of five values:
|
|||||||
|
|
||||||
It defines a basic `Deployment` with the following settings:
|
It defines a basic `Deployment` with the following settings:
|
||||||
|
|
||||||
| Value | Description |
|
| Value | Description |
|
||||||
| ----- | ----------- |
|
| -------------------------------- | -------------------------------------------------------------------------- |
|
||||||
| `$deployment.replicaCount` | Number of replica. If autoscaling enabled, this field will be ignored |
|
| `$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.imagePullSecrets` | [optional] Name of Secret resource containing private registry credentials |
|
||||||
| `$deployment.podSecurityContext` | [optional] Security options for pod |
|
| `$deployment.podSecurityContext` | [optional] Security options for pod |
|
||||||
| `$deployment.nodeSelector` | [optional] Node labels for pod assignment |
|
| `$deployment.nodeSelector` | [optional] Node labels for pod assignment |
|
||||||
| `$deployment.affinity` | [optional] Expressions for affinity |
|
| `$deployment.affinity` | [optional] Expressions for affinity |
|
||||||
| `$deployment.tolerations` | [optional] Toleration labels for pod assignment |
|
| `$deployment.tolerations` | [optional] Toleration labels for pod assignment |
|
||||||
| `$autoscaling.enabled` | [optional] Set this to `true` to enable autoscaling |
|
| `$autoscaling.enabled` | [optional] Set this to `true` to enable autoscaling |
|
||||||
|
|
||||||
Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) template with `$deployment` to populate the `PodTemplate`.
|
Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) template with `$deployment` to populate the `PodTemplate`.
|
||||||
|
|
||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```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:
|
## The following is the same as above:
|
||||||
# {{- include "common.deployment" (list . .Values .Values.autoscaling .Values.serviceAccount "mychart.deployment") }}
|
# {{- include "common.deployment" (list . .Values .Values.autoscaling .Values.serviceAccount "mychart.deployment") }}
|
||||||
# {{- define "mychart.deployment" -}}
|
# {{- define "mychart.deployment" -}}
|
||||||
# {{- end }}
|
# {{- end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.hpa`
|
### `common.hpa`
|
||||||
|
|
||||||
The `common.hpa` template accepts a list of three values:
|
The `common.hpa` template accepts a list of three values:
|
||||||
@ -272,8 +264,7 @@ autoscaling:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
{{- include "common.hpa" (list . .Values.autoscaling) }}
|
{ { - include "common.hpa" (list . .Values.autoscaling) } }
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# {{- include "common.hpa" (list . .Values.autoscaling "mychart.hpa") }}
|
# {{- include "common.hpa" (list . .Values.autoscaling "mychart.hpa") }}
|
||||||
# {{- define "mychart.hpa" -}}
|
# {{- define "mychart.hpa" -}}
|
||||||
@ -296,18 +287,18 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
maxReplicas: 5
|
maxReplicas: 5
|
||||||
metrics:
|
metrics:
|
||||||
- resource:
|
- resource:
|
||||||
name: cpu
|
name: cpu
|
||||||
target:
|
target:
|
||||||
averageUtilization: 50
|
averageUtilization: 50
|
||||||
type: Utilization
|
type: Utilization
|
||||||
type: Resource
|
type: Resource
|
||||||
- resource:
|
- resource:
|
||||||
name: memory
|
name: memory
|
||||||
target:
|
target:
|
||||||
averageUtilization: 90
|
averageUtilization: 90
|
||||||
type: Utilization
|
type: Utilization
|
||||||
type: Resource
|
type: Resource
|
||||||
minReplicas: 3
|
minReplicas: 3
|
||||||
scaleTargetRef:
|
scaleTargetRef:
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@ -315,8 +306,6 @@ spec:
|
|||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.ingress`
|
### `common.ingress`
|
||||||
|
|
||||||
The `common.ingress` template accepts a list of four values:
|
The `common.ingress` template accepts a list of four values:
|
||||||
@ -335,14 +324,14 @@ ingress:
|
|||||||
kubernetes.io/ingress.class: nginx
|
kubernetes.io/ingress.class: nginx
|
||||||
kubernetes.io/tls-acme: "true"
|
kubernetes.io/tls-acme: "true"
|
||||||
hosts:
|
hosts:
|
||||||
- host: chart-example.local
|
- host: chart-example.local
|
||||||
paths:
|
paths:
|
||||||
- path: /path/to/somewhere
|
- path: /path/to/somewhere
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
tls:
|
tls:
|
||||||
- secretName: chart-example-tls
|
- secretName: chart-example-tls
|
||||||
hosts:
|
hosts:
|
||||||
- chart-example.local
|
- chart-example.local
|
||||||
service:
|
service:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
port: 80
|
port: 80
|
||||||
@ -351,8 +340,7 @@ service:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
{{- include "common.ingress" (list . .Values.ingress .Values.service) }}
|
{ { - include "common.ingress" (list . .Values.ingress .Values.service) } }
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# {{- include "common.ingress" (list . .Values.ingress .Values.service "mychart.ingress") }}
|
# {{- include "common.ingress" (list . .Values.ingress .Values.service "mychart.ingress") }}
|
||||||
# {{- define "mychart.ingress" -}}
|
# {{- define "mychart.ingress" -}}
|
||||||
@ -377,24 +365,22 @@ metadata:
|
|||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
spec:
|
spec:
|
||||||
rules:
|
rules:
|
||||||
- host: "chart-example.local"
|
- host: "chart-example.local"
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- backend:
|
- backend:
|
||||||
service:
|
service:
|
||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
path: /path/to/somewhere
|
path: /path/to/somewhere
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- "chart-example.local"
|
- "chart-example.local"
|
||||||
secretName: chart-example-tls
|
secretName: chart-example-tls
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.pdb`
|
### `common.pdb`
|
||||||
|
|
||||||
The `common.pdb` template accepts a list of five values:
|
The `common.pdb` template accepts a list of five values:
|
||||||
@ -421,8 +407,11 @@ podDisruptionBudget:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```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:
|
## The following is the same as above:
|
||||||
# {{- include "common.pdb" (list . .Values.podDisruptionBudget .Values .Values.autoscaling "mychart.pdb") }}
|
# {{- include "common.pdb" (list . .Values.podDisruptionBudget .Values .Values.autoscaling "mychart.pdb") }}
|
||||||
# {{- define "mychart.pdb" -}}
|
# {{- define "mychart.pdb" -}}
|
||||||
@ -450,8 +439,6 @@ spec:
|
|||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.secret`
|
### `common.secret`
|
||||||
|
|
||||||
The `common.secret` template accepts a list of two values:
|
The `common.secret` template accepts a list of two values:
|
||||||
@ -496,8 +483,6 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.service`
|
### `common.service`
|
||||||
|
|
||||||
The `common.service` template accepts a list of three values:
|
The `common.service` template accepts a list of three values:
|
||||||
@ -569,9 +554,9 @@ metadata:
|
|||||||
name: release-name-mychart-www
|
name: release-name-mychart-www
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- name: www
|
- name: www
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: 8080
|
targetPort: 8080
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/instance: release-name
|
app.kubernetes.io/instance: release-name
|
||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
@ -590,12 +575,12 @@ metadata:
|
|||||||
name: release-name-mychart-mail
|
name: release-name-mychart-mail
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- name: smtp
|
- name: smtp
|
||||||
port: 25
|
port: 25
|
||||||
targetPort: 25
|
targetPort: 25
|
||||||
- name: imaps
|
- name: imaps
|
||||||
port: 993
|
port: 993
|
||||||
targetPort: 993
|
targetPort: 993
|
||||||
selector:
|
selector:
|
||||||
app.kubernetes.io/instance: release-name
|
app.kubernetes.io/instance: release-name
|
||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
@ -603,8 +588,6 @@ spec:
|
|||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.serviceAccount`
|
### `common.serviceAccount`
|
||||||
|
|
||||||
The `common.serviceAccount` template accepts a list of three values:
|
The `common.serviceAccount` template accepts a list of three values:
|
||||||
@ -630,8 +613,7 @@ serviceAccount:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
{{- include "common.serviceAccount" (list . .Values.serviceAccount) }}
|
{ { - include "common.serviceAccount" (list . .Values.serviceAccount) } }
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# {{- include "common.serviceAccount" (list . .Values.serviceAccount "mychart.serviceAccount") }}
|
# {{- include "common.serviceAccount" (list . .Values.serviceAccount "mychart.serviceAccount") }}
|
||||||
# {{- define "mychart.serviceAccount" -}}
|
# {{- define "mychart.serviceAccount" -}}
|
||||||
@ -653,8 +635,6 @@ metadata:
|
|||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.serviceMonitor`
|
### `common.serviceMonitor`
|
||||||
|
|
||||||
The `common.serviceMonitor` template accepts a list of three values:
|
The `common.serviceMonitor` template accepts a list of three values:
|
||||||
@ -687,8 +667,7 @@ serviceMonitor:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
{{- include "common.serviceMonitor" (list . .Values.serviceMonitor) }}
|
{ { - include "common.serviceMonitor" (list . .Values.serviceMonitor) } }
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# {{- include "common.serviceMonitor" (list . .Values.serviceMonitor "mychart.serviceMonitor") }}
|
# {{- include "common.serviceMonitor" (list . .Values.serviceMonitor "mychart.serviceMonitor") }}
|
||||||
# {{- define "mychart.serviceMonitor" -}}
|
# {{- define "mychart.serviceMonitor" -}}
|
||||||
@ -711,28 +690,26 @@ metadata:
|
|||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
endpoints:
|
endpoints:
|
||||||
- basicAuth:
|
- basicAuth:
|
||||||
password:
|
password:
|
||||||
key: password
|
key: password
|
||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
username:
|
username:
|
||||||
key: username
|
key: username
|
||||||
name: release-name-mychart
|
name: release-name-mychart
|
||||||
interval: 30s
|
interval: 30s
|
||||||
path: /path/to/metrics
|
path: /path/to/metrics
|
||||||
port: 80
|
port: 80
|
||||||
scrapeTimeout: 30s
|
scrapeTimeout: 30s
|
||||||
namespaceSelector:
|
namespaceSelector:
|
||||||
matchNames:
|
matchNames:
|
||||||
- default
|
- default
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/instance: release-name
|
app.kubernetes.io/instance: release-name
|
||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.serviceMonitor.secret`
|
### `common.serviceMonitor.secret`
|
||||||
|
|
||||||
The `common.serviceMonitor.secret` template accepts a list of three values:
|
The `common.serviceMonitor.secret` template accepts a list of three values:
|
||||||
@ -756,8 +733,7 @@ serviceMonitor:
|
|||||||
Example use:
|
Example use:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
{{- include "common.serviceMonitor.secret" (list . .Values.serviceMonitor) }}
|
{ { - include "common.serviceMonitor.secret" (list . .Values.serviceMonitor) } }
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# {{- include "common.serviceMonitor.secret" (list . .Values.serviceMonitor "mychart.serviceMonitor.secret") }}
|
# {{- include "common.serviceMonitor.secret" (list . .Values.serviceMonitor "mychart.serviceMonitor.secret") }}
|
||||||
# {{- define "mychart.serviceMonitor.secret" -}}
|
# {{- define "mychart.serviceMonitor.secret" -}}
|
||||||
@ -784,14 +760,10 @@ metadata:
|
|||||||
type: Opaque
|
type: Opaque
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Partial Objects
|
## Partial Objects
|
||||||
|
|
||||||
When writing Kubernetes resources, you may find the following helpers useful to construct parts of the spec.
|
When writing Kubernetes resources, you may find the following helpers useful to construct parts of the spec.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.chart`
|
### `common.chart`
|
||||||
|
|
||||||
The `common.chart` helper prints the chart name and version, escaped to be legal in a Kubernetes label field.
|
The `common.chart` helper prints the chart name and version, escaped to be legal in a Kubernetes label field.
|
||||||
@ -799,7 +771,7 @@ The `common.chart` helper prints the chart name and version, escaped to be legal
|
|||||||
Example template:
|
Example template:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
helm.sh/chart: {{ include "common.chart" . }}
|
helm.sh/chart: { { include "common.chart" . } }
|
||||||
```
|
```
|
||||||
|
|
||||||
For the chart `foo` with version `1.2.3-beta.55+1234`, this will render:
|
For the chart `foo` with version `1.2.3-beta.55+1234`, this will render:
|
||||||
@ -810,8 +782,6 @@ helm.sh/chart: foo-1.2.3-beta.55_1234
|
|||||||
|
|
||||||
(Note that `+` is an illegal character in label values)
|
(Note that `+` is an illegal character in label values)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.container`
|
### `common.container`
|
||||||
|
|
||||||
The `common.container` template accepts a list of three values:
|
The `common.container` template accepts a list of three values:
|
||||||
@ -877,7 +847,7 @@ image:
|
|||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- ALL
|
- ALL
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
@ -916,46 +886,44 @@ spec:
|
|||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:stable
|
- image: nginx:stable
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: http
|
port: http
|
||||||
name: mychart
|
name: mychart
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
name: http
|
name: http
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
port: http
|
port: http
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- ALL
|
- ALL
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
serviceAccountName: release-name-mychart
|
serviceAccountName: release-name-mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.fullname`
|
### `common.fullname`
|
||||||
|
|
||||||
The `common.fullname` template generates a name suitable for the `name:` field in Kubernetes metadata. It is used like this:
|
The `common.fullname` template generates a name suitable for the `name:` field in Kubernetes metadata. It is used like this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: {{ include "common.fullname" . }}
|
name: { { include "common.fullname" . } }
|
||||||
```
|
```
|
||||||
|
|
||||||
This prints the value of `{{ .Release.Name }}-{{ .Chart.Name }}` by default, but can be overridden with `.Values. fullnameOverride`:
|
This prints the value of `{{ .Release.Name }}-{{ .Chart.Name }}` by default, but can be overridden with `.Values. fullnameOverride`:
|
||||||
@ -978,8 +946,6 @@ name: release-name-mychart
|
|||||||
|
|
||||||
Output of this function is truncated at 63 characters, which is the maximum length of name.
|
Output of this function is truncated at 63 characters, which is the maximum length of name.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.labels`
|
### `common.labels`
|
||||||
|
|
||||||
`common.selectorLabels` prints the standard set of 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
|
helm.sh/chart: mychart-0.1.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.metadata`
|
### `common.metadata`
|
||||||
|
|
||||||
The `common.metadata` helper generates value for the `metadata:` section of a Kubernetes resource.
|
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:
|
Example template:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
metadata:
|
metadata: { { - include "common.metadata" (list .) | nindent 2 } }
|
||||||
{{- include "common.metadata" (list .) | nindent 2 }}
|
|
||||||
|
|
||||||
## The following is the same as above:
|
## The following is the same as above:
|
||||||
# metadata:
|
# metadata:
|
||||||
# {{- include "common.metadata" (list . "mychart.metadata") | nindent 2 }}
|
# {{- include "common.metadata" (list . "mychart.metadata") | nindent 2 }}
|
||||||
@ -1041,14 +1003,12 @@ 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.
|
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`
|
### `common.name`
|
||||||
|
|
||||||
The `common.name` template generates a name suitable for the `app.kubernetes.io/name` label. It is used like this:
|
The `common.name` template generates a name suitable for the `app.kubernetes.io/name` label. It is used like this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
app.kubernetes.io/name: {{ include "common.name" . }}
|
app.kubernetes.io/name: { { include "common.name" . } }
|
||||||
```
|
```
|
||||||
|
|
||||||
This prints the value of `{{ .Chart.Name }}` by default, but can be overridden with `.Values.nameOverride`:
|
This prints the value of `{{ .Chart.Name }}` by default, but can be overridden with `.Values.nameOverride`:
|
||||||
@ -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.
|
Output of this function is truncated at 63 characters, which is the maximum length of name.
|
||||||
|
|
||||||
|
|
||||||
### `common.pod.template`
|
### `common.pod.template`
|
||||||
|
|
||||||
The `common.pod.template` template accepts a list of four values:
|
The `common.pod.template` template accepts a list of four values:
|
||||||
@ -1088,19 +1047,17 @@ It creates a basic `PodTemplate` spec to be used within a `Deployment` or `CronJ
|
|||||||
|
|
||||||
It also uses the following configuration from the `$pod`:
|
It also uses the following configuration from the `$pod`:
|
||||||
|
|
||||||
| Value | Description |
|
| Value | Description |
|
||||||
| ----- | ----------- |
|
| ------------------------- | -------------------------------------------------------- |
|
||||||
| `$pod.imagePullSecrets` | Names of secrets containing private registry credentials |
|
| `$pod.imagePullSecrets` | Names of secrets containing private registry credentials |
|
||||||
| `$pod.podAnnotations` | Pod annotations |
|
| `$pod.podAnnotations` | Pod annotations |
|
||||||
| `$pod.podSecurityContext` | Security options |
|
| `$pod.podSecurityContext` | Security options |
|
||||||
| `$pod.nodeSelector ` | Node labels for pod assignment |
|
| `$pod.nodeSelector ` | Node labels for pod assignment |
|
||||||
| `$pod.affinity ` | Expressions for affinity |
|
| `$pod.affinity ` | Expressions for affinity |
|
||||||
| `$pod.tolerations ` | Toleration labels for pod assignment |
|
| `$pod.tolerations ` | Toleration labels for pod assignment |
|
||||||
|
|
||||||
Underneath the hood, it invokes [`common.container`](#commoncontainer) template with `$pod` to populate the `PodSpec`'s container list.
|
Underneath the hood, it invokes [`common.container`](#commoncontainer) template with `$pod` to populate the `PodSpec`'s container list.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.selectorLabels`
|
### `common.selectorLabels`
|
||||||
|
|
||||||
`common.selectorLabels` prints the standard set of selector labels.
|
`common.selectorLabels` prints the standard set of selector labels.
|
||||||
@ -1118,8 +1075,6 @@ app.kubernetes.io/instance: release-name
|
|||||||
app.kubernetes.io/name: mychart
|
app.kubernetes.io/name: mychart
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### `common.serviceAccountName`
|
### `common.serviceAccountName`
|
||||||
|
|
||||||
The `common.serviceAccountName` template accepts a list of two values:
|
The `common.serviceAccountName` template accepts a list of two values:
|
||||||
|
@ -29,6 +29,9 @@ spec:
|
|||||||
{{- with $cronJob.successfulJobsHistoryLimit }}
|
{{- with $cronJob.successfulJobsHistoryLimit }}
|
||||||
successfulJobsHistoryLimit: {{ . }}
|
successfulJobsHistoryLimit: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with $cronJob.suspend }}
|
||||||
|
suspend: {{ . }}
|
||||||
|
{{- end }}
|
||||||
jobTemplate:
|
jobTemplate:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
Reference in New Issue
Block a user