Files
Kjeld Schouten 899cfb71b3 add common docs
2025-10-15 15:11:59 +02:00

35 KiB

title
title
Workload

:::note

  • Examples under each key are only to be used as a placement guide
  • See the Full Examples section for complete examples.

:::

Appears in

  • .Values.workload

Naming scheme

  • Primary: $FullName (release-name-chart-name)
  • Non-Primary: $FullName-$WorkloadName (release-name-chart-name-workload-name)

:::tip

Replace references to $name with the actual name you want to use.

:::


workload

Define workload objects

Key workload
Type map
Required
Helm tpl
Default {}

Example

workload: {}

$name

Define workload

Key workload.$name
Type map
Required
Helm tpl
Default {}

Example

workload:
  workload-name: {}

enabled

Enable or disable workload

Key workload.$name.enabled
Type bool
Required
Helm tpl
Default false

Example

workload:
  workload-name:
    enabled: true

primary

Set workload as primary

Key workload.$name.primary
Type bool
Required
Helm tpl
Default false

Example

workload:
  workload-name:
    primary: true

labels

Define labels for workload

Key workload.$name.labels
Type map
Required
Helm tpl (On value only)
Default {}

Example

workload:
  workload-name:
    labels:
      key: value

annotations

Define annotations for workload

Key workload.$name.annotations
Type map
Required
Helm tpl (On value only)
Default {}

Example

workload:
  workload-name:
    annotations:
      key: value

namespace

Define the namespace for this object

Key workload.$name.namespace
Type string
Required
Helm tpl (On value only)
Default ""

Example

workload:
  workload-name:
    namespace: some-namespace

type

Define the kind of the workload

Key workload.$name.type
Type string
Required
Helm tpl
Default ""

Valid values

Example

workload:
  workload-name:
    type: Deployment

podSpec

Define the podSpec for the workload

Key workload.$name.podSpec
Type map
Required
Helm tpl
Default {}

Example

workload:
  workload-name:
    podSpec: {}

labels

Define labels for podSpec

Key workload.$name.podSpec.labels
Type map
Required
Helm tpl (On value only)
Default {}

Example

workload:
  workload-name:
    podSpec:
      labels:
        key: value

annotations

Define annotations for podSpec

Key workload.$name.podSpec.annotations
Type map
Required
Helm tpl (On value only)
Default {}

Example

workload:
  workload-name:
    podSpec:
      annotations:
        key: value

automountServiceAccountToken

Pod's automountServiceAccountToken

Key workload.$name.podSpec.automountServiceAccountToken
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      automountServiceAccountToken: true

serviceAccountName

:::note

Suggested is to use the top-level serviceAccount key to define the service account with targetSelector.

Using this key here, is out of our support scope.

:::

Define the service account name for the workload

Key workload.$name.serviceAccountName
Type string
Required
Helm tpl (On value only)
Default ""

Example

workload:
  workload-name:
    serviceAccountName: some-service-account

Example

workload:
  workload-name:
    podSpec:
      serviceAccountName: some-service-account

hostNetwork

Bind pod to host's network

Key workload.$name.podSpec.hostNetwork
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      hostNetwork: true
hostPID

Allow pod to access host's PID namespace

Key workload.$name.podSpec.hostPID
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      hostPID: true

hostIPC

Allow pod to access host's IPC namespace

Key workload.$name.podSpec.hostIPC
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      hostIPC: true

hostUsers

Allow pod to access host's users namespace

Key workload.$name.podSpec.hostUsers
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      hostUsers: true

shareProcessNamespace

Share Process Namespace with other containers in the pod

Key workload.$name.podSpec.shareProcessNamespace
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      shareProcessNamespace: true

Pod's enableServiceLinks

Key workload.$name.podSpec.enableServiceLinks
Type bool
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      enableServiceLinks: true

restartPolicy

Pod's restartPolicy

Key workload.$name.podSpec.restartPolicy
Type string
Required
Helm tpl
Default See default here

Valid values

  • Always
  • Never
  • OnFailure

Example

workload:
  workload-name:
    podSpec:
      restartPolicy: OnFailure

schedulerName

Pod's schedulerName

Key workload.$name.podSpec.schedulerName
Type string
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      schedulerName: some-scheduler

priorityClassName

Pod's priorityClassName

Key workload.$name.podSpec.priorityClassName
Type string
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      priorityClassName: some-priority-class-name

hostname

Pod's hostname

