Skip to content

Commit 417414d

Browse files
authored
Merge pull request #12004 from fabriziopandini/document-ssa-known-issue
📖 Document SSA known issue
2 parents d3ee827 + a1ebdb9 commit 417414d

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

docs/book/src/user/troubleshooting.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Troubleshooting
22

3+
<!-- TOC -->
4+
* [Troubleshooting](#troubleshooting)
5+
* [Troubleshooting Quick Start with Docker (CAPD)](#troubleshooting-quick-start-with-docker-capd)
6+
* [Node bootstrap failures when using CABPK with cloud-init](#node-bootstrap-failures-when-using-cabpk-with-cloud-init)
7+
* [Labeling nodes with reserved labels such as `node-role.kubernetes.io` fails with kubeadm error during bootstrap](#labeling-nodes-with-reserved-labels-such-as-node-rolekubernetesio-fails-with-kubeadm-error-during-bootstrap)
8+
* [Cluster API with Docker - common issues with docker -](#cluster-api-with-docker---common-issues-with-docker---)
9+
* [Cluster API with Docker - "too many open files"](#cluster-api-with-docker---too-many-open-files)
10+
* [MacOS and Docker Desktop - "too many open files"](#macos-and-docker-desktop---too-many-open-files)
11+
* [Failed clusterctl init - 'failed to get cert-manager object'](#failed-clusterctl-init---failed-to-get-cert-manager-object)
12+
* [Failed clusterctl upgrade apply - 'failed to update cert-manager component'](#failed-clusterctl-upgrade-apply---failed-to-update-cert-manager-component)
13+
* [Clusterctl failing to start providers due to outdated image overrides](#clusterctl-failing-to-start-providers-due-to-outdated-image-overrides)
14+
* [Managed Cluster and co-authored slices](#managed-cluster-and-co-authored-slices)
15+
* [Failed to removed fields from lists using Server Side Apply](#failed-to-removed-fields-from-lists-using-server-side-apply)
16+
<!-- TOC -->
17+
318
## Troubleshooting Quick Start with Docker (CAPD)
419

520
<aside class="note warning">
@@ -59,8 +74,6 @@ Exiting PID 1...
5974

6075
To resolve this specific error please read [Cluster API with Docker - "too many open files"](#cluster-api-with-docker----too-many-open-files).
6176

62-
63-
6477
## Node bootstrap failures when using CABPK with cloud-init
6578

6679
Failures during Node bootstrapping can have a lot of different causes. For example, Cluster API resources might be
@@ -102,7 +115,7 @@ kubectl get nodes --no-headers -l '!node-role.kubernetes.io/master' -o jsonpath=
102115
kubectl get nodes --no-headers -l '!node-role.kubernetes.io/control-plane' -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}' | xargs -I{} kubectl label node {} node-role.kubernetes.io/worker=''
103116
```
104117

105-
## Cluster API with Docker
118+
## Cluster API with Docker - common issues with docker -
106119

107120
When provisioning workload clusters using Cluster API with the Docker infrastructure provider,
108121
provisioning might be stuck:
@@ -235,3 +248,24 @@ In cases the slice is instead co-authored (templates provide some info, the infr
235248
fills in other info) this can lead to infinite reconcile.
236249

237250
A solution to this problem is being investigated, but in the meantime you should avoid co-authored slices.
251+
252+
## Failed to removed fields from lists using Server Side Apply
253+
254+
The Cluster API projects is continuously improving its API, including improving the support for Server Side Apply,
255+
which allows for a more granular ownership of list items.
256+
257+
However, when transitioning from atomic lists to map lists, there are edge cases not supported
258+
and this can lead to a SSA patches failing to remove an item in a list.
259+
260+
Note: the issue only occurs in a very specific scenario, most of the users are not affected
261+
(e.g. client-side apply or "continuous" SSA with GitOps tools works as expected)
262+
263+
Example of fields transitioned from atomic lists to map lists are e.g.
264+
265+
- `cluster.spec.topology.variables`
266+
- `cluster.spec.topology.workers.machineDeployments`
267+
268+
In case you face this issue, please use kubectl edit or kubectl apply with client-side apply
269+
to remove the item from the list; after the item is removed everything should work as expected.
270+
271+
See [comment](https://github.com/kubernetes-sigs/cluster-api/issues/11857#issuecomment-2740339933) for more details.

0 commit comments

Comments
 (0)