514 lines
14 KiB
Markdown
514 lines
14 KiB
Markdown
---
|
|
title: Probes
|
|
---
|
|
|
|
:::note
|
|
|
|
- Examples under each key are only to be used as a placement guide
|
|
- See the [Full Examples](/truecharts-common/container/probes#full-examples) section for complete examples.
|
|
|
|
:::
|
|
|
|
## Appears in
|
|
|
|
- `.Values.workload.$name.podSpec.containers.$name`
|
|
|
|
---
|
|
|
|
## `probes`
|
|
|
|
Define probes for the container
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------ |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes` |
|
|
| Type | `map` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes: {}
|
|
```
|
|
|
|
### `probes.liveness`
|
|
|
|
Define the liveness probe
|
|
|
|
| | |
|
|
| ---------- | --------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.liveness` |
|
|
| Type | `map` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness: {}
|
|
```
|
|
|
|
---
|
|
|
|
### `probes.readiness`
|
|
|
|
Define the readiness probe
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.readiness` |
|
|
| Type | `map` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
readiness: {}
|
|
```
|
|
|
|
---
|
|
|
|
### `probes.startup`
|
|
|
|
Define the startup probe
|
|
|
|
| | |
|
|
| ---------- | -------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.startup` |
|
|
| Type | `map` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
startup: {}
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.enabled`
|
|
|
|
Enable or disable the probe
|
|
|
|
| | |
|
|
| ---------- | --------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.enabled` |
|
|
| Type | `bool` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `true` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
enabled: true
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.type`
|
|
|
|
Define probe type
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------------------ |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.type` |
|
|
| Type | `string` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ✅ |
|
|
| Default | `http` |
|
|
|
|
Valid Values:
|
|
|
|
- `exec`
|
|
- `http`
|
|
- `https`
|
|
- `tcp`
|
|
- `grpc`
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
type: http
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.command`
|
|
|
|
Define command(s)
|
|
|
|
:::note
|
|
|
|
- Only applies when `type: exec`
|
|
- It is **required**
|
|
|
|
:::
|
|
|
|
See [Command](/truecharts-common/container/command#command) for more information.
|
|
|
|
---
|
|
|
|
#### `probes.$probe.port`
|
|
|
|
Define the port
|
|
|
|
:::note
|
|
|
|
- Only applies when `type: grpc/tcp/http/https`
|
|
|
|
:::
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------------------ |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.port` |
|
|
| Type | `int` |
|
|
| Required | ✅ |
|
|
| Helm `tpl` | ✅ |
|
|
| Default | unset |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
port: 8080
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.path`
|
|
|
|
Define the path
|
|
|
|
:::note
|
|
|
|
- Only applies when `type: http/https`
|
|
|
|
:::
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------------------ |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.path` |
|
|
| Type | `string` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ✅ |
|
|
| Default | `/` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
path: /healthz
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.httpHeaders`
|
|
|
|
Define the httpHeaders
|
|
|
|
:::note
|
|
|
|
- Only applies when `type: http/https`
|
|
|
|
:::
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.httpHeaders` |
|
|
| Type | `map` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ✅ (On value only) |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
httpHeaders:
|
|
key1: value1
|
|
key2: value2
|
|
```
|
|
|
|
---
|
|
|
|
#### `probes.$probe.spec`
|
|
|
|
Define the probe spec
|
|
|
|
| | |
|
|
| ---------- | ------------------------------------------------------------ |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec` |
|
|
| Type | `map` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | `{}` |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
spec: {}
|
|
```
|
|
|
|
---
|
|
|
|
##### `probes.$probe.spec.initialDelaySeconds`
|
|
|
|
Define the initialDelaySeconds in seconds
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec.initialDelaySeconds` |
|
|
| Type | `int` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | See defaults for each probe [here](/truecharts-common/fallbackdefaults#probetimeouts) |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
spec:
|
|
initialDelaySeconds: 10
|
|
```
|
|
|
|
---
|
|
|
|
##### `probes.$probe.spec.periodSeconds`
|
|
|
|
Define the periodSeconds in seconds
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec.periodSeconds` |
|
|
| Type | `int` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | See defaults for each probe [here](/truecharts-common/fallbackdefaults#probetimeouts) |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
spec:
|
|
periodSeconds: 10
|
|
```
|
|
|
|
---
|
|
|
|
##### `probes.$probe.spec.timeoutSeconds`
|
|
|
|
Define the timeoutSeconds in seconds
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec.timeoutSeconds` |
|
|
| Type | `int` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | See defaults for each probe [here](/truecharts-common/fallbackdefaults#probetimeouts) |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
spec:
|
|
timeoutSeconds: 10
|
|
```
|
|
|
|
---
|
|
|
|
##### `probes.$probe.spec.failureThreshold`
|
|
|
|
Define the failureThreshold in seconds
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec.failureThreshold` |
|
|
| Type | `int` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | See defaults for each probe [here](/truecharts-common/fallbackdefaults#probetimeouts) |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
liveness:
|
|
spec:
|
|
failureThreshold: 10
|
|
```
|
|
|
|
---
|
|
|
|
##### `probes.$probe.spec.successThreshold`
|
|
|
|
Define the successThreshold in seconds. `liveness` and `startup` must always be 1
|
|
|
|
| | |
|
|
| ---------- | ---------------------------------------------------------------------------------- |
|
|
| Key | `workload.$name.podSpec.containers.$name.probes.$probe.spec.successThreshold` |
|
|
| Type | `int` |
|
|
| Required | ❌ |
|
|
| Helm `tpl` | ❌ |
|
|
| Default | See defaults for each probe [here](/truecharts-common/fallbackdefaults#probetimeouts) |
|
|
|
|
Example
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
probes:
|
|
readiness:
|
|
spec:
|
|
successThreshold: 10
|
|
```
|
|
|
|
---
|
|
|
|
## Full Examples
|
|
|
|
```yaml
|
|
workload:
|
|
workload-name:
|
|
enabled: true
|
|
primary: true
|
|
podSpec:
|
|
containers:
|
|
container-name:
|
|
enabled: true
|
|
primary: true
|
|
probes:
|
|
liveness:
|
|
enabled: true
|
|
type: https
|
|
port: 8080
|
|
path: /healthz
|
|
httpHeaders:
|
|
key1: value1
|
|
key2: value2
|
|
spec:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 10
|
|
successThreshold: 10
|
|
readiness:
|
|
enabled: true
|
|
type: tcp
|
|
port: 8080
|
|
spec:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 10
|
|
successThreshold: 10
|
|
startup:
|
|
enabled: true
|
|
type: exec
|
|
command:
|
|
- command1
|
|
- command2
|
|
spec:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
timeoutSeconds: 10
|
|
failureThreshold: 10
|
|
successThreshold: 10
|
|
```
|