---
title: Service Account
---

:::note

- Examples under each key are only to be used as a placement guide
- See the [Full Examples](/truecharts-common/serviceaccount#full-examples) section for complete examples.

:::

## Appears in

- `.Values.serviceAccount`

## Naming scheme

- Primary: `$FullName` (release-name-chart-name)
- Non-Primary: `$FullName-$ServiceAccountName` (release-name-chart-name-ServiceAccountName)

:::tip

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

:::

---

## Target Selector

- `targetSelectAll` (bool): Whether to assign the serviceAccount to all pods or not. `targetSelector` is ignored in this case
- `targetSelector` (list): Define the pod(s) to assign the serviceAccount
- `targetSelector` (empty): Assign the serviceAccount to the primary pod

---

## `serviceAccount`

Create serviceAccount objects

|            |                  |
| ---------- | ---------------- |
| Key        | `serviceAccount` |
| Type       | `map`            |
| Required   | ❌               |
| Helm `tpl` | ❌               |
| Default    | `{}`             |

Example

```yaml
serviceAccount: {}
```

---

### `serviceAccount.$name`

Define serviceAccount

|            |                        |
| ---------- | ---------------------- |
| Key        | `serviceAccount.$name` |
| Type       | `map`                  |
| Required   | ✅                     |
| Helm `tpl` | ❌                     |
| Default    | `{}`                   |

Example

```yaml
serviceAccount:
  sa-name: {}
```

---

#### `enabled`

Enables or Disables the serviceAccount

|            |                                |
| ---------- | ------------------------------ |
| Key        | `serviceAccount.$name.enabled` |
| Type       | `bool`                         |
| Required   | ✅                             |
| Helm `tpl` | ✅                             |
| Default    | `false`                        |

Example

```yaml
serviceAccount:
  sa-name:
    enabled: true
```

---

#### `primary`

Sets the serviceAccount as primary

|            |                                |
| ---------- | ------------------------------ |
| Key        | `serviceAccount.$name.primary` |
| Type       | `bool`                         |
| Required   | ❌                             |
| Helm `tpl` | ❌                             |
| Default    | `false`                        |

Example

```yaml
serviceAccount:
  sa-name:
    primary: true
```

---

#### `namespace`

Define the namespace for this object

|            |                                  |
| ---------- | -------------------------------- |
| Key        | `serviceAccount.$name.namespace` |
| Type       | `string`                         |
| Required   | ❌                               |
| Helm `tpl` | ✅                               |
| Default    | `""`                             |

Example

```yaml
serviceAccount:
  sa-name:
    namespace: some-namespace
```

---

#### `labels`

Additional labels for service account

|            |                               |
| ---------- | ----------------------------- |
| Key        | `serviceAccount.$name.labels` |
| Type       | `map`                         |
| Required   | ❌                            |
| Helm `tpl` | ✅ (On value only)            |
| Default    | `{}`                          |

Example

```yaml
serviceAccount:
  sa-name:
    labels:
      key: value
```

---

#### `annotations`

Additional annotations for service account

|            |                                    |
| ---------- | ---------------------------------- |
| Key        | `serviceAccount.$name.annotations` |
| Type       | `map`                              |
| Required   | ❌                                 |
| Helm `tpl` | ✅ (On value only)                 |
| Default    | `{}`                               |

Example

```yaml
serviceAccount:
  sa-name:
    annotations:
      key: value
```

---

#### `targetSelectAll`

Whether to assign the serviceAccount to all pods or not

|            |                                        |
| ---------- | -------------------------------------- |
| Key        | `serviceAccount.$name.targetSelectAll` |
| Type       | `bool`                                 |
| Required   | ❌                                     |
| Helm `tpl` | ❌                                     |
| Default    | unset                                  |

Example

```yaml
serviceAccount:
  sa-name:
    targetSelectAll: true
```

---

#### `targetSelector`

Define the pod(s) to assign the serviceAccount

|            |                                       |
| ---------- | ------------------------------------- |
| Key        | `serviceAccount.$name.targetSelector` |
| Type       | `list` of `string`                    |
| Required   | ❌                                    |
| Helm `tpl` | ❌                                    |
| Default    | `[]`                                  |

Example

```yaml
serviceAccount:
  sa-name:
    targetSelector:
      - workload-name1
      - workload-name2
```

---

## Full Examples

```yaml
serviceAccount:
  sa-name:
    enabled: true
    primary: true
    namespace: some-namespace
    labels:
      key: value
      keytpl: "{{ .Values.some.value }}"
    annotations:
      key: value
      keytpl: "{{ .Values.some.value }}"
    targetSelectAll: true

  other-sa-name:
    enabled: true
    namespace: some-namespace
    targetSelector:
      - pod-name
      - other-pod-name
```
