---
title: LoadBalancer
---

:::note

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

:::

## Appears in

- `.Values.service.$name`

:::tip

- See available service keys [here](/truecharts-common/service).
- This options apply only when `type: LoadBalancer`.

:::

---

## `sharedKey`

Sets the shared key in `metallb.io/allow-shared-ip` **MetalLB** Annotation

|            |                           |
| ---------- | ------------------------- |
| Key        | `service.$name.sharedKey` |
| Type       | `string`                  |
| Required   | ❌                        |
| Helm `tpl` | ✅                        |
| Default    | `$FullName`               |

Example

```yaml
service:
  some-service:
    sharedKey: custom-shared-key
```

## `loadBalancerIP`

Define the load balancer IP, sets the `metallb.io/loadBalancerIPs` **MetalLB** annotation. Mutually exclusive with `loadBalancerIPs`

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

Example

```yaml
service:
  some-service:
    loadBalancerIP: 1.2.3.4
```

## `loadBalancerIPs`

Define the load balancer IPs, sets the `metallb.io/loadBalancerIPs` **MetalLB** annotation. Mutually exclusive with `loadBalancerIP`

|            |                                 |
| ---------- | ------------------------------- |
| Key        | `service.$name.loadBalancerIPs` |
| Type       | `list` of `string`              |
| Required   | ❌                              |
| Helm `tpl` | ✅ (On entries only)            |
| Default    | `[]`                            |

Example

```yaml
service:
  some-service:
    loadBalancerIPs:
      - 1.2.3.4
      - 5.6.7.8
```

---

## `loadBalancerSourceRanges`

Define the load balancer source ranges

|            |                                          |
| ---------- | ---------------------------------------- |
| Key        | `service.$name.loadBalancerSourceRanges` |
| Type       | `list` of `string`                       |
| Required   | ❌                                       |
| Helm `tpl` | ✅ (On entries only)                     |
| Default    | `[]`                                     |

Example

```yaml
service:
  some-service:
    loadBalancerSourceRanges:
      - 10.100.100.0/24
      - 10.100.200.0/24
```

---

## Full Examples

```yaml
service:
  service-lb:
    enabled: true
    primary: true
    type: LoadBalancer
    loadBalancerIP: 10.100.100.2
    loadBalancerSourceRanges:
      - 10.100.100.0/24
    clusterIP: 172.16.20.233
    sharedKey: custom-shared-key
    publishNotReadyAddresses: true
    ipFamilyPolicy: SingleStack
    ipFamilies:
      - IPv4
    externalIPs:
      - 10.200.230.34
    sessionAffinity: ClientIP
    sessionAffinityConfig:
      clientIP:
        timeoutSeconds: 86400
    externalTrafficPolicy: Cluster
    targetSelector: pod-name
    ports:
      port-name:
        enabled: true
        primary: true
        targetSelector: container-name
        port: 80
        protocol: HTTP
        targetPort: 8080
```
