Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KU-2068 reformatted annotations table #789

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
207 changes: 181 additions & 26 deletions docs/src/snap/reference/annotations.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,191 @@
# Annotations

This page outlines the annotations that can be configured during cluster
nhennigan marked this conversation as resolved.
Show resolved Hide resolved
[bootstrap]. To do this, set the cluster-config/annotations parameter in
[bootstrap]. To do this, set the `cluster-config.annotations` parameter in
the bootstrap configuration.
nhennigan marked this conversation as resolved.
Show resolved Hide resolved

| Name | Description | Values |
|---------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
| `k8sd/v1alpha/lifecycle/skip-cleanup-kubernetes-node-on-remove` | If set, only MicroCluster and file cleanup are performed. This is helpful when an external controller (e.g., CAPI) manages the Kubernetes node lifecycle. By default, k8sd will remove the Kubernetes node when it is removed from the cluster. | "true"\|"false" |
| `k8sd/v1alpha/lifecycle/skip-stop-services-on-remove` | If set, the k8s services will not be stopped on the leaving node when removing the node. This is helpful when an external controller (e.g., CAPI) manages the Kubernetes node lifecycle. By default, all services are stopped on leaving nodes. | "true"\|"false" |
| `k8sd/v1alpha1/csrsigning/auto-approve` | If set, certificate signing requests created by worker nodes are auto approved. | "true"\|"false" |
| `k8sd/v1alpha1/calico/apiserver-enabled` | Enable the installation of the Calico API server to enable management of Calico APIs using kubectl. | "true"\|"false" |
| `k8sd/v1alpha1/calico/encapsulation-v4` | The type of encapsulation to use on the IPv4 pool. | "IPIP"\|"VXLAN"\|"IPIPCrossSubnet"\|"VXLANCrossSubnet"\|"None" |
| `k8sd/v1alpha1/calico/encapsulation-v6` | The type of encapsulation to use on the IPv6 pool. | "IPIP"\|"VXLAN"\|"IPIPCrossSubnet"\|"VXLANCrossSubnet"\|"None" |
| `k8sd/v1alpha1/calico/autodetection-v4/firstFound` | Use default interface matching parameters to select an interface, performing best-effort filtering based on well-known interface names. | "true"\|"false" |
| `k8sd/v1alpha1/calico/autodetection-v4/kubernetes` | Configure Calico to detect node addresses based on the Kubernetes API. | "NodeInternalIP" |
| `k8sd/v1alpha1/calico/autodetection-v4/interface` | Enable IP auto-detection based on interfaces that match the given regex. | string |
| `k8sd/v1alpha1/calico/autodetection-v4/skipInterface` | Enable IP auto-detection based on interfaces that do not match the given regex. | string |
| `k8sd/v1alpha1/calico/autodetection-v4/canReach` | Enable IP auto-detection based on which source address on the node is used to reach the specified IP or domain. | string |
| `k8sd/v1alpha1/calico/autodetection-v4/cidrs` | Enable IP auto-detection based on which addresses on the nodes are within one of the provided CIDRs. | []string (comma separated) |
| `k8sd/v1alpha1/calico/autodetection-v6/firstFound` | Use default interface matching parameters to select an interface, performing best-effort filtering based on well-known interface names. | "true"\|"false" |
| `k8sd/v1alpha1/calico/autodetection-v6/kubernetes` | Configure Calico to detect node addresses based on the Kubernetes API. | "NodeInternalIP" |
| `k8sd/v1alpha1/calico/autodetection-v6/interface` | Enable IP auto-detection based on interfaces that match the given regex. | string |
| `k8sd/v1alpha1/calico/autodetection-v6/skipInterface` | Enable IP auto-detection based on interfaces that do not match the given regex. | string |
| `k8sd/v1alpha1/calico/autodetection-v6/canReach` | Enable IP auto-detection based on which source address on the node is used to reach the specified IP or domain. | string |
| `k8sd/v1alpha1/calico/autodetection-v6/cidrs` | Enable IP auto-detection based on which addresses on the nodes are within one of the provided CIDRs. | []string (comma separated) |
| `k8sd/v1alpha1/cilium/devices` | List of devices facing cluster/external network (used for BPF NodePort, BPF masquerading and host firewall); supports `+` as wildcard in device name, e.g. `eth+,ens+` | string |
| `k8sd/v1alpha1/cilium/direct-routing-device` | Device name used to connect nodes in direct routing mode (used by BPF NodePort, BPF host routing); if empty, automatically set to a device with k8s InternalIP/ExternalIP or with a default route. Bridge type devices are ignored in automatic selection | string |
| `k8sd/v1alpha1/cilium/vlan-bpf-bypass` | Comma separated list of VLAN tags to bypass eBPF filtering on native devices. Cilium enables a firewall on native devices and filters all unknown traffic, including VLAN 802.1q packets, which pass through the main device with the associated tag (e.g., VLAN device eth0.4000 and its main interface eth0). Supports `0` as wildcard for bypassing all VLANs. e.g. `4001,4002` | []string |
| `k8sd/v1alpha1/metrics-server/image-repo` | Override the default image repository for the metrics-server. | string |
| `k8sd/v1alpha1/metrics-server/image-tag` | Override the default image tag for the metrics-server. | string |
For example:

