|
3 | 3 | ## Table of Contents |
4 | 4 |
|
5 | 5 | 1. [Overview](#overview) |
6 | | -2. [Class Name Configuration](#class-name-configuration) |
7 | | -3. [Limitations](#limitations) |
8 | | -4. [Service Enablement](#service-enablement) |
9 | | -5. [Configuration](#configuration) |
| 6 | +2. [Limitations](#limitations) |
| 7 | +3. [Service Enablement](#service-enablement) |
| 8 | +4. [Configuration](#configuration) |
10 | 9 | - [STACKIT Annotations](#stackit-annotations) |
11 | 10 | - [Supported yawol Annotations](#supported-yawol-annotations) |
12 | 11 | - [Unsupported yawol Annotations](#unsupported-yawol-annotations) |
13 | | -6. [Node Labels](#node-labels) |
| 12 | +5. [Node Labels](#node-labels) |
14 | 13 |
|
15 | 14 | ## Overview |
16 | 15 |
|
17 | 16 | The cloud controller manager provisions STACKIT load balancers for Kubernetes services of type load balancer. |
18 | 17 |
|
19 | | -In order to avoid collisions with other load balancer implementations, the following annotation needs to be set on the service. |
20 | | - |
21 | | -```YAML |
22 | | -annotations: |
23 | | - yawol.stackit.cloud/className: stackit |
24 | | -``` |
25 | | -
|
26 | | -This annotation is immutable. It must not be changed on existing load balancers. |
27 | | -The controller will always manage all services whose class name annotation is `stackit`. |
28 | | - |
29 | | -> :warning: The CCM adds a finalizer to the service regardless of whether it has a matching class name annotation or not. |
30 | | - |
31 | | -## Class Name Configuration |
32 | | - |
33 | | -For load balancers with not `stackit` as class name (identified via the `yawol.stackit.cloud/className` annotation) the controller manages them in different ways. |
34 | | -The controller modes are configured via `nonStackitClassNames` in the cloud-config.yaml: |
35 | | - |
36 | | -- `ignore`: Return "implemented elsewhere" for all services whose class name |
37 | | - annotation is not `stackit`. |
38 | | -- `update`: Update load balancers whose class name annotation is not `stackit`. |
39 | | - If the load balancer is not found, no error is returned. |
40 | | -- `updateAndCreate` (default): The CCM treats every service the same, i.e. |
41 | | - ignores the class name annotation. |
42 | | - |
43 | | -If no `nonStackitClassNames` mode is set in the config file, the mode will automatically be set to `updateAndCreate`. |
44 | | - |
45 | 18 | ## Limitations |
46 | 19 |
|
47 | 20 | - `externalTrafficPolicy=local` is not supported. |
|
0 commit comments