Key workload.$name.podSpec.hostname
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      hostname: some-hostname

terminationGracePeriodSeconds

Pod's terminationGracePeriodSeconds

Key workload.$name.podSpec.terminationGracePeriodSeconds
Type int
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      terminationGracePeriodSeconds: 100

nodeSelector

Pod's nodeSelector

Key workload.$name.podSpec.nodeSelector
Type map
Required
Helm tpl (On value only)
Default See default here

Example

workload:
  workload-name:
    podSpec:
      nodeSelector:
        disk_type: ssd

topologySpreadConstraints

Pod's topologySpreadConstraints

Key workload.$name.podSpec.topologySpreadConstraints
Type list of map
Required
Helm tpl
Default See default here

hostAliases

Pod's hostAliases

Key workload.$name.podSpec.hostAliases
Type list of map
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      hostAliases: []

ip

Pod's hostAliases ip

Key workload.$name.podSpec.hostAliases.ip
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      hostAliases:
        - ip: 1.2.3.4

hostnames

Pod's hostAliases hostnames

Key workload.$name.podSpec.hostAliases.hostnames
Type list of string
Required
Helm tpl (On each entry)
Default []

Example

workload:
  workload-name:
    podSpec:
      hostAliases:
        - ip: 1.2.3.4
          hostnames:
            - myserver.local
            - storage.local

dnsPolicy

Pod's dnsPolicy

:::note

dnsPolicy is set automatically to ClusterFirstWithHostNet when hostNetwork is true

:::

Key workload.$name.podSpec.dnsPolicy
Type string
Required
Helm tpl
Default See default here

Valid values

  • None
  • Default
  • ClusterFirst
  • ClusterFirstWithHostNet

Example

workload:
  workload-name:
    podSpec:
      dnsPolicy: ClusterFirst

dnsConfig

Pod's dnsConfig

Key workload.$name.podSpec.dnsConfig
Type map
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      dnsConfig: {}

dnsConfig.nameservers

Pod's dnsConfig nameservers

Key workload.$name.podSpec.dnsConfig.nameservers
Type list of string
Required
Helm tpl (On each entry)
Default []

Example

workload:
  workload-name:
    podSpec:
      dnsConfig:
        nameservers:
          - 1.1.1.1

dnsConfig.searches

Pod's dnsConfig searches

Key workload.$name.podSpec.dnsConfig.searches
Type list of string
Required
Helm tpl (On each entry)
Default []

Example

workload:
  workload-name:
    podSpec:
      dnsConfig:
        searches:
          - ns1.svc.cluster-domain.example

dnsConfig.options

Pod's dnsConfig options

Key workload.$name.podSpec.dnsConfig.options
Type list of map
Required
Helm tpl
Default [{"ndots": "1"}]

Example

workload:
  workload-name:
    podSpec:
      dnsConfig:
        options: []

dnsConfig.options.name

Pod's dnsConfig options name

Key workload.$name.podSpec.dnsConfig.options.name
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      dnsConfig:
        options:
          - name: ndots
            value: "1"

dnsConfig.options.value

Pod's dnsConfig options value

Key workload.$name.podSpec.dnsConfig.options.value
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      dnsConfig:
        options:
          - name: ndots
            value: "1"

tolerations

Pod's tolerations

Key workload.$name.podSpec.tolerations
Type list of map
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      tolerations: []

tolerations.operator

Pod's tolerations operator

Key workload.$name.podSpec.tolerations.operator
Type string
Required
Helm tpl
Default ""

Valid values

  • Equal
  • Exists

Example

workload:
  workload-name:
    podSpec:
      tolerations:
        - operator: Exists

tolerations.key

Pod's tolerations key

:::note

Required only when operator = Equal

:::

Key workload.$name.podSpec.tolerations.key
Type string
Required /
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      tolerations:
        - operator: Equal
          key: key

tolerations.value

Pod's tolerations value

:::note

Required only when operator = Equal

:::

Key workload.$name.podSpec.tolerations.value
Type string
Required /
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      tolerations:
        - operator: Equal
          key: key
          value: value

tolerations.effect

Pod's tolerations effect

Key workload.$name.podSpec.tolerations.effect
Type string
Required
Helm tpl
Default ""

Valid values

  • NoExecute
  • NoSchedule
  • PreferNoSchedule

Example

workload:
  workload-name:
    podSpec:
      tolerations:
        - operator: Exists
          effect: NoExecute

tolerations.tolerationSeconds

