|
|
|
@@ -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:
|
|
|
|
@@ -187,28 +177,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 |
|
|
|
|
|
|
|
|
| `$cronJob.activeDeadlineSeconds` | [optional] Specify cronjob activeDeadlineSeconds |
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
@@ -222,7 +214,7 @@ 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 |
|
|
|
|
@@ -236,16 +228,17 @@ Underneath the hood, it invokes [`common.pod.template`](#commonpodtemplate) temp
|
|
|
|
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 +265,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" -}}
|
|
|
|
@@ -315,8 +307,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:
|
|
|
|
@@ -337,7 +327,8 @@ ingress:
|
|
|
|
hosts:
|
|
|
|
hosts:
|
|
|
|
- host: chart-example.local
|
|
|
|
- host: chart-example.local
|
|
|
|
paths:
|
|
|
|
paths:
|
|
|
|
- /path/to/somewhere
|
|
|
|
- path: /path/to/somewhere
|
|
|
|
|
|
|
|
pathType: ImplementationSpecific
|
|
|
|
tls:
|
|
|
|
tls:
|
|
|
|
- secretName: chart-example-tls
|
|
|
|
- secretName: chart-example-tls
|
|
|
|
hosts:
|
|
|
|
hosts:
|
|
|
|
@@ -350,8 +341,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" -}}
|
|
|
|
@@ -380,17 +370,18 @@ spec:
|
|
|
|
http:
|
|
|
|
http:
|
|
|
|
paths:
|
|
|
|
paths:
|
|
|
|
- backend:
|
|
|
|
- backend:
|
|
|
|
serviceName: release-name-mychart
|
|
|
|
service:
|
|
|
|
servicePort: 80
|
|
|
|
name: release-name-mychart
|
|
|
|
|
|
|
|
port:
|
|
|
|
|
|
|
|
number: 80
|
|
|
|
path: /path/to/somewhere
|
|
|
|
path: /path/to/somewhere
|
|
|
|
|
|
|
|
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:
|
|
|
|
@@ -417,8 +408,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" -}}
|
|
|
|
@@ -446,8 +440,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:
|
|
|
|
@@ -492,8 +484,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:
|
|
|
|
@@ -599,8 +589,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:
|
|
|
|
@@ -626,8 +614,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" -}}
|
|
|
|
@@ -649,8 +636,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:
|
|
|
|
@@ -683,8 +668,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" -}}
|
|
|
|
@@ -727,8 +711,6 @@ spec:
|
|
|
|
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:
|
|
|
|
@@ -752,8 +734,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" -}}
|
|
|
|
@@ -780,14 +761,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.
|
|
|
|
@@ -795,7 +772,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:
|
|
|
|
@@ -806,8 +783,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:
|
|
|
|
@@ -944,14 +919,12 @@ spec:
|
|
|
|
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`:
|
|
|
|
@@ -974,8 +947,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.
|
|
|
|
@@ -996,8 +967,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.
|
|
|
|
@@ -1012,9 +981,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 }}
|
|
|
|
@@ -1037,14 +1004,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`:
|
|
|
|
@@ -1067,7 +1032,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:
|
|
|
|
@@ -1085,18 +1049,18 @@ 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 |
|
|
|
|
|
|
|
|
| `$pod.podLabels` | Pod extra labels |
|
|
|
|
|
|
|
|
| `$pod.priorityClassName` | Pod priorityClassName |
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
@@ -1114,8 +1078,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:
|
|
|
|
|