```yaml
cluster-config:
...
annotations:
k8sd/v1alpha/lifecycle/skip-cleanup-kubernetes-node-on-remove: true
k8sd/v1alpha/lifecycle/skip-stop-services-on-remove: true
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be nice to have some text here to ease the transition to the actual list of annotations

Please refer to the [Kubernetes website] for more information on annnotations.

## `k8sd/v1alpha/lifecycle/skip-cleanup-kubernetes-node-on-remove`
evilnick marked this conversation as resolved.
Show resolved Hide resolved

| | |
|---|---|
| **Values**| "true"\|"false"|
| **Description**| If set, only MicroCluster and file cleanup are performed. This is helpful when an external controller (e.g., CAPI) manages the Kubernetes node lifecycle. By default, k8sd will remove the Kubernetes node when it is removed from the cluster. |

## `k8sd/v1alpha/lifecycle/skip-cleanup-kubernetes-node-on-remove`

| | |
|---|---|
|**Values**| "true"\|"false"|
|**Description**|If set, the k8s services will not be stopped on the leaving node when removing the node. This is helpful when an external controller (e.g., CAPI) manages the Kubernetes node lifecycle. By default, all services are stopped on leaving nodes.|

## `k8sd/v1alpha1/csrsigning/auto-approve`

| | |
|---|---|
|**Values**| "true"\|"false"|
|**Description**|If set, certificate signing requests created by worker nodes are auto approved.|

## `k8sd/v1alpha1/calico/apiserver-enabled`

| | |
|---|---|
|**Values**| "true"\|"false"|
|**Description**|Enable the installation of the Calico API server to enable management of Calico APIs using kubectl.|

## `k8sd/v1alpha1/calico/encapsulation-v4`

| | |
|---|---|
|**Values**| “IPIP”\|”VXLAN”\|”IPIPCrossSubnet”\|”VXLANCrossSubnet”\|”None”|
|**Description**|The type of encapsulation to use on the IPv4 pool.|

## `k8sd/v1alpha1/calico/encapsulation-v6`

| | |
|---|---|
|**Values**| “IPIP”\|”VXLAN”\|”IPIPCrossSubnet”\|”VXLANCrossSubnet”\|”None”|
|**Description**|The type of encapsulation to use on the IPv6 pool.|

## `k8sd/v1alpha1/calico/autodetection-v4/firstFound`

| | |
|---|---|
|**Values**| "true"\|"false"|
|**Description**|Use default interface matching parameters to select an interface, performing best-effort filtering based on well-known interface names.|

## `k8sd/v1alpha1/calico/autodetection-v4/kubernetes`

| | |
|---|---|
|**Values**| “NodeInternalIP”|
|**Description**|Configure Calico to detect node addresses based on the Kubernetes API.|

## `k8sd/v1alpha1/calico/autodetection-v4/interface`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on interfaces that match the given regex.|

## `k8sd/v1alpha1/calico/autodetection-v4/skipInterface`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on interfaces that do not match the given regex.|

## `k8sd/v1alpha1/calico/autodetection-v4/canReach`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on which source address on the node is used to reach the specified IP or domain.|

## `k8sd/v1alpha1/calico/autodetection-v4/cidrs`

| | |
|---|---|
|**Values**| \[] (string values comma separated) |
|**Description**|Enable IP auto-detection based on which addresses on the nodes are within one of the provided CIDRs.|

## `k8sd/v1alpha1/calico/autodetection-v6/firstFound`

| | |
|---|---|
|**Values**| "true"\|"false" |
|**Description**|Use default interface matching parameters to select an interface, performing best-effort filtering based on well-known interface names.|

## `k8sd/v1alpha1/calico/autodetection-v6/kubernetes`

| | |
|---|---|
|**Values**| “NodeInternalIP” |
|**Description**|Configure Calico to detect node addresses based on the Kubernetes API.|

## `k8sd/v1alpha1/calico/autodetection-v6/interface`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on interfaces that match the given regex.|

## `k8sd/v1alpha1/calico/autodetection-v6/skipInterface`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on interfaces that do not match the given regex.|

## `k8sd/v1alpha1/calico/autodetection-v6/canReach`

| | |
|---|---|
|**Values**| string |
|**Description**|Enable IP auto-detection based on which source address on the node is used to reach the specified IP or domain.|

## `k8sd/v1alpha1/calico/autodetection-v6/cidrs`

| | |
|---|---|
|**Values**| \[] (string values comma separated) |
|**Description**|Enable IP auto-detection based on which addresses on the nodes are within one of the provided CIDRs.|

## `k8sd/v1alpha1/cilium/devices`

| | |
|---|---|
|**Values**| string|
|**Description**|List of devices facing cluster/external network (used for BPF NodePort, BPF masquerading and host firewall); supports `+` as wildcard in device name, e.g. `eth+,ens+` |

## `k8sd/v1alpha1/cilium/direct-routing-device`

| | |
|---|---|
|**Values**| string|
|**Description**|Device name used to connect nodes in direct routing mode (used by BPF NodePort, BPF host routing); if empty, automatically set to a device with k8s InternalIP/ExternalIP or with a default route. Bridge type devices are ignored in automatic selection|

## `k8sd/v1alpha1/cilium/vlan-bpf-bypass`

| | |
|---|---|
|**Values**| \[] (string values comma separated)|
|**Description**|Comma separated list of VLAN tags to bypass eBPF filtering on native devices. Cilium enables a firewall on native devices and filters all unknown traffic, including VLAN 802.1q packets, which pass through the main device with the associated tag (e.g., VLAN device eth0.4000 and its main interface eth0). Supports `0` as wildcard for bypassing all VLANs. e.g. `4001,4002`|

## `k8sd/v1alpha1/metrics-server/image-repo`

| | |
|---|---|
|**Values**| string|
|**Description**|Override the default image repository for the metrics-server.|

## `k8sd/v1alpha1/metrics-server/image-tag`

| | |
|---|---|
|**Values**| string|
|**Description**|Override the default image tag for the metrics-server.|

<script>
const el = document.getElementsByTagName("h2");
for(var i=0;i<el.length;i++){
el[i].style.fontSize = '1.5em';
el[i].style.fontWeight = '600';
}
</script>

<!-- Links -->

[Kubernetes website]:https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
[bootstrap]: bootstrap-config-reference
Loading