Pod's tolerations tolerationSeconds

Key workload.$name.podSpec.tolerations.tolerationSeconds
Type int
Required
Helm tpl
Default unset

Example

workload:
  workload-name:
    podSpec:
      tolerations:
        - operator: Exists
          effect: NoExecute
          tolerationSeconds: 3600

runtimeClassName

Pod's runtimeClassName

:::note

Note that it will only set the runtimeClassName on the pod that this container belongs to.

:::

Key workload.$name.podSpec.runtimeClassName
Type string
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      runtimeClassName: some-runtime-class

securityContext

Pod's securityContext

Key workload.$name.podSpec.securityContext
Type map
Required
Helm tpl
Default See default here

Default

securityContext:
  pod:
    fsGroup: 568
    fsGroupChangePolicy: OnRootMismatch
    supplementalGroups:
      - 568

Example

workload:
  workload-name:
    podSpec:
      securityContext: {}

securityContext.fsGroup

Pod's securityContext fsGroup

Key workload.$name.podSpec.securityContext.fsGroup
Type int
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        fsGroup: 568

securityContext.fsGroupChangePolicy

Pod's securityContext fsGroupChangePolicy

Key workload.$name.podSpec.securityContext.fsGroupChangePolicy
Type string
Required
Helm tpl
Default See default here

Valid values

  • Always
  • OnRootMismatch

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        fsGroupChangePolicy: OnRootMismatch

securityContext.supplementalGroups

Pod's securityContext supplementalGroups

Key workload.$name.podSpec.securityContext.supplementalGroups
Type list of int
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        supplementalGroups:
          - 568

securityContext.sysctls

:::note

The sysctl net.ipv4.ip_unprivileged_port_start option will be automatically set to the lowest targetPort (or port if targetPort is not defined) number assigned to the pod. When hostNetwork is enabled the above sysctl option will not be added.

:::

Key workload.$name.podSpec.securityContext.sysctls
Type list of map
Required
Helm tpl
Default See default here

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        sysctls: []

securityContext.sysctls.name

Pod's securityContext sysctls name

Key workload.$name.podSpec.securityContext.sysctls.name
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        sysctls:
          - name: net.ipv4.ip_local_port_range
            value: 1024 65535

securityContext.sysctls.value

Pod's securityContext sysctls value

Key workload.$name.podSpec.securityContext.sysctls.value
Type string
Required
Helm tpl
Default ""

Example

workload:
  workload-name:
    podSpec:
      securityContext:
        sysctls:
          - name: net.ipv4.ip_local_port_range
            value: 1024 65535

containers

Define container(s) for the workload

See Container for more information

Key workload.$name.containers
Type map
Required
Helm tpl
Default {}

Example

workload:
  workload-name:
    containers: {}

initContainers

Define initContainer(s) for the workload

See Container for more information

Key workload.$name.initContainers
Type map
Required
Helm tpl
Default {}

Example

workload:
  workload-name:
    initContainers: {}

Full Examples

workload:
  workload-name:
    enabled: true
    primary: true
    namespace: some-namespace
    labels:
      key: value
    annotations:
      key: value
    podSpec:
      labels:
        key: value
      annotations:
        key: value
      automountServiceAccountToken: true
      hostNetwork: false
      hostPID: false
      shareProcessNamespace: false
      enableServiceLinks: false
      schedulerName: some-scheduler
      priorityClassName: some-priority-class-name
      hostname: some-hostname
      terminationGracePeriodSeconds: 100
      nodeSelector:
        disk_type: ssd
      hostAliases:
        - ip: 10.10.10.100
          hostnames:
            - myserver.local
            - storage.local
        - ip: 10.10.10.101
          hostnames:
            - myotherserver.local
            - backups.local
      dnsPolicy: ClusterFirst
      dnsConfig:
        nameservers:
          - 1.1.1.1
          - 1.0.0.1
        searches:
          - ns1.svc.cluster-domain.example
          - my.dns.search.suffix
        options:
          - name: ndots
            value: "1"
          - name: edns0
      tolerations:
        - operator: Exists
          effect: NoExecute
          tolerationSeconds: 3600
      runtimeClassName: some-runtime-class
      securityContext:
        fsGroup: 568
        fsGroupChangePolicy: OnRootMismatch
        supplementalGroups:
          - 568
        sysctls:
          - name: net.ipv4.ip_local_port_range
            value: 1024 65535

Full examples for each workload type can be found here