Skip to content

Commit 3721478

Browse files
committed
rancher-turtles: Updates for 2.13
1 parent 653597e commit 3721478

File tree

7 files changed

+70
-118
lines changed

7 files changed

+70
-118
lines changed

asciidoc/components/turtles.adoc

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[#components-rancher-turtles]
22
= Rancher Turtles
3-
:revdate: 2025-04-25
3+
:revdate: 2025-12-15
44
:page-revdate: {revdate}
55
:experimental:
66

@@ -26,20 +26,24 @@ ____
2626

2727
* Automatically import CAPI clusters into Rancher, by installing the Rancher Cluster Agent in CAPI provisioned clusters.
2828
* Install and configure CAPI controller dependencies via the https://cluster-api-operator.sigs.k8s.io/[CAPI Operator].
29+
* Manage installed CAPI provider dependencies via the `CAPIProvider` API
2930

3031
== Rancher Turtles use in SUSE Edge
3132

32-
The SUSE Edge stack provides a helm wrapper chart which installs Rancher Turtles with a specific configuration that enables:
33+
The SUSE Edge stack provides a `rancher-turtles-providers` helm chart that enables certain CAPI providers via the `CAPIProvider` API:
3334

34-
* Core CAPI controller components
35-
* RKE2 Control Plane and Bootstrap provider components
36-
* <<components-metal3,Metal3>> infrastructure provider components
35+
* RKE2 Control Plane and Bootstrap provider
36+
* <<components-metal3,Metal3>> infrastructure provider
37+
* <<components-metal3,Metal3>> IPAM provider (currently not supported)
38+
* Fleet addon provider
3739

3840
Only the default providers installed via the wrapper chart are supported - alternative Control Plane, Bootstrap and Infrastructure providers are not currently supported as part of the SUSE Edge stack.
3941

4042
== Installing Rancher Turtles
4143

42-
Rancher Turtles may be installed by following the <<quickstart-metal3,Metal3 Quickstart>> guide, or the <<atip-management-cluster,Management Cluster>> documentation.
44+
Since Rancher 2.13, Rancher Turtles is enabled by default when installing Rancher.
45+
46+
Rancher Turtles Providers may be installed by following the <<quickstart-metal3,Metal3 Quickstart>> guide, or the <<atip-management-cluster,Management Cluster>> documentation.
4347

4448
== Additional Resources
4549

asciidoc/day2/migration.adoc

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[#day2-migration]
22
= Edge {version-edge} migration
3-
:revdate: 2025-09-30
3+
:revdate: 2025-12-15
44
:page-revdate: {revdate}
55
:experimental:
66

@@ -13,9 +13,9 @@ ifdef::env-github[]
1313
:warning-caption: :warning:
1414
endif::[]
1515
:toc: preamble
16-
:previous-edge-version: 3.3
17-
:static-edge-version: 3.4.0
18-
:static-fleet-examples-tag: release-3.4.0
16+
:previous-edge-version: 3.4
17+
:static-edge-version: 3.4.2
18+
:static-fleet-examples-tag: release-3.4.2
1919

2020
This section explains how to migrate your `management` and `downstream` clusters from `Edge {previous-edge-version}` to `Edge {static-edge-version}`.
2121

@@ -62,7 +62,7 @@ This section covers the following topics:
6262

6363
[NOTE]
6464
====
65-
Applies only to clusters that require a <<components-metal3>> chart upgrade.
65+
Applies only to CAPI/Metal3 management clusters that require a <<components-metal3>> chart upgrade.
6666
====
6767

6868
The `Metal^3^` Helm chart includes the link:https://book.metal3.io/bmo/introduction.html[Bare Metal Operator (BMO)] CRDs by leveraging Helm's link:https://helm.sh/docs/chart_best_practices/custom_resource_definitions/#method-1-let-helm-do-it-for-you[CRD] directory.
@@ -80,6 +80,24 @@ On a machine with `Helm` installed and `kubectl` configured to point to your `{c
8080
helm show crds oci://registry.suse.com/edge/charts/metal3 --version {version-metal3-chart} | kubectl apply -f -
8181
----
8282

83+
==== Prepare for Rancher Turtles upgrade
84+
85+
[NOTE]
86+
====
87+
Applies only to CAPI/Metal3 management clusters that require a rancher turtles chart upgrade.
88+
89+
You must ensure the management cluster is first updated to the latest 3.4 z-stream, which contains the necessary 0.24.3 Rancher Turtles version.
90+
====
91+
92+
Starting with Rancher 2.13, Rancher Turtles is installed by default, therefore it is necessary to follow some additional migration steps as describwd in the https://turtles.docs.rancher.com/turtles/next/en/tutorials/migration.html[Rancher Turtles Documentation]
93+
94+
[,bash,subs="attributes"]
95+
----
96+
helm uninstall -n rancher-turtles-system rancher-turtles
97+
kubectl patch crd capiproviders.turtles-capi.cattle.io --type=json -p='[{"op": "add", "path": "/metadata/annotations/meta.helm.sh~1release-namespace", "value": "cattle-turtles-system"}]'
98+
kubectl patch crd clusterctlconfigs.turtles-capi.cattle.io --type=json -p='[{"op": "add", "path": "/metadata/annotations/meta.helm.sh~1release-namespace", "value": "cattle-turtles-system"}]'
99+
----
100+
83101
[#day2-migration-mgmt-upgrade-controller]
84102
=== Upgrade Controller
85103

asciidoc/edge-book/releasenotes.adoc

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[#release-notes]
22

33
= Abstract
4-
:revdate: 2025-09-25
4+
:revdate: 2025-12-15
55
:page-revdate: {revdate}
66
ifdef::env-github[]
77
:imagesdir: ../images/
@@ -161,14 +161,12 @@ registry.suse.com/rancher/neuvector-compliance-config:1.0.6 +
161161
registry.suse.com/rancher/neuvector-registry-adapter:0.1.8 +
162162
registry.suse.com/rancher/neuvector-scanner:6 +
163163
registry.suse.com/rancher/neuvector-updater:0.0.4
164-
| Rancher Turtles (CAPI) | 0.24.0 | 304.0.6+up0.24.0 | registry.suse.com/edge/charts/rancher-turtles:304.0.6_up0.24.0 +
165-
registry.rancher.com/rancher/rancher/turtles:v0.24.0 +
166-
registry.rancher.com/rancher/cluster-api-metal3-controller:v1.10.2 +
167-
registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.10.2 +
168-
registry.suse.com/rancher/cluster-api-controller:v1.10.5 +
169-
registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1 +
170-
registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
171-
| Rancher Turtles Airgap Resources | 0.24.0 | 304.0.6+up0.24.0 | registry.suse.com/edge/charts/rancher-turtles-airgap-resources:304.0.6_up0.24.0
164+
| Rancher Turtles Providers (CAPI) | 0.0.0 | 305.0.2+up0.0.0 | registry.suse.com/edge/charts/rancher-turtles-providers:305.0.2_up0.0.0 +
165+
registry.rancher.com/rancher/cluster-api-metal3-controller:v1.10.4 +
166+
registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.10.4 +
167+
registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.21.1 +
168+
registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.21.1 +
169+
registry.suse.com/rancher/cluster-api-addon-provider-fleet:v0.12.0
172170
| Metal^3^ | 0.11.5 | 304.0.16+up0.12.6 | registry.suse.com/edge/charts/metal3:304.0.16_up0.12.6 +
173171
registry.suse.com/edge/3.4/baremetal-operator:0.10.2.1 +
174172
registry.suse.com/edge/3.4/ironic:29.0.4.3 +

asciidoc/edge-book/versions.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
:version-neuvector-crd-chart: 107.0.0+up2.8.7
9696
:version-neuvector-dashboard-extension-chart: 2.1.3
9797
:version-rancher-chart: 2.12.1
98-
:version-rancher-turtles-chart: 304.0.6+up0.24.0
98+
:version-rancher-turtles-providers-chart: 304.0.1+up0.0.0
9999
:version-sriov-crd-chart: 304.0.2+up1.5.0
100100
:version-sriov-network-operator-chart: 304.0.2+up1.5.0
101101
:version-sriov-upstream: 1.5.0

asciidoc/product/atip-management-cluster.adoc

Lines changed: 17 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[#atip-management-cluster]
22
== Setting up the management cluster
3-
:revdate: 2025-07-31
3+
:revdate: 2025-12-01
44
:page-revdate: {revdate}
55
:experimental:
66

@@ -64,7 +64,6 @@ The following are the main steps to set up the management cluster using a declar
6464
- xref:mgmt-cluster-image-definition-file-airgap[Modifications in the definition file]: The `mgmt-cluster.yaml` file must be modified to include the `embeddedArtifactRegistry` section with the `images` field set to all container images to be included into the EIB output image.
6565
- xref:mgmt-cluster-custom-folder-airgap[Modifications in the custom folder]: The `custom` folder must be modified to include the resources needed to run the management cluster in an air-gap environment.
6666
** Register script: The `custom/scripts/99-register.sh` script must be removed when you use an air-gap environment.
67-
- xref:mgmt-cluster-helm-values-folder-airgap[Modifications in the helm values folder]: The `helm/values` folder must be modified to include the configuration needed to run the management cluster in an air-gap environment.
6867

6968
. **xref:mgmt-cluster-image-creation[Image creation]**: This step covers the creation of the image using the Edge Image Builder tool (for both, connected and air-gap scenarios). Check the <<components-eib,prerequisites>> to run the Edge Image Builder tool on your system.
7069

@@ -200,10 +199,10 @@ kubernetes:
200199
createNamespace: true
201200
installationNamespace: kube-system
202201
valuesFile: metal3.yaml
203-
- name: rancher-turtles
204-
version: {version-rancher-turtles-chart}
202+
- name: rancher-turtles-providers
203+
version: {version-rancher-turtles-providers-chart}
205204
repositoryName: suse-edge-charts
206-
targetNamespace: rancher-turtles-system
205+
targetNamespace: cattle-turtles-system
207206
createNamespace: true
208207
installationNamespace: kube-system
209208
- name: neuvector-crd
@@ -330,10 +329,10 @@ kubernetes:
330329
createNamespace: true
331330
installationNamespace: kube-system
332331
valuesFile: metal3.yaml
333-
- name: rancher-turtles
334-
version: {version-rancher-turtles-chart}
332+
- name: rancher-turtles-providers
333+
version: {version-rancher-turtles-providers-chart}
335334
repositoryName: suse-edge-charts
336-
targetNamespace: rancher-turtles-system
335+
targetNamespace: cattle-turtles-system
337336
createNamespace: true
338337
installationNamespace: kube-system
339338
- name: neuvector-crd
@@ -524,21 +523,6 @@ if [ $(${KUBECTL} get svc -n ${METAL3_CHART_TARGETNAMESPACE} metal3-metal3-ironi
524523
EOF
525524
fi
526525
527-
# If rancher is deployed
528-
if [ $(${KUBECTL} get pods -n ${RANCHER_CHART_TARGETNAMESPACE} -l app=rancher -o name | wc -l) -ge 1 ]; then
529-
cat <<-EOF | ${KUBECTL} apply -f -
530-
apiVersion: management.cattle.io/v3
531-
kind: Feature
532-
metadata:
533-
name: embedded-cluster-api
534-
spec:
535-
value: false
536-
EOF
537-
538-
# Disable Rancher webhooks for CAPI
539-
${KUBECTL} delete --ignore-not-found=true mutatingwebhookconfiguration.admissionregistration.k8s.io mutating-webhook-configuration
540-
${KUBECTL} delete --ignore-not-found=true validatingwebhookconfigurations.admissionregistration.k8s.io validating-webhook-configuration
541-
${KUBECTL} wait --for=delete namespace/cattle-provisioning-capi-system --timeout=300s
542526
fi
543527
544528
# Clean up the lock cm
@@ -1007,7 +991,6 @@ interfaces:
1007991
This section describes how to prepare the image for air-gap environments showing only the differences from the previous sections. The following changes to the previous section (xref:mgmt-cluster-image-preparation-connected[Image preparation for connected environments]) are required to prepare the image for air-gap environments:
1008992

1009993
- The `mgmt-cluster.yaml` file must be modified to include the `embeddedArtifactRegistry` section with the `images` field set to all container images to be included into the EIB output image.
1010-
- The `mgmt-cluster.yaml` file must be modified to include `rancher-turtles-airgap-resources` helm chart.
1011994
- The `custom/scripts/99-register.sh` script must be removed when use an air-gap environment.
1012995

1013996
[#mgmt-cluster-image-definition-file-airgap]
@@ -1022,8 +1005,6 @@ The following is an example of the `mgmt-cluster.yaml` file with the `embeddedAr
10221005
Make sure to the listed images contain the component versions you need.
10231006
====
10241007

1025-
The `rancher-turtles-airgap-resources` helm chart must also be added, this creates resources as described in the https://documentation.suse.com/cloudnative/cluster-api/{rancher-turtles-docs-version}/en/getting-started/air-gapped-environment.html[Rancher Turtles Airgap Documentation]. This also requires a turtles.yaml values file for the rancher-turtles chart to specify the necessary configuration.
1026-
10271008
[,yaml,subs="attributes"]
10281009
----
10291010
apiVersion: {version-eib-api-latest}
@@ -1073,17 +1054,10 @@ kubernetes:
10731054
createNamespace: true
10741055
installationNamespace: kube-system
10751056
valuesFile: metal3.yaml
1076-
- name: rancher-turtles
1077-
version: {version-rancher-turtles-chart}
1078-
repositoryName: suse-edge-charts
1079-
targetNamespace: rancher-turtles-system
1080-
createNamespace: true
1081-
installationNamespace: kube-system
1082-
valuesFile: turtles.yaml
1083-
- name: rancher-turtles-airgap-resources
1084-
version: {version-rancher-turtles-chart}
1057+
- name: rancher-turtles-providers
1058+
version: {version-rancher-turtles-providers-chart}
10851059
repositoryName: suse-edge-charts
1086-
targetNamespace: rancher-turtles-system
1060+
targetNamespace: cattle-turtles-system
10871061
createNamespace: true
10881062
installationNamespace: kube-system
10891063
- name: neuvector-crd
@@ -1160,17 +1134,18 @@ embeddedArtifactRegistry:
11601134
- name: registry.rancher.com/rancher/fleet:v0.13.1
11611135
- name: registry.rancher.com/rancher/hardened-node-feature-discovery:v0.15.7-build20250425
11621136
- name: registry.rancher.com/rancher/rancher-webhook:v0.8.1
1163-
- name: registry.rancher.com/rancher/rancher/turtles:v0.24.0
1137+
- name: registry.rancher.com/rancher/rancher/turtles:v0.25.0
11641138
- name: registry.rancher.com/rancher/rancher:v2.12.1
11651139
- name: registry.rancher.com/rancher/rancher-agent:v2.12.1
11661140
- name: registry.rancher.com/rancher/shell:v0.5.0
11671141
- name: registry.rancher.com/rancher/system-upgrade-controller:v0.16.0
1168-
- name: registry.suse.com/rancher/cluster-api-controller:v1.10.5
1169-
- name: registry.suse.com/rancher/cluster-api-provider-metal3:v1.10.2
1170-
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1
1171-
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
1142+
- name: registry.suse.com/rancher/cluster-api-controller:v1.10.6
1143+
- name: registry.suse.com/rancher/cluster-api-provider-metal3:v1.10.4
1144+
- name: registry.suse.com/rancher/ip-address-manager:v1.10.4
1145+
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.21.1
1146+
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.21.1
1147+
- name: registry.suse.com/rancher/cluster-api-addon-provider-fleet:v0.12.0
11721148
- name: registry.suse.com/rancher/hardened-sriov-network-operator:v1.5.0-build20250425
1173-
- name: registry.suse.com/rancher/ip-address-manager:v1.10.2
11741149
- name: registry.rancher.com/rancher/kubectl:v1.32.2
11751150
- name: registry.rancher.com/rancher/mirrored-cluster-api-controller:v1.9.5
11761151
----
@@ -1181,38 +1156,6 @@ embeddedArtifactRegistry:
11811156
- The `custom/scripts/99-register.sh` script must be removed when using an air-gap environment. As you can see in the directory structure, the `99-register.sh` script is not included in the `custom/scripts` folder.
11821157

11831158

1184-
[#mgmt-cluster-helm-values-folder-airgap]
1185-
==== Modifications in the helm values folder
1186-
1187-
- The `turtles.yaml`: contains the configuration required to specify airgapped operation for Rancher Turtles, note this depends on installation of the rancher-turtles-airgap-resources chart.
1188-
+
1189-
[,yaml]
1190-
----
1191-
cluster-api-operator:
1192-
cluster-api:
1193-
core:
1194-
fetchConfig:
1195-
selector: "{\"matchLabels\": {\"provider-components\": \"core\"}}"
1196-
rke2:
1197-
bootstrap:
1198-
fetchConfig:
1199-
selector: "{\"matchLabels\": {\"provider-components\": \"rke2-bootstrap\"}}"
1200-
controlPlane:
1201-
fetchConfig:
1202-
selector: "{\"matchLabels\": {\"provider-components\": \"rke2-control-plane\"}}"
1203-
metal3:
1204-
infrastructure:
1205-
fetchConfig:
1206-
selector: "{\"matchLabels\": {\"provider-components\": \"metal3\"}}"
1207-
ipam:
1208-
fetchConfig:
1209-
selector: "{\"matchLabels\": {\"provider-components\": \"metal3ipam\"}}"
1210-
fleet:
1211-
addon:
1212-
fetchConfig:
1213-
selector: "{\"matchLabels\": {\"provider-components\": \"fleet\"}}"
1214-
----
1215-
12161159
[#mgmt-cluster-image-creation]
12171160
=== Image creation
12181161

asciidoc/quickstart/metal3.adoc

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[#quickstart-metal3]
22
= BMC automated deployments with Metal^3^
3-
:revdate: 2025-07-29
3+
:revdate: 2025-12-15
44
:page-revdate: {revdate}
55
:experimental:
66

@@ -64,7 +64,7 @@ The basic steps to install a management cluster and use Metal^3^ are:
6464
. Install Rancher
6565
. Install a storage provider (optional)
6666
. Install the Metal^3^ dependencies
67-
. Install CAPI dependencies via Rancher Turtles
67+
. Install CAPI provider dependencies
6868
. Build a SLEMicro OS image for downstream cluster hosts
6969
. Register BareMetalHost CRs to define the bare-metal inventory
7070
. Create a downstream cluster by defining CAPI resources
@@ -154,29 +154,18 @@ metal3-metal3-mariadb-7c7d6fdbd8-64c7l 1/1 Running 0
154154

155155
WARNING: Do not proceed to the following steps until all pods in the `metal3-system` namespace are running.
156156

157-
=== Installing cluster API dependencies
157+
=== Installing cluster API provider dependencies
158158

159-
Cluster API dependencies are managed via the Rancher Turtles Helm chart:
159+
Cluster API provider dependencies are managed via the Rancher Turtles Providers Helm chart:
160160

161161
[,bash,subs="attributes,specialchars"]
162-
----
163-
cat > values.yaml <<EOF
164-
rancherTurtles:
165-
features:
166-
embedded-capi:
167-
disabled: true
168-
rancher-webhook:
169-
cleanup: true
170-
EOF
171-
172162
helm install \
173-
rancher-turtles oci://registry.suse.com/edge/charts/rancher-turtles \
174-
--namespace rancher-turtles-system \
175-
--create-namespace \
176-
-f values.yaml
163+
rancher-turtles oci://registry.suse.com/edge/charts/rancher-turtles-providers \
164+
--namespace cattle-turtles-system \
165+
--create-namespace
177166
----
178167
179-
After some time, the controller pods should be running in the `capi-system`, `capm3-system`, `rke2-bootstrap-system` and `rke2-control-plane-system` namespaces.
168+
After some time, the controller pods should be running in the `cattle-capi-system`, `capm3-system`, `rke2-bootstrap-system` and `rke2-control-plane-system` namespaces.
180169
181170
=== Prepare downstream cluster image
182171

asciidoc/troubleshooting/troubleshooting-directed-network-provisioning.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ The `ironic-log-watch` container exposes console logs from the hosts after inspe
6363
+
6464
[,shell]
6565
----
66-
kubectl logs -n rancher-turtles-system -l control-plane=controller-manager
67-
kubectl logs -n rancher-turtles-system -l app.kubernetes.io/name=cluster-api-operator
66+
kubectl logs -n cattle-turtles-system -l control-plane=controller-manager
67+
kubectl logs -n cattle-turtles-system -l app.kubernetes.io/name=cluster-api-operator
6868
kubectl logs -n rke2-bootstrap-system -l cluster.x-k8s.io/provider=bootstrap-rke2
6969
kubectl logs -n rke2-control-plane-system -l cluster.x-k8s.io/provider=control-plane-rke2
70-
kubectl logs -n capi-system -l cluster.x-k8s.io/provider=cluster-api
70+
kubectl logs -n cattle-capi-system -l cluster.x-k8s.io/provider=cluster-api
7171
kubectl logs -n capm3-system -l cluster.x-k8s.io/provider=infrastructure-metal3
7272
----
7373
@@ -87,7 +87,7 @@ kubectl logs -n capm3-system -l cluster.x-k8s.io/provider=infrastructure-metal3
8787
* Use `curl` from the Metal^3^ control plane to test connectivity to the BMCs via redfish.
8888
* Ensure correct BMC credentials are provided in the `BareMetalHost-Secret` definition.
8989
90-
. *Verify turtles/CAPI/metal3 pod status*: Ensure the containers on the management cluster are up and running: `kubectl get pods -n metal3-system` and `kubectl get pods -n rancher-turtles-system` (also see `capi-system`, `capm3-system`, `rke2-bootstrap-system` and `rke2-control-plane-system`).
90+
. *Verify turtles/CAPI/metal3 pod status*: Ensure the containers on the management cluster are up and running: `kubectl get pods -n metal3-system` and `kubectl get pods -n cattle-turtles-system` (also see `cattle-capi-system`, `capm3-system`, `rke2-bootstrap-system` and `rke2-control-plane-system`).
9191

9292
. *Verify the ironic endpoint is reachable from the host being provisioned*: The host being provisioned needs to be able to reach out the Ironic endpoint to report back to Metal^3^. Check the IP with `kubectl get svc -n metal3-system metal3-metal3-ironic` and try to reach it via `curl/nc`.
9393

0 commit comments

Comments
 (0)