11 Commits
3.4 ... main

Author SHA256 Message Date
1d374f13c9 Merge pull request 'update release images' (#274) from dprodanov/Factory:release-images into main
Reviewed-on: #274
Reviewed-by: Fatih Degirmenci <fdegirmenci@noreply.src.opensuse.org>
2025-09-19 18:57:39 +02:00
03aeb3cef7 update release images
All checks were successful
Check Release Manifest Local Charts Versions / Check Release Manifest Local Charts Versions (pull_request) Successful in 14s
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 10s
2025-09-19 19:48:34 +03:00
78898463aa Merge pull request 'added cert manager to the release manifest' (#272) from dprodanov/Factory:cert-man into main
Reviewed-on: #272
2025-09-19 08:49:21 +02:00
c67f9081a9 added cert manager to the release manifest
Some checks failed
Check Release Manifest Local Charts Versions / Check Release Manifest Local Charts Versions (pull_request) Successful in 15s
Build PR in OBS / Build PR in OBS (pull_request_target) Failing after 3h13m46s
2025-09-19 09:48:51 +03:00
d75736809d release-manifest: update images for turtles 0.24.0
All checks were successful
Check Release Manifest Local Charts Versions / Check Release Manifest Local Charts Versions (pull_request) Successful in -5s
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in 51s
2025-09-17 13:07:47 +03:00
de51bf9c83 rancher-turtles-chart: fix fleet airgap config
It seems the fetchConfig is not currently supported in the upstream chart
2025-09-17 13:07:47 +03:00
948a0193d8 rancher-turtles-airgap-resources: Update to 0.24.0
Note this requires a configuration change because the IPAM provider is
now decoupled from CAPM3
2025-09-17 13:07:47 +03:00
2ae659283a rancher-turtles: update to 0.24.0 2025-09-17 13:07:47 +03:00
8a13f25dfa Updates for EIB 1.3 (#268)
Reviewed-on: #268
Reviewed-by: Denislav Prodanov <dprodanov@noreply.src.opensuse.org>
Co-authored-by: dbw7 <danial.bekhit@suse.com>
Co-committed-by: dbw7 <danial.bekhit@suse.com>
2025-09-17 05:25:08 +02:00
2d1c31e19a Merge pull request 'Use BCI nginx for metal3 media subchart' (#267) from nbelouin/Factory:media-nginx into main
Reviewed-on: #267
Reviewed-by: Steven Hardy <steven.hardy@noreply.src.opensuse.org>
2025-09-16 15:19:25 +02:00
18844c5a25 Use BCI nginx for metal3 media subchart
All checks were successful
Check Release Manifest Local Charts Versions / Check Release Manifest Local Charts Versions (pull_request) Successful in -5s
Build PR in OBS / Build PR in OBS (pull_request_target) Successful in -4s
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2025-09-16 14:00:01 +02:00
48 changed files with 1722 additions and 30956 deletions

View File

@@ -1,5 +1,5 @@
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.3.0-rc0 #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.3.0
#!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.3.0-rc0-%RELEASE% #!BuildTag: %%IMG_PREFIX%%edge-image-builder:1.3.0-%RELEASE%
ARG SLE_VERSION ARG SLE_VERSION
FROM registry.suse.com/bci/bci-base:$SLE_VERSION FROM registry.suse.com/bci/bci-base:$SLE_VERSION
MAINTAINER SUSE LLC (https://www.suse.com/) MAINTAINER SUSE LLC (https://www.suse.com/)
@@ -14,11 +14,11 @@ RUN zypper --non-interactive install --no-recommends edge-image-builder qemu-x86
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)" LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image" LABEL org.opencontainers.image.title="SLE edge-image-builder Container Image"
LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image." LABEL org.opencontainers.image.description="edge-image-builder based on the SLE Base Container Image."
LABEL org.opencontainers.image.version="1.3.0-rc0" LABEL org.opencontainers.image.version="1.3.0"
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/" LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
LABEL org.opencontainers.image.created="%BUILDTIME%" LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC" LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.3.0-rc0-%RELEASE%" LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%edge-image-builder:1.3.0-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%" LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%" LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
LABEL com.suse.eula="SUSE Combined EULA February 2024" LABEL com.suse.eula="SUSE Combined EULA February 2024"

View File

@@ -3,11 +3,11 @@
<param name="url">https://github.com/suse-edge/edge-image-builder.git</param> <param name="url">https://github.com/suse-edge/edge-image-builder.git</param>
<param name="scm">git</param> <param name="scm">git</param>
<param name="exclude">.git</param> <param name="exclude">.git</param>
<param name="revision">v1.3.0-rc0</param> <param name="revision">v1.3.0</param>
<!-- Uncomment and set this For Pre-Release Version --> <!-- Uncomment and set this For Pre-Release Version -->
<param name="version">1.3.0~rc0</param> <!-- <param name="version">1.3.0</param> -->
<!-- Uncomment and this for regular version --> <!-- Uncomment and this for regular version -->
<!-- <param name="versionformat">%h</param> --> <param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param> <param name="versionrewrite-pattern">v(\d+).(\d+).(\d+)</param>
<param name="versionrewrite-replacement">\1.\2.\3</param> <param name="versionrewrite-replacement">\1.\2.\3</param>
<param name="changesgenerate">enable</param> <param name="changesgenerate">enable</param>

View File

@@ -17,7 +17,7 @@
Name: edge-image-builder Name: edge-image-builder
Version: 1.3.0~rc0 Version: 1.3.0
Release: 0 Release: 0
Summary: Edge Image Builder Summary: Edge Image Builder
License: Apache-2.0 License: Apache-2.0

View File

@@ -1,5 +1,5 @@
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.16_up0.12.6 #!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.17_up0.12.7
#!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.16_up0.12.6-%RELEASE% #!BuildTag: %%CHART_PREFIX%%metal3:%%CHART_MAJOR%%.0.17_up0.12.7-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: 0.12.6 appVersion: 0.12.6
dependencies: dependencies:
@@ -20,9 +20,9 @@ dependencies:
condition: global.enable_metal3_media_server condition: global.enable_metal3_media_server
name: media name: media
repository: file://./charts/media repository: file://./charts/media
version: 0.6.6 version: 0.7.0
description: A Helm chart that installs all of the dependencies needed for Metal3 description: A Helm chart that installs all of the dependencies needed for Metal3
icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg icon: https://github.com/cncf/artwork/raw/master/projects/metal3/icon/color/metal3-icon-color.svg
name: metal3 name: metal3
type: application type: application
version: "%%CHART_MAJOR%%.0.16+up0.12.6" version: "%%CHART_MAJOR%%.0.17+up0.12.7"

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
appVersion: 1.16.0 appVersion: 1.21.0
description: A Helm chart for Media, used by Metal3 description: A Helm chart for Media, used by Metal3
name: media name: media
type: application type: application
version: 0.6.6 version: 0.7.0

View File

@@ -34,13 +34,9 @@ spec:
{{- end }} {{- end }}
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
command:
- /usr/sbin/httpd
args:
- -DFOREGROUND
securityContext: securityContext:
{{- toYaml .Values.securityContext | nindent 12 }} {{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
ports: ports:
- name: http - name: http

View File

@@ -22,9 +22,9 @@ global:
replicaCount: 1 replicaCount: 1
image: image:
repository: registry.opensuse.org/isv/suse/edge/metal3/containers/images/ironic repository: registry.suse.com/suse/nginx
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
tag: 29.0.4.2 tag: 1.21
imagePullSecrets: [] imagePullSecrets: []
nameOverride: "" nameOverride: ""

View File

@@ -1,10 +1,10 @@
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.5_up0.21.0 #!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.6_up0.24.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.5_up0.21.0-%RELEASE% #!BuildTag: %%CHART_PREFIX%%rancher-turtles-airgap-resources:%%CHART_MAJOR%%.0.6_up0.24.0-%RELEASE%
apiVersion: v2 apiVersion: v2
appVersion: 0.21.0 appVersion: 0.24.0
description: Rancher Turtles utility chart for airgap scenarios description: Rancher Turtles utility chart for airgap scenarios
home: https://github.com/rancher/turtles/ home: https://github.com/rancher/turtles/
icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg
name: rancher-turtles-airgap-resources name: rancher-turtles-airgap-resources
type: application type: application
version: "%%CHART_MAJOR%%.0.5+up0.21.0" version: "%%CHART_MAJOR%%.0.6+up0.24.0"

View File

@@ -23,6 +23,9 @@ cluster-api-operator:
infrastructure: infrastructure:
fetchConfig: fetchConfig:
selector: "{\"matchLabels\": {\"provider-components\": \"metal3\"}}" selector: "{\"matchLabels\": {\"provider-components\": \"metal3\"}}"
ipam:
fetchConfig:
selector: "{\"matchLabels\": {\"provider-components\": \"metal3ipam\"}}"
fleet: fleet:
addon: addon:
fetchConfig: fetchConfig:

File diff suppressed because one or more lines are too long

View File

@@ -813,7 +813,7 @@ data:
control-plane: controller-manager control-plane: controller-manager
spec: spec:
containers: containers:
- image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.11.0 - image: ghcr.io/rancher/cluster-api-addon-provider-fleet:v0.11.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
name: manager name: manager
ports: ports:
@@ -835,7 +835,7 @@ data:
memory: 100Mi memory: 100Mi
- args: - args:
- --helm-install - --helm-install
image: ghcr.io/rancher-sandbox/cluster-api-addon-provider-fleet:v0.11.0 image: ghcr.io/rancher/cluster-api-addon-provider-fleet:v0.11.0
name: helm-manager name: helm-manager
resources: resources:
limits: limits:

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
{{- if not (lookup "v1" "Namespace" "" "rke2-bootstrap-system") }}
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
@@ -6,6 +7,7 @@ metadata:
control-plane: controller-manager control-plane: controller-manager
name: rke2-bootstrap-system name: rke2-bootstrap-system
--- ---
{{- end }}
apiVersion: v1 apiVersion: v1
data: data:
components: | components: |
@@ -564,27 +566,32 @@ data:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -594,6 +601,8 @@ data:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -943,25 +952,42 @@ data:
description: ContentFrom is a referenced source of content to description: ContentFrom is a referenced source of content to
populate the file. populate the file.
properties: properties:
secret: configMap:
description: SecretFileSource represents a secret that should description: ConfigMapFileSource represents a config map
populate this file. that should populate this file.
properties: properties:
key: key:
description: Key is the key in the secret's data map description: Key is the key in the secret or config
for this value. map's data map for this value.
type: string type: string
name: name:
description: Name of the secret in the RKE2BootstrapConfig's description: Name of the secret/configmap in the RKE2BootstrapConfig's
namespace to use. namespace to use.
type: string type: string
required: required:
- key - key
- name - name
type: object type: object
secret:
description: SecretFileSource represents a secret that should
populate this file.
properties:
key:
description: Key is the key in the secret or config
map's data map for this value.
type: string
name:
description: Name of the secret/configmap in the RKE2BootstrapConfig's
namespace to use.
type: string
required: required:
- secret - key
- name
type: object type: object
type: object
x-kubernetes-validations:
- message: Only configMap or secret can be populated at once
rule: '!(has(self.secret) && has(self.configMap))'
encoding: encoding:
description: Encoding specifies the encoding of the file contents. description: Encoding specifies the encoding of the file contents.
enum: enum:
@@ -1153,27 +1179,32 @@ data:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -1183,6 +1214,8 @@ data:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -2124,25 +2157,43 @@ data:
description: ContentFrom is a referenced source of content description: ContentFrom is a referenced source of content
to populate the file. to populate the file.
properties: properties:
secret: configMap:
description: SecretFileSource represents a secret description: ConfigMapFileSource represents a config
that should populate this file. map that should populate this file.
properties: properties:
key: key:
description: Key is the key in the secret's description: Key is the key in the secret or
data map for this value. config map's data map for this value.
type: string type: string
name: name:
description: Name of the secret in the RKE2BootstrapConfig's description: Name of the secret/configmap in
namespace to use. the RKE2BootstrapConfig's namespace to use.
type: string type: string
required: required:
- key - key
- name - name
type: object type: object
secret:
description: SecretFileSource represents a secret
that should populate this file.
properties:
key:
description: Key is the key in the secret or
config map's data map for this value.
type: string
name:
description: Name of the secret/configmap in
the RKE2BootstrapConfig's namespace to use.
type: string
required: required:
- secret - key
- name
type: object type: object
type: object
x-kubernetes-validations:
- message: Only configMap or secret can be populated
at once
rule: '!(has(self.secret) && has(self.configMap))'
encoding: encoding:
description: Encoding specifies the encoding of the description: Encoding specifies the encoding of the
file contents. file contents.
@@ -2537,7 +2588,7 @@ data:
- --concurrency=${CONCURRENCY_NUMBER:=10} - --concurrency=${CONCURRENCY_NUMBER:=10}
command: command:
- /manager - /manager
image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.18.0 image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:
@@ -2778,10 +2829,16 @@ data:
- major: 0 - major: 0
minor: 18 minor: 18
contract: v1beta1 contract: v1beta1
- major: 0
minor: 19
contract: v1beta1
- major: 0
minor: 20
contract: v1beta1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
creationTimestamp: null creationTimestamp: null
name: v0.18.0 name: v0.20.1
namespace: rke2-bootstrap-system namespace: rke2-bootstrap-system
labels: labels:
provider-components: rke2-bootstrap provider-components: rke2-bootstrap

View File

@@ -1,3 +1,4 @@
{{- if not (lookup "v1" "Namespace" "" "rke2-control-plane-system") }}
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
@@ -6,6 +7,7 @@ metadata:
control-plane: controller-manager control-plane: controller-manager
name: rke2-control-plane-system name: rke2-control-plane-system
--- ---
{{- end }}
apiVersion: v1 apiVersion: v1
data: data:
components: | components: |
@@ -1177,27 +1179,32 @@ data:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -1207,6 +1214,8 @@ data:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -1582,25 +1591,42 @@ data:
description: ContentFrom is a referenced source of content to description: ContentFrom is a referenced source of content to
populate the file. populate the file.
properties: properties:
secret: configMap:
description: SecretFileSource represents a secret that should description: ConfigMapFileSource represents a config map
populate this file. that should populate this file.
properties: properties:
key: key:
description: Key is the key in the secret's data map description: Key is the key in the secret or config
for this value. map's data map for this value.
type: string type: string
name: name:
description: Name of the secret in the RKE2BootstrapConfig's description: Name of the secret/configmap in the RKE2BootstrapConfig's
namespace to use. namespace to use.
type: string type: string
required: required:
- key - key
- name - name
type: object type: object
secret:
description: SecretFileSource represents a secret that should
populate this file.
properties:
key:
description: Key is the key in the secret or config
map's data map for this value.
type: string
name:
description: Name of the secret/configmap in the RKE2BootstrapConfig's
namespace to use.
type: string
required: required:
- secret - key
- name
type: object type: object
type: object
x-kubernetes-validations:
- message: Only configMap or secret can be populated at once
rule: '!(has(self.secret) && has(self.configMap))'
encoding: encoding:
description: Encoding specifies the encoding of the file contents. description: Encoding specifies the encoding of the file contents.
enum: enum:
@@ -1741,7 +1767,7 @@ data:
additionalProperties: additionalProperties:
type: string type: string
description: |- description: |-
Map of string keys and values that can be used to organize and categorize labels is a map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers (scope and select) objects. May match selectors of replication controllers
and services. and services.
More info: http://kubernetes.io/docs/user-guide/labels More info: http://kubernetes.io/docs/user-guide/labels
@@ -2603,27 +2629,32 @@ data:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -2633,6 +2664,8 @@ data:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -3130,25 +3163,43 @@ data:
description: ContentFrom is a referenced source of content description: ContentFrom is a referenced source of content
to populate the file. to populate the file.
properties: properties:
secret: configMap:
description: SecretFileSource represents a secret description: ConfigMapFileSource represents a config
that should populate this file. map that should populate this file.
properties: properties:
key: key:
description: Key is the key in the secret's description: Key is the key in the secret or
data map for this value. config map's data map for this value.
type: string type: string
name: name:
description: Name of the secret in the RKE2BootstrapConfig's description: Name of the secret/configmap in
namespace to use. the RKE2BootstrapConfig's namespace to use.
type: string type: string
required: required:
- key - key
- name - name
type: object type: object
secret:
description: SecretFileSource represents a secret
that should populate this file.
properties:
key:
description: Key is the key in the secret or
config map's data map for this value.
type: string
name:
description: Name of the secret/configmap in
the RKE2BootstrapConfig's namespace to use.
type: string
required: required:
- secret - key
- name
type: object type: object
type: object
x-kubernetes-validations:
- message: Only configMap or secret can be populated
at once
rule: '!(has(self.secret) && has(self.configMap))'
encoding: encoding:
description: Encoding specifies the encoding of the description: Encoding specifies the encoding of the
file contents. file contents.
@@ -3291,7 +3342,7 @@ data:
additionalProperties: additionalProperties:
type: string type: string
description: |- description: |-
Map of string keys and values that can be used to organize and categorize labels is a map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers (scope and select) objects. May match selectors of replication controllers
and services. and services.
More info: http://kubernetes.io/docs/user-guide/labels More info: http://kubernetes.io/docs/user-guide/labels
@@ -4181,27 +4232,32 @@ data:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -4211,6 +4267,8 @@ data:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -4559,7 +4617,7 @@ data:
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: metadata.uid fieldPath: metadata.uid
image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.18.0 image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:
@@ -4807,10 +4865,16 @@ data:
- major: 0 - major: 0
minor: 18 minor: 18
contract: v1beta1 contract: v1beta1
- major: 0
minor: 19
contract: v1beta1
- major: 0
minor: 20
contract: v1beta1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
creationTimestamp: null creationTimestamp: null
name: v0.18.0 name: v0.20.1
namespace: rke2-control-plane-system namespace: rke2-control-plane-system
labels: labels:
provider-components: rke2-control-plane provider-components: rke2-control-plane

View File

@@ -1,5 +1,5 @@
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.5_up0.21.0 #!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.6_up0.24.0
#!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.5_up0.21.0-%RELEASE% #!BuildTag: %%CHART_PREFIX%%rancher-turtles:%%CHART_MAJOR%%.0.6_up0.24.0-%RELEASE%
annotations: annotations:
catalog.cattle.io/certified: rancher catalog.cattle.io/certified: rancher
catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension
@@ -7,17 +7,12 @@ annotations:
catalog.cattle.io/namespace: rancher-turtles-system catalog.cattle.io/namespace: rancher-turtles-system
catalog.cattle.io/os: linux catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux catalog.cattle.io/permits-os: linux
catalog.cattle.io/rancher-version: '>= 2.11.0-1' catalog.cattle.io/rancher-version: '>= 2.12.1-0 < 2.13.0-0'
catalog.cattle.io/release-name: rancher-turtles catalog.cattle.io/release-name: rancher-turtles
catalog.cattle.io/scope: management catalog.cattle.io/scope: management
catalog.cattle.io/type: cluster-tool catalog.cattle.io/type: cluster-tool
apiVersion: v2 apiVersion: v2
appVersion: 0.21.0 appVersion: 0.24.0
dependencies:
- condition: cluster-api-operator.enabled
name: cluster-api-operator
repository: file://./charts/cluster-api-operator
version: 0.18.1
description: Rancher Turtles is an extension to Rancher that brings full Cluster API description: Rancher Turtles is an extension to Rancher that brings full Cluster API
integration to Rancher. integration to Rancher.
home: https://github.com/rancher/turtles/ home: https://github.com/rancher/turtles/
@@ -29,4 +24,4 @@ keywords:
- provisioning - provisioning
name: rancher-turtles name: rancher-turtles
type: application type: application
version: "%%CHART_MAJOR%%.0.5+up0.21.0" version: "%%CHART_MAJOR%%.0.6+up0.24.0"

View File

@@ -1,5 +1,5 @@
# Rancher Turtles Chart # Rancher Turtles Chart
This chart installs the Rancher Turtles operator and optionally the Cluster API Operator using Helm. This chart installs Rancher Turtles using Helm.
Checkout the [documentation](https://turtles.docs.rancher.com) for further information. Checkout the [documentation](https://turtles.docs.rancher.com) for further information.

View File

@@ -1,6 +1,42 @@
## Changes since examples/v0.21.0 ## Highlights
---
## :chart_with_upwards_trend: Overview
* REPLACE ME
## Deprecation Warning
REPLACE ME: A couple sentences describing the deprecation, including links to docs.
* [GitHub issue #REPLACE ME](REPLACE ME)
## Changes since v0.24.0-rc.0
## :chart_with_upwards_trend: Overview
- 10 new commits merged
:book: Additionally, there has been 1 contribution to our documentation and book. (#1714)
## :question: Sort these by hand
- Build-and-release: Add automation to release turtles in rancher/charts and rancher/rancher (#1663)
- Build-and-release: Doc: Add ADR for updated release process (#1660)
- Build-and-release: Test prime image build (#1710)
- CI: Display kind and docker version in e2e runs (#1707)
- Dependency: Bump forward CAPA to v2.9.1 patch release (#1713)
- Dependency: Chore(deps): Bump github.com/onsi/ginkgo/v2 from 2.25.2 to 2.25.3 in the testing-dependencies group (#1692)
- Dependency: Chore(deps): Bump the other-dependencies group with 2 updates (#1693)
- Testing: Test: cleanup import gitops suite/spec (#1704)
- Testing: Use providers charts in e2e (#1699)
## Dependencies
### Added
_Nothing has changed._
### Changed
- github.com/onsi/ginkgo/v2: [v2.25.2 → v2.25.3](https://github.com/onsi/ginkgo/compare/v2.25.2...v2.25.3)
- github.com/spf13/pflag: [v1.0.7 → v1.0.10](https://github.com/spf13/pflag/compare/v1.0.7...v1.0.10)
- golang.org/x/sync: v0.16.0 → v0.17.0
- golang.org/x/text: v0.28.0 → v0.29.0
### Removed
_Nothing has changed._
_Thanks to all our contributors!_ 😊 _Thanks to all our contributors!_ 😊

View File

@@ -1,23 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -1,6 +0,0 @@
apiVersion: v2
appVersion: 0.18.1
description: Cluster API Operator
name: cluster-api-operator
type: application
version: 0.18.1

View File

@@ -1,24 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "capi-operator.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "capi-operator.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}

View File

@@ -1,60 +0,0 @@
# Addon provider
{{- if .Values.addon }}
{{- $addons := split ";" .Values.addon }}
{{- $addonNamespace := "" }}
{{- $addonName := "" }}
{{- $addonVersion := "" }}
{{- range $addon := $addons }}
{{- $addonArgs := split ":" $addon }}
{{- $addonArgsLen := len $addonArgs }}
{{- if eq $addonArgsLen 3 }}
{{- $addonNamespace = $addonArgs._0 }}
{{- $addonName = $addonArgs._1 }}
{{- $addonVersion = $addonArgs._2 }}
{{- else if eq $addonArgsLen 2 }}
{{- $addonNamespace = print $addonArgs._0 "-addon-system" }}
{{- $addonName = $addonArgs._0 }}
{{- $addonVersion = $addonArgs._1 }}
{{- else if eq $addonArgsLen 1 }}
{{- $addonNamespace = print $addonArgs._0 "-addon-system" }}
{{- $addonName = $addonArgs._0 }}
{{- else }}
{{- fail "addon provider argument should have the following format helm:v1.0.0 or mynamespace:helm:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $addonNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: AddonProvider
metadata:
name: {{ $addonName }}
namespace: {{ $addonNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $addonVersion $.Values.secretName }}
spec:
{{- end}}
{{- if $addonVersion }}
version: {{ $addonVersion }}
{{- end }}
{{- if $.Values.secretName }}
secretName: {{ $.Values.secretName }}
{{- end }}
{{- if $.Values.secretNamespace }}
secretNamespace: {{ $.Values.secretNamespace }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,61 +0,0 @@
# Bootstrap provider
{{- if .Values.bootstrap }}
{{- $bootstraps := split ";" .Values.bootstrap }}
{{- $bootstrapNamespace := "" }}
{{- $bootstrapName := "" }}
{{- $bootstrapVersion := "" }}
{{- range $bootstrap := $bootstraps }}
{{- $bootstrapArgs := split ":" $bootstrap }}
{{- $bootstrapArgsLen := len $bootstrapArgs }}
{{- if eq $bootstrapArgsLen 3 }}
{{- $bootstrapNamespace = $bootstrapArgs._0 }}
{{- $bootstrapName = $bootstrapArgs._1 }}
{{- $bootstrapVersion = $bootstrapArgs._2 }}
{{- else if eq $bootstrapArgsLen 2 }}
{{- $bootstrapNamespace = print $bootstrapArgs._0 "-bootstrap-system" }}
{{- $bootstrapName = $bootstrapArgs._0 }}
{{- $bootstrapVersion = $bootstrapArgs._1 }}
{{- else if eq $bootstrapArgsLen 1 }}
{{- $bootstrapNamespace = print $bootstrapArgs._0 "-bootstrap-system" }}
{{- $bootstrapName = $bootstrapArgs._0 }}
{{- else }}
{{- fail "bootstrap provider argument should have the following format kubeadm:v1.0.0 or mynamespace:kubeadm:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $bootstrapNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: BootstrapProvider
metadata:
name: {{ $bootstrapName }}
namespace: {{ $bootstrapNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $bootstrapVersion $.Values.configSecret.name }}
spec:
{{- end}}
{{- if $bootstrapVersion }}
version: {{ $bootstrapVersion }}
{{- end }}
{{- if $.Values.configSecret.name }}
configSecret:
name: {{ $.Values.configSecret.name }}
{{- if $.Values.configSecret.namespace }}
namespace: {{ $.Values.configSecret.namespace }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,74 +0,0 @@
# Control plane provider
{{- if .Values.controlPlane }}
{{- $controlPlanes := split ";" .Values.controlPlane }}
{{- $controlPlaneNamespace := "" }}
{{- $controlPlaneName := "" }}
{{- $controlPlaneVersion := "" }}
{{- range $controlPlane := $controlPlanes }}
{{- $controlPlaneArgs := split ":" $controlPlane }}
{{- $controlPlaneArgsLen := len $controlPlaneArgs }}
{{- if eq $controlPlaneArgsLen 3 }}
{{- $controlPlaneNamespace = $controlPlaneArgs._0 }}
{{- $controlPlaneName = $controlPlaneArgs._1 }}
{{- $controlPlaneVersion = $controlPlaneArgs._2 }}
{{- else if eq $controlPlaneArgsLen 2 }}
{{- $controlPlaneNamespace = print $controlPlaneArgs._0 "-control-plane-system" }}
{{- $controlPlaneName = $controlPlaneArgs._0 }}
{{- $controlPlaneVersion = $controlPlaneArgs._1 }}
{{- else if eq $controlPlaneArgsLen 1 }}
{{- $controlPlaneNamespace = print $controlPlaneArgs._0 "-control-plane-system" }}
{{- $controlPlaneName = $controlPlaneArgs._0 }}
{{- else }}
{{- fail "controlplane provider argument should have the following format kubeadm:v1.0.0 or mynamespace:kubeadm:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $controlPlaneNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: ControlPlaneProvider
metadata:
name: {{ $controlPlaneName }}
namespace: {{ $controlPlaneNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $controlPlaneVersion $.Values.configSecret.name $.Values.manager }}
spec:
{{- end}}
{{- if $controlPlaneVersion }}
version: {{ $controlPlaneVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if hasKey $.Values.manager.featureGates $controlPlaneName }}
manager:
{{- range $key, $value := $.Values.manager.featureGates }}
{{- if eq $key $controlPlaneName }}
featureGates:
{{- range $k, $v := $value }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if $.Values.configSecret.name }}
configSecret:
name: {{ $.Values.configSecret.name }}
{{- if $.Values.configSecret.namespace }}
namespace: {{ $.Values.configSecret.namespace }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,36 +0,0 @@
{{- if or .Values.addon .Values.bootstrap .Values.controlPlane .Values.infrastructure .Values.ipam }}
# Deploy core components if not specified
{{- if not .Values.core }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-system
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: CoreProvider
metadata:
name: cluster-api
namespace: capi-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
configSecret:
name: {{ .name }}
{{- if .namespace }}
namespace: {{ .namespace }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,68 +0,0 @@
# Core provider
{{- if .Values.core }}
{{- $coreArgs := split ":" .Values.core }}
{{- $coreArgsLen := len $coreArgs }}
{{- $coreVersion := "" }}
{{- $coreNamespace := "" }}
{{- $coreName := "" }}
{{- $coreVersion := "" }}
{{- if eq $coreArgsLen 3 }}
{{- $coreNamespace = $coreArgs._0 }}
{{- $coreName = $coreArgs._1 }}
{{- $coreVersion = $coreArgs._2 }}
{{- else if eq $coreArgsLen 2 }}
{{- $coreNamespace = "capi-system" }}
{{- $coreName = $coreArgs._0 }}
{{- $coreVersion = $coreArgs._1 }}
{{- else if eq $coreArgsLen 1 }}
{{- $coreNamespace = "capi-system" }}
{{- $coreName = $coreArgs._0 }}
{{- else }}
{{- fail "core provider argument should have the following format cluster-api:v1.0.0 or mynamespace:cluster-api:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $coreNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: CoreProvider
metadata:
name: {{ $coreName }}
namespace: {{ $coreNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $coreVersion $.Values.configSecret.name $.Values.manager }}
spec:
{{- end}}
{{- if $coreVersion }}
version: {{ $coreVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.core }}
manager:
featureGates:
{{- range $key, $value := $.Values.manager.featureGates.core }}
{{ $key }}: {{ $value }}
{{- end }}
{{- end }}
{{- end }}
{{- if $.Values.configSecret.name }}
configSecret:
name: {{ $.Values.configSecret.name }}
{{- if $.Values.configSecret.namespace }}
namespace: {{ $.Values.configSecret.namespace }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,177 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "capi-operator.fullname" . }}
namespace: '{{ .Release.Namespace }}'
labels:
app: {{ template "capi-operator.name" . }}
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "controller"
control-plane: controller-manager
clusterctl.cluster.x-k8s.io/core: capi-operator
{{- with .Values.deploymentLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.deploymentAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "controller"
control-plane: controller-manager
clusterctl.cluster.x-k8s.io/core: capi-operator
{{- with .Values.strategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
template:
metadata:
labels:
app: {{ template "capi-operator.name" . }}
app.kubernetes.io/name: {{ template "capi-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: "controller"
control-plane: controller-manager
clusterctl.cluster.x-k8s.io/core: capi-operator
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: capi-operator-manager
automountServiceAccountToken: true
{{- with .Values.securityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- args:
{{- if .Values.logLevel }}
- --v={{ .Values.logLevel }}
{{- end }}
{{- if .Values.healthAddr }}
- --health-addr={{ .Values.healthAddr }}
{{- end }}
{{- if .Values.diagnosticsAddress }}
- --diagnostics-address={{ .Values.diagnosticsAddress }}
{{- end }}
{{- if .Values.insecureDiagnostics }}
- --insecure-diagnostics={{ .Values.insecureDiagnostics }}
{{- end }}
{{- if .Values.watchConfigSecret }}
- --watch-configsecret
{{- end }}
{{- with .Values.leaderElection }}
- --leader-elect={{ .enabled }}
{{- if .leaseDuration }}
- --leader-elect-lease-duration={{ .leaseDuration }}
{{- end }}
{{- if .renewDeadline }}
- --leader-elect-renew-deadline={{ .renewDeadline }}
{{- end }}
{{- if .retryPeriod }}
- --leader-elect-retry-period={{ .retryPeriod }}
{{- end }}
{{- end }}
command:
- /manager
{{- with .Values.image.manager }}
image: "{{- if .registry -}}{{ .registry }}/{{- end -}}{{ .repository }}{{- if (.digest) -}} @{{ .digest }}{{- else -}}:{{ default $.Chart.AppVersion .tag }} {{- end -}}"
{{- end }}
imagePullPolicy: {{ .Values.image.manager.pullPolicy }}
name: manager
ports:
- containerPort: 9443
name: webhook-server
protocol: TCP
{{- if $.Values.diagnosticsAddress }}
{{- $diagnosticsPort := $.Values.diagnosticsAddress }}
{{- if contains ":" $diagnosticsPort -}}
{{ $diagnosticsPort = ( split ":" $.Values.diagnosticsAddress)._1 | int }}
{{- end }}
- containerPort: {{ $diagnosticsPort | int }}
name: metrics
protocol: TCP
{{- end }}
{{- with .Values.resources.manager }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.env.manager }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.containerSecurityContext.manager }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.volumeMounts.manager }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
terminationMessagePolicy: FallbackToLogsOnError
{{- $healthAddr := $.Values.healthAddr }}
{{- if contains ":" $healthAddr -}}
{{ $healthAddr = ( split ":" $.Values.healthAddr)._1 | int }}
{{- end }}
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: {{ $healthAddr | default 9440 }}
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
httpGet:
path: /readyz
port: {{ $healthAddr | default 9440 }}
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
terminationGracePeriodSeconds: 10
{{- with .Values.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.podDnsPolicy }}
dnsPolicy: {{ . }}
{{- end }}
{{- with .Values.podDnsConfig }}
dnsConfig:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@@ -1,81 +0,0 @@
{{- if .Values.infrastructure }}
# Deploy bootstrap, and infrastructure components if not specified
{{- if not .Values.bootstrap }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-kubeadm-bootstrap-system
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: BootstrapProvider
metadata:
name: kubeadm
namespace: capi-kubeadm-bootstrap-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
configSecret:
name: {{ .name }}
{{- if .namespace }}
namespace: {{ .namespace }}
{{- end }}
{{- end }}
{{- end }}
{{- if not .Values.controlPlane }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: capi-kubeadm-control-plane-system
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: ControlPlaneProvider
metadata:
name: kubeadm
namespace: capi-kubeadm-control-plane-system
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- with .Values.configSecret }}
spec:
{{- if $.Values.manager }}
{{- if and $.Values.manager.featureGates $.Values.manager.featureGates.kubeadm }}
manager:
featureGates:
{{- range $key, $value := $.Values.manager.featureGates.kubeadm }}
{{ $key }}: {{ $value }}
{{- end }}
{{- end }}
{{- end }}
configSecret:
name: {{ .name }}
{{- if .namespace }}
namespace: {{ .namespace }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,87 +0,0 @@
# Infrastructure providers
{{- if .Values.infrastructure }}
{{- $infrastructures := split ";" .Values.infrastructure }}
{{- $infrastructureNamespace := "" }}
{{- $infrastructureName := "" }}
{{- $infrastructureVersion := "" }}
{{- range $infrastructure := $infrastructures }}
{{- $infrastructureArgs := split ":" $infrastructure }}
{{- $infrastructureArgsLen := len $infrastructureArgs }}
{{- if eq $infrastructureArgsLen 3 }}
{{- $infrastructureNamespace = $infrastructureArgs._0 }}
{{- $infrastructureName = $infrastructureArgs._1 }}
{{- $infrastructureVersion = $infrastructureArgs._2 }}
{{- else if eq $infrastructureArgsLen 2 }}
{{- $infrastructureNamespace = print $infrastructureArgs._0 "-infrastructure-system" }}
{{- $infrastructureName = $infrastructureArgs._0 }}
{{- $infrastructureVersion = $infrastructureArgs._1 }}
{{- else if eq $infrastructureArgsLen 1 }}
{{- $infrastructureNamespace = print $infrastructureArgs._0 "-infrastructure-system" }}
{{- $infrastructureName = $infrastructureArgs._0 }}
{{- else }}
{{- fail "infrastructure provider argument should have the following format aws:v1.0.0 or mynamespace:aws:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $infrastructureNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: InfrastructureProvider
metadata:
name: {{ $infrastructureName }}
namespace: {{ $infrastructureNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $infrastructureVersion $.Values.configSecret.name $.Values.manager $.Values.additionalDeployments }}
spec:
{{- end }}
{{- if $infrastructureVersion }}
version: {{ $infrastructureVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $infrastructureName) }}
manager:
{{- range $key, $value := $.Values.manager.featureGates }}
{{- if eq $key $infrastructureName }}
featureGates:
{{- range $k, $v := $value }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if and (kindIs "map" $.Values.fetchConfig) (hasKey $.Values.fetchConfig $infrastructureName) }}
{{- range $key, $value := $.Values.fetchConfig }}
{{- if eq $key $infrastructureName }}
fetchConfig:
{{- range $k, $v := $value }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if $.Values.configSecret.name }}
configSecret:
name: {{ $.Values.configSecret.name }}
{{- if $.Values.configSecret.namespace }}
namespace: {{ $.Values.configSecret.namespace }}
{{- end }}
{{- end }}
{{- if $.Values.additionalDeployments }}
additionalDeployments: {{ toYaml $.Values.additionalDeployments | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,77 +0,0 @@
# IPAM providers
{{- if .Values.ipam }}
{{- $ipams := split ";" .Values.ipam }}
{{- $ipamNamespace := "" }}
{{- $ipamName := "" }}
{{- $ipamVersion := "" }}
{{- range $ipam := $ipams }}
{{- $ipamArgs := split ":" $ipam }}
{{- $ipamArgsLen := len $ipamArgs }}
{{- if eq $ipamArgsLen 3 }}
{{- $ipamNamespace = $ipamArgs._0 }}
{{- $ipamName = $ipamArgs._1 }}
{{- $ipamVersion = $ipamArgs._2 }}
{{- else if eq $ipamArgsLen 2 }}
{{- $ipamNamespace = print $ipamArgs._0 "-ipam-system" }}
{{- $ipamName = $ipamArgs._0 }}
{{- $ipamVersion = $ipamArgs._1 }}
{{- else if eq $ipamArgsLen 1 }}
{{- $ipamNamespace = print $ipamArgs._0 "-ipam-system" }}
{{- $ipamName = $ipamArgs._0 }}
{{- else }}
{{- fail "ipam provider argument should have the following format in-cluster:v1.0.0 or mynamespace:in-cluster:v1.0.0" }}
{{- end }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "1"
{{- end }}
"argocd.argoproj.io/sync-wave": "1"
name: {{ $ipamNamespace }}
---
apiVersion: operator.cluster.x-k8s.io/v1alpha2
kind: IPAMProvider
metadata:
name: {{ $ipamName }}
namespace: {{ $ipamNamespace }}
annotations:
{{- if $.Values.enableHelmHook }}
"helm.sh/hook": "post-install,post-upgrade"
"helm.sh/hook-weight": "2"
{{- end }}
"argocd.argoproj.io/sync-wave": "2"
{{- if or $ipamVersion $.Values.configSecret.name $.Values.manager $.Values.additionalDeployments }}
spec:
{{- end }}
{{- if $ipamVersion }}
version: {{ $ipamVersion }}
{{- end }}
{{- if $.Values.manager }}
{{- if and (kindIs "map" $.Values.manager.featureGates) (hasKey $.Values.manager.featureGates $ipamName) }}
manager:
{{- range $key, $value := $.Values.manager.featureGates }}
{{- if eq $key $ipamName }}
featureGates:
{{- range $k, $v := $value }}
{{ $k }}: {{ $v }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if $.Values.configSecret.name }}
configSecret:
name: {{ $.Values.configSecret.name }}
{{- if $.Values.configSecret.namespace }}
namespace: {{ $.Values.configSecret.namespace }}
{{- end }}
{{- end }}
{{- if $.Values.additionalDeployments }}
additionalDeployments: {{ toYaml $.Values.additionalDeployments | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,72 +0,0 @@
---
# ---
# Cluster API provider options
core: ""
bootstrap: ""
controlPlane: ""
infrastructure: ""
ipam: ""
addon: ""
manager.featureGates: {}
fetchConfig: {}
# ---
# Common configuration secret options
configSecret: {}
# ---
# CAPI operator deployment options
logLevel: 2
replicaCount: 1
leaderElection:
enabled: true
image:
manager:
repository: registry.k8s.io/capi-operator/cluster-api-operator
tag: v0.18.1
pullPolicy: IfNotPresent
env:
manager: []
diagnosticsAddress: ":8443"
healthAddr: ":9440"
insecureDiagnostics: false
watchConfigSecret: false
imagePullSecrets: {}
resources:
manager:
limits:
cpu: 100m
memory: 150Mi
requests:
cpu: 100m
memory: 100Mi
containerSecurityContext: {}
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- arm64
- ppc64le
- key: kubernetes.io/os
operator: In
values:
- linux
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
volumes:
- name: cert
secret:
defaultMode: 420
secretName: capi-operator-webhook-service-cert
volumeMounts:
manager:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
enableHelmHook: true

View File

@@ -8,11 +8,6 @@ questions:
show_subquestion_if: true show_subquestion_if: true
group: "Rancher Turtles Extra Settings" group: "Rancher Turtles Extra Settings"
subquestions: subquestions:
- variable: cluster-api-operator.cert-manager.enabled
default: false
type: boolean
description: "Flag to enable or disable installation of cert-manager. If set to false then you will need to install cert-manager manually."
label: "Enable Cert Manager"
- variable: turtlesUI.enabled - variable: turtlesUI.enabled
default: false default: false
type: boolean type: boolean
@@ -35,6 +30,12 @@ questions:
type: boolean type: boolean
label: Enable Agent TLS Mode label: Enable Agent TLS Mode
group: "Rancher Turtles Features Settings" group: "Rancher Turtles Features Settings"
- variable: rancherTurtles.features.no-cert-manager.enabled
default: false
description: "[ALPHA] If enabled Turtles will remove cert-manager."
type: boolean
label: Remove cert-manager
group: "Rancher Turtles Features Settings"
- variable: rancherTurtles.kubectlImage - variable: rancherTurtles.kubectlImage
default: "registry.suse.com/edge/3.3/kubectl:1.32.4" default: "registry.suse.com/edge/3.3/kubectl:1.32.4"
description: "Specify the image to use when running kubectl in jobs." description: "Specify the image to use when running kubectl in jobs."

View File

@@ -7,10 +7,20 @@ metadata:
"helm.sh/hook": "post-install, post-upgrade" "helm.sh/hook": "post-install, post-upgrade"
"helm.sh/hook-weight": "2" "helm.sh/hook-weight": "2"
spec: spec:
enableAutomaticUpdate: true
type: addon type: addon
additionalManifests: additionalManifests:
name: fleet-addon-config name: fleet-addon-config
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: '{{ .Values.rancherTurtles.namespace }}'
{{- if or (index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "selector") }}
fetchConfig:
{{- if index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "url" }}
url: {{ index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "url" }}
{{- end }}
{{- if index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "selector" }}
selector: {{ index .Values "cluster-api-operator" "cluster-api" "fleet" "addon" "fetchConfig" "selector" }}
{{- end }}
{{- end }}
--- ---
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
@@ -58,3 +68,16 @@ data:
matchExpressions: matchExpressions:
- key: cluster-api.cattle.io/disable-fleet-auto-import - key: cluster-api.cattle.io/disable-fleet-auto-import
operator: DoesNotExist operator: DoesNotExist
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cappf-controller-psa
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: fleet-controller-psa
subjects:
- kind: ServiceAccount
name: caapf-controller-manager
namespace: {{ .Values.rancherTurtles.namespace }}

View File

@@ -1,34 +1,5 @@
{{- if index .Values "cluster-api-operator" "enabled" }}
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: clusterctl-config name: clusterctl-config
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: '{{ .Values.rancherTurtles.namespace }}'
data:
clusterctl.yaml: |
providers:
# Cluster API core provider
- name: "cluster-api"
url: "https://github.com/kubernetes-sigs/cluster-api/releases/v1.7.5/core-components.yaml"
type: "CoreProvider"
# Infrastructure providers
- name: "metal3"
url: "https://github.com/metal3-io/cluster-api-provider-metal3/releases/v1.7.1/infrastructure-components.yaml"
type: "InfrastructureProvider"
# Bootstrap providers
- name: "rke2"
url: "https://github.com/rancher/cluster-api-provider-rke2/releases/v0.7.0/bootstrap-components.yaml"
type: "BootstrapProvider"
# ControlPlane providers
- name: "rke2"
url: "https://github.com/rancher/cluster-api-provider-rke2/releases/v0.7.0/control-plane-components.yaml"
type: "ControlPlaneProvider"
# Addon providers
# - name: "fleet"
# url: "https://github.com/rancher-sandbox/cluster-api-addon-provider-fleet/releases/v0.3.1/addon-components.yaml"
# type: "AddonProvider"
{{- end }}

View File

@@ -22,7 +22,10 @@ metadata:
spec: spec:
name: cluster-api name: cluster-api
type: core type: core
version: {{ index .Values "cluster-api-operator" "cluster-api" "version" }} enableAutomaticUpdate: {{ index .Values "cluster-api-operator" "cluster-api" "core" "enableAutomaticUpdate" }}
{{- if index .Values "cluster-api-operator" "cluster-api" "core" "version" }}
version: {{ index .Values "cluster-api-operator" "cluster-api" "core" "version" }}
{{- end }}
additionalManifests: additionalManifests:
name: capi-additional-rbac-roles name: capi-additional-rbac-roles
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }} namespace: {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }}

View File

@@ -26,7 +26,7 @@ spec:
containers: containers:
- args: - args:
- --leader-elect - --leader-elect
- --feature-gates=agent-tls-mode={{ index .Values "rancherTurtles" "features" "agent-tls-mode" "enabled"}},ui-plugin={{ index .Values "turtlesUI" "enabled"}} - --feature-gates=agent-tls-mode={{ index .Values "rancherTurtles" "features" "agent-tls-mode" "enabled"}},ui-plugin={{ index .Values "turtlesUI" "enabled"}},no-cert-manager={{ index .Values "rancherTurtles" "features" "no-cert-manager" "enabled"}}
{{- range .Values.rancherTurtles.managerArguments }} {{- range .Values.rancherTurtles.managerArguments }}
- {{ . }} - {{ . }}
{{- end }} {{- end }}
@@ -67,12 +67,20 @@ spec:
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
memory: 256Mi memory: 300Mi
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 128Mi
{{- with .Values.rancherTurtles.volumeMounts.manager }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
serviceAccountName: rancher-turtles-manager serviceAccountName: rancher-turtles-manager
terminationGracePeriodSeconds: 10 terminationGracePeriodSeconds: 10
{{- with .Values.rancherTurtles.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
tolerations: tolerations:
- effect: NoSchedule - effect: NoSchedule
key: node-role.kubernetes.io/master key: node-role.kubernetes.io/master

View File

@@ -1,5 +1,6 @@
{{- if and (index .Values "cluster-api-operator" "cluster-api" "enabled") (index .Values "cluster-api-operator" "cluster-api" "metal3" "enabled") }} {{- if and (index .Values "cluster-api-operator" "cluster-api" "enabled") (index .Values "cluster-api-operator" "cluster-api" "metal3" "enabled") }}
{{- $namespace := index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }} {{- $namespace := index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
{{- $ipamnamespace := index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "namespace" }}
{{- if not (lookup "v1" "Namespace" "" $namespace) }} {{- if not (lookup "v1" "Namespace" "" $namespace) }}
--- ---
apiVersion: v1 apiVersion: v1
@@ -10,6 +11,16 @@ metadata:
"helm.sh/hook-weight": "1" "helm.sh/hook-weight": "1"
name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }} name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "namespace" }}
{{- end }} {{- end }}
{{- if not (lookup "v1" "Namespace" "" $ipamnamespace) }}
---
apiVersion: v1
kind: Namespace
metadata:
annotations:
"helm.sh/hook": "post-install, post-upgrade"
"helm.sh/hook-weight": "1"
name: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "namespace" }}
{{- end }}
--- ---
apiVersion: turtles-capi.cattle.io/v1alpha1 apiVersion: turtles-capi.cattle.io/v1alpha1
kind: ClusterctlConfig kind: ClusterctlConfig
@@ -22,8 +33,11 @@ metadata:
spec: spec:
providers: providers:
- name: metal3 - name: metal3
url: "https://github.com/rancher-sandbox/cluster-api-provider-metal3/releases/v1.9.2/infrastructure-components.yaml" url: "https://github.com/rancher-sandbox/cluster-api-provider-metal3/releases/v1.10.2/infrastructure-components.yaml"
type: InfrastructureProvider type: InfrastructureProvider
- name: metal3ipam
url: "https://github.com/rancher-sandbox/ip-address-manager/releases/v1.10.2/ipam-components.yaml"
type: IPAMProvider
--- ---
apiVersion: turtles-capi.cattle.io/v1alpha1 apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider kind: CAPIProvider
@@ -59,11 +73,41 @@ spec:
containers: containers:
- name: manager - name: manager
imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "imageUrl" }} imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "infrastructure" "imageUrl" }}
additionalDeployments: {{- end }}
ipam-controller-manager: ---
apiVersion: turtles-capi.cattle.io/v1alpha1
kind: CAPIProvider
metadata:
name: metal3ipam
namespace: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "namespace" }}
annotations:
"helm.sh/hook": "post-install, post-upgrade"
"helm.sh/hook-weight": "2"
spec:
name: metal3ipam
type: ipam
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "version" }}
version: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "version" }}
{{- end }}
configSecret:
{{- if index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "name" }}
{{ else }}
name: {{ index .Values "cluster-api-operator" "cluster-api" "configSecret" "defaultName" }}
{{- end }}
{{- if or (index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "url") (index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "selector") }}
fetchConfig:
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "url" }}
url: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "url" }}
{{- end }}
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "selector" }}
selector: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "fetchConfig" "selector" }}
{{- end }}
{{- end }}
{{- if index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "imageUrl" }}
deployment: deployment:
containers: containers:
- imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "imageUrl" }} - name: manager
name: manager imageUrl: {{ index .Values "cluster-api-operator" "cluster-api" "metal3" "ipam" "imageUrl" }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rancher-turtles/aggregate-to-manager: "true"
name: rancher-turtles-operator-admin
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'

View File

@@ -1,4 +1,3 @@
---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
@@ -11,23 +10,38 @@ metadata:
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata: metadata:
name: post-upgrade-job-delete-clusters name: post-upgrade-job-delete-capi-operator-resources
annotations: annotations:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "1" "helm.sh/hook-weight": "1"
rules: rules:
- apiGroups: - apiGroups:
- provisioning.cattle.io - operator.cluster.x-k8s.io
resources: resources:
- clusters - addonproviders
- bootstrapproviders
- controlplaneproviders
- coreproviders
- infrastructureproviders
- ipamproviders
- runtimeextensionproviders
verbs: verbs:
- get
- watch
- list - list
- delete - delete
- patch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: post-upgrade-job-delete-clusters name: post-upgrade-job-capi-operator-resources-cleanup
annotations: annotations:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "1" "helm.sh/hook-weight": "1"
@@ -37,13 +51,51 @@ subjects:
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: '{{ .Values.rancherTurtles.namespace }}'
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: post-upgrade-job-delete-clusters name: post-upgrade-job-delete-capi-operator-resources
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
--- ---
apiVersion: v1
kind: ConfigMap
metadata:
name: cluster-api-operator-resources-cleanup-script
namespace: '{{ .Values.rancherTurtles.namespace }}'
annotations:
"helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "1"
data:
cleanup.sh: |
#!/usr/bin/env bash
set -euo pipefail
remove_finalizers_and_delete() {
local resource_type="$1"
if kubectl get crd $resource_type > /dev/null 2>&1; then
kubectl get $resource_type --all-namespaces --no-headers --ignore-not-found | awk '{print $1 " " $2}' | xargs -r -n2 bash -c 'kubectl patch '"${resource_type}"' "$1" -n "$0" --type merge -p "{\"metadata\":{\"finalizers\":null}}"'
kubectl delete $resource_type --all --all-namespaces
else
echo "Resource type $resource_type does not exist, skipping cleanup."
fi
}
resource_types=(
"addonproviders.operator.cluster.x-k8s.io"
"bootstrapproviders.operator.cluster.x-k8s.io"
"controlplaneproviders.operator.cluster.x-k8s.io"
"coreproviders.operator.cluster.x-k8s.io"
"infrastructureproviders.operator.cluster.x-k8s.io"
"ipamproviders.operator.cluster.x-k8s.io"
"runtimeextensionproviders.operator.cluster.x-k8s.io"
)
for resource_type in "${resource_types[@]}"; do
remove_finalizers_and_delete "$resource_type"
done
---
apiVersion: batch/v1 apiVersion: batch/v1
kind: Job kind: Job
metadata: metadata:
name: post-upgrade-delete-clusters name: cluster-api-operator-resources-cleanup
namespace: '{{ .Values.rancherTurtles.namespace }}' namespace: '{{ .Values.rancherTurtles.namespace }}'
annotations: annotations:
"helm.sh/hook": post-upgrade "helm.sh/hook": post-upgrade
@@ -54,13 +106,19 @@ spec:
spec: spec:
serviceAccountName: post-upgrade-job serviceAccountName: post-upgrade-job
containers: containers:
- name: post-upgrade-delete-clusters - name: cluster-api-operator-resources-cleanup
image: {{ index .Values "rancherTurtles" "kubectlImage" }} image: {{ index .Values "rancherTurtles" "shellImage" }}
command: ["/bin/bash"]
args: args:
- delete - "-c"
- clusters.provisioning.cattle.io - "/scripts/cleanup.sh"
- --selector=cluster-api.cattle.io/owned volumeMounts:
- -A - name: script
- --ignore-not-found=true mountPath: /scripts
- --wait volumes:
restartPolicy: OnFailure - name: script
configMap:
name: cluster-api-operator-resources-cleanup-script
defaultMode: 0777
restartPolicy: Never
---

View File

@@ -1301,6 +1301,13 @@ spec:
description: Manager defines the properties that can be enabled description: Manager defines the properties that can be enabled
on the controller manager for the additional provider deployment. on the controller manager for the additional provider deployment.
properties: properties:
additionalArgs:
additionalProperties:
type: string
description: |-
AdditionalArgs is a map of additional options that will be passed
in as container args to the provider's controller manager.
type: object
cacheNamespace: cacheNamespace:
description: |- description: |-
CacheNamespace if specified restricts the manager's cache to watch objects in CacheNamespace if specified restricts the manager's cache to watch objects in
@@ -1436,7 +1443,7 @@ spec:
minimum: 1 minimum: 1
type: integer type: integer
metrics: metrics:
description: Metrics contains thw controller metrics configuration description: Metrics contains the controller metrics configuration
properties: properties:
bindAddress: bindAddress:
description: |- description: |-
@@ -2775,6 +2782,10 @@ spec:
type: object type: object
type: array type: array
type: object type: object
enableAutomaticUpdate:
description: EnableAutomaticUpdate can be used to automatically update
the CAPIProvider to a newest version.
type: boolean
features: features:
description: Features is a collection of features to enable. description: Features is a collection of features to enable.
example: example:
@@ -2875,6 +2886,13 @@ spec:
description: Manager defines the properties that can be enabled on description: Manager defines the properties that can be enabled on
the controller manager for the provider. the controller manager for the provider.
properties: properties:
additionalArgs:
additionalProperties:
type: string
description: |-
AdditionalArgs is a map of additional options that will be passed
in as container args to the provider's controller manager.
type: object
cacheNamespace: cacheNamespace:
description: |- description: |-
CacheNamespace if specified restricts the manager's cache to watch objects in CacheNamespace if specified restricts the manager's cache to watch objects in
@@ -3009,7 +3027,7 @@ spec:
minimum: 1 minimum: 1
type: integer type: integer
metrics: metrics:
description: Metrics contains thw controller metrics configuration description: Metrics contains the controller metrics configuration
properties: properties:
bindAddress: bindAddress:
description: |- description: |-
@@ -3118,27 +3136,32 @@ spec:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -3148,6 +3171,8 @@ spec:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime
@@ -3417,7 +3442,6 @@ rules:
- update - update
- apiGroups: - apiGroups:
- infrastructure.cluster.x-k8s.io - infrastructure.cluster.x-k8s.io
- operator.cluster.x-k8s.io
resources: resources:
- '*' - '*'
verbs: verbs:

View File

@@ -181,27 +181,32 @@ spec:
properties: properties:
lastTransitionTime: lastTransitionTime:
description: |- description: |-
Last time the condition transitioned from one status to another. lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable. the API field changed is acceptable.
format: date-time format: date-time
type: string type: string
message: message:
description: |- description: |-
A human readable message indicating details about the transition. message is a human readable message indicating details about the transition.
This field may be empty. This field may be empty.
maxLength: 10240
minLength: 1
type: string type: string
reason: reason:
description: |- description: |-
The reason for the condition's last transition in CamelCase. reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API. The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty. This field may be empty.
maxLength: 256
minLength: 1
type: string type: string
severity: severity:
description: |- description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly. understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False. The Severity field MUST be set only when Status=False.
maxLength: 32
type: string type: string
status: status:
description: status of the condition, one of True, False, Unknown. description: status of the condition, one of True, False, Unknown.
@@ -211,6 +216,8 @@ spec:
type of condition in CamelCase or in foo.example.com/CamelCase. type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important. can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
type: string type: string
required: required:
- lastTransitionTime - lastTransitionTime

View File

@@ -22,6 +22,7 @@ metadata:
spec: spec:
name: rke2 name: rke2
type: bootstrap type: bootstrap
enableAutomaticUpdate: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "enableAutomaticUpdate" }}
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }} {{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }} version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
{{- end }} {{- end }}

View File

@@ -22,6 +22,7 @@ metadata:
spec: spec:
name: rke2 name: rke2
type: controlPlane type: controlPlane
enableAutomaticUpdate: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "enableAutomaticUpdate" }}
{{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }} {{- if index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }} version: {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "version" }}
{{- end }} {{- end }}

View File

@@ -62,7 +62,7 @@
}, },
"kubectlImage": { "kubectlImage": {
"type": "string", "type": "string",
"default": "registry.k8s.io/kubernetes/kubectl:v1.30.0", "default": "registry.k8s.io/kubernetes/kubectl:v1.31.4",
"description": "Image for kubectl tasks." "description": "Image for kubectl tasks."
}, },
"features": { "features": {
@@ -155,59 +155,20 @@
} }
} }
} }
}
}
},
"cluster-api-operator": {
"type": "object",
"description": "Manages Cluster API components.",
"properties": {
"enabled": {
"type": "boolean",
"default": true,
"description": "Turn on or off."
},
"cert-manager": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"default": false,
"description": "Turn on or off."
}
}
}, },
"volumes": { "volumes": {
"type": "array", "type": "array",
"description": "Volumes for operator pods (certs, config).", "description": "Volumes for controller pods.",
"items": { "items": {
"type": "object", "type": "object",
"oneOf": [ "required": [
{ "name",
"required": ["name", "secret"], "configMap"
],
"properties": { "properties": {
"name": { "type": "string" }, "name": {
"secret": { "type": "string"
"type": "object",
"properties": {
"defaultMode": {
"type": "integer",
"default": 420,
"description": "File permissions."
}, },
"secretName": {
"type": "string",
"default": "capi-operator-webhook-service-cert",
"description": "Secret for webhook certs."
}
}
}
}
},
{
"required": ["name", "configMap"],
"properties": {
"name": { "type": "string" },
"configMap": { "configMap": {
"type": "object", "type": "object",
"properties": { "properties": {
@@ -220,23 +181,6 @@
} }
} }
} }
]
}
},
"image": {
"type": "object",
"properties": {
"manager": {
"type": "object",
"properties": {
"repository": {
"type": "string",
"default": "registry.rancher.com/rancher/cluster-api-operator",
"description": "Image repo."
}
}
}
}
}, },
"volumeMounts": { "volumeMounts": {
"type": "object", "type": "object",
@@ -258,43 +202,13 @@
} }
} }
} }
}
}
}, },
"resources": { "cluster-api-operator": {
"type": "object", "type": "object",
"description": "Manages Cluster API components.",
"properties": { "properties": {
"manager": {
"type": "object",
"properties": {
"limits": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"description": "CPU limit."
},
"memory": {
"type": "string",
"description": "Memory limit."
}
}
},
"requests": {
"type": "object",
"properties": {
"cpu": {
"type": "string",
"description": "CPU request."
},
"memory": {
"type": "string",
"description": "Memory request."
}
}
}
}
}
}
},
"cleanup": { "cleanup": {
"type": "boolean", "type": "boolean",
"default": true, "default": true,
@@ -343,6 +257,16 @@
"url": { "type": "string", "default": "" }, "url": { "type": "string", "default": "" },
"selector": { "type": "string", "default": "" } "selector": { "type": "string", "default": "" }
} }
},
"enableAutomaticUpdates": {
"type": "boolean",
"default": true,
"description": "Allow the provider to update automatically when a new Turtles version is installed."
},
"version": {
"type": "string",
"default": "",
"description": "CAPI core provider version."
} }
} }
}, },
@@ -359,6 +283,11 @@
"default": "", "default": "",
"description": "RKE2 version." "description": "RKE2 version."
}, },
"enableAutomaticUpdates": {
"type": "boolean",
"default": true,
"description": "Allow the provider to update automatically when a new Turtles version is installed."
},
"bootstrap": { "bootstrap": {
"type": "object", "type": "object",
"properties": { "properties": {

View File

@@ -9,8 +9,8 @@ turtlesUI:
rancherTurtles: rancherTurtles:
# image: registry.rancher.com/rancher/rancher/turtles # image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0 # imageVersion: v0.24.0
imageVersion: v0.21.0 imageVersion: v0.24.0
# imagePullPolicy: IfNotPresent # imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
# namespace: Select namespace for Turtles to run. # namespace: Select namespace for Turtles to run.
@@ -23,6 +23,8 @@ rancherTurtles:
rancherInstalled: false rancherInstalled: false
# kubectlImage: Image for kubectl tasks. # kubectlImage: Image for kubectl tasks.
kubectlImage: "%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.33.4" kubectlImage: "%%IMG_REPO%%/%%IMG_PREFIX%%kubectl:1.33.4"
# shellImage: Image for shell tasks.
shellImage: registry.rancher.com/rancher/kuberlr-kubectl:v5.0.0
# features: Optional and experimental features. # features: Optional and experimental features.
features: features:
# day2operations: Alpha feature. # day2operations: Alpha feature.
@@ -31,8 +33,8 @@ rancherTurtles:
enabled: false enabled: false
# image: registry.rancher.com/rancher/rancher/turtles # image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0 # imageVersion: v0.24.0
imageVersion: v0.21.0 imageVersion: v0.24.0
# imagePullPolicy: IfNotPresent # imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
# etcdBackupRestore: Alpha feature. Manages etcd backup/restore. # etcdBackupRestore: Alpha feature. Manages etcd backup/restore.
@@ -43,61 +45,33 @@ rancherTurtles:
agent-tls-mode: agent-tls-mode:
# enabled: Turn on or off. # enabled: Turn on or off.
enabled: true enabled: true
# no-cert-manager: Alpha feature for cert-manager removal.
no-cert-manager:
# enabled: Turn on or off.
enabled: false
# clusterclass-operations: Alpha feature. Manages cluster class ops. Not ready for testing yet. # clusterclass-operations: Alpha feature. Manages cluster class ops. Not ready for testing yet.
clusterclass-operations: clusterclass-operations:
# enabled: Turn on or off. # enabled: Turn on or off.
enabled: false enabled: false
# image: registry.rancher.com/rancher/rancher/turtles # image: registry.rancher.com/rancher/rancher/turtles
image: registry.rancher.com/rancher/rancher/turtles image: registry.rancher.com/rancher/rancher/turtles
# imageVersion: v0.21.0 # imageVersion: v0.24.0
imageVersion: v0.21.0 imageVersion: v0.24.0
# imagePullPolicy: IfNotPresent # imagePullPolicy: IfNotPresent
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
# volumes: Volumes for controller pods.
volumes:
- name: clusterctl-config
configMap:
name: clusterctl-config
# volumeMounts: Volume mounts for controller pods.
volumeMounts:
manager:
- mountPath: /config
name: clusterctl-config
# cluster-api-operator: Manages Cluster API components. # cluster-api-operator: Manages Cluster API components.
cluster-api-operator: cluster-api-operator:
# enabled: Turn on or off.
enabled: true
# cert-manager: Cert-manager integration.
cert-manager:
# enabled: Turn on or off.
enabled: false
# volumes: Volumes for operator pods (certs, config).
volumes:
- name: cert
secret:
# defaultMode: File permissions.
defaultMode: 420
# secretName: Secret for webhook certs.
secretName: capi-operator-webhook-service-cert
- name: clusterctl-config
configMap:
# name: ConfigMap for clusterctl.
name: clusterctl-config
resources:
manager:
limits:
cpu: 100m
memory: 300Mi
requests:
cpu: 100m
memory: 100Mi
# image: registry.rancher.com/rancher/rancher/turtles
image:
manager:
# repository: Image repo.
repository: registry.rancher.com/rancher/cluster-api-operator
# volumeMounts: Mount volumes to pods.
volumeMounts:
manager:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
# readOnly: Mount as read-only.
readOnly: true
- mountPath: /config
name: clusterctl-config
# readOnly: Mount as read-only.
readOnly: true
# cleanup: Enable cleanup tasks. # cleanup: Enable cleanup tasks.
cleanup: true cleanup: true
# cluster-api: Cluster API component settings. # cluster-api: Cluster API component settings.
@@ -114,6 +88,10 @@ cluster-api-operator:
core: core:
# namespace: Core component namespace. # namespace: Core component namespace.
namespace: capi-system namespace: capi-system
# version: Core ClusterAPI version.
version: ""
# enableAutomaticUpdate: Allow the provider to update automatically when a new Turtles version is installed.
enableAutomaticUpdate: true
# imageUrl: Custom image URL. # imageUrl: Custom image URL.
imageUrl: "" imageUrl: ""
# fetchConfig: Config fetching settings. # fetchConfig: Config fetching settings.
@@ -127,7 +105,9 @@ cluster-api-operator:
# enabled: Turn on or off. # enabled: Turn on or off.
enabled: true enabled: true
# version: RKE2 version. # version: RKE2 version.
version: "v0.18.0" version: ""
# enableAutomaticUpdate: Allow the provider to update automatically when a new Turtles version is installed.
enableAutomaticUpdate: true
# bootstrap: RKE2 bootstrap provider. # bootstrap: RKE2 bootstrap provider.
bootstrap: bootstrap:
# namespace: Bootstrap namespace. # namespace: Bootstrap namespace.
@@ -154,13 +134,21 @@ cluster-api-operator:
selector: "" selector: ""
metal3: metal3:
enabled: true enabled: true
version: "v1.9.4" version: "v1.10.2"
infrastructure: infrastructure:
namespace: capm3-system namespace: capm3-system
imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.4" imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.10.2"
fetchConfig: fetchConfig:
url: "" url: ""
selector: "" selector: ""
ipam: ipam:
namespace: capm3-system namespace: metal3-ipam-system
imageUrl: "registry.suse.com/rancher/ip-address-manager:v1.9.4" imageUrl: "registry.suse.com/rancher/ip-address-manager:v1.10.2"
fetchConfig:
url: ""
selector: ""
fleet:
addon:
fetchConfig:
url: ""
selector: ""

View File

@@ -1,64 +1,65 @@
images: images:
- name: quay.io/jetstack/cert-manager-cainjector:v1.14.2 - name: quay.io/jetstack/cert-manager-cainjector:v1.18.2
- name: quay.io/jetstack/cert-manager-controller:v1.14.2 - name: quay.io/jetstack/cert-manager-cainjector:v1.18.2
- name: quay.io/jetstack/cert-manager-webhook:v1.14.2 - name: quay.io/jetstack/cert-manager-controller:v1.18.2
- name: registry.rancher.com/rancher/hardened-cluster-autoscaler:v1.10.2-build20250507 - name: quay.io/jetstack/cert-manager-webhook:v1.18.2
- name: registry.rancher.com/rancher/hardened-cni-plugins:v1.7.1-build20250509 - name: registry.k8s.io/e2e-test-images/agnhost:2.39
- name: registry.rancher.com/rancher/hardened-coredns:v1.12.1-build20250507 - name: %%IMG_REPO%%/%%IMG_PREFIX%%baremetal-operator:0.10.2.1
- name: registry.rancher.com/rancher/hardened-etcd:v3.5.21-k3s1-build20250411
- name: registry.rancher.com/rancher/hardened-k8s-metrics-server:v0.7.2-build20250507
- name: registry.rancher.com/rancher/hardened-kubernetes:v1.32.5-rke2r1-build20250515
- name: registry.rancher.com/rancher/hardened-multus-cni:v4.2.0-build20250326
- name: registry.rancher.com/rancher/klipper-helm:v0.9.5-build20250306
- name: registry.rancher.com/rancher/mirrored-cilium-cilium:v1.17.3
- name: registry.rancher.com/rancher/mirrored-cilium-operator-generic:v1.17.3
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-attacher:v4.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-node-driver-registrar:v2.13.0
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-provisioner:v5.2.0
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-resizer:v1.13.2
- name: registry.rancher.com/rancher/mirrored-longhornio-csi-snapshotter:v8.2.0
- name: registry.rancher.com/rancher/mirrored-longhornio-livenessprobe:v2.15.0
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-engine:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-instance-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-share-manager:v1.8.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-ui:v1.8.1
- name: registry.rancher.com/rancher/mirrored-sig-storage-snapshot-controller:v8.2.0
- name: registry.rancher.com/rancher/neuvector-compliance-config:1.0.4
- name: registry.rancher.com/rancher/neuvector-controller:5.4.3
- name: registry.rancher.com/rancher/neuvector-enforcer:5.4.3
- name: registry.rancher.com/rancher/nginx-ingress-controller:v1.12.1-hardened6
- name: registry.rancher.com/rancher/rke2-cloud-provider:v1.32.0-rc3.0.20241220224140-68fbd1a6b543-build20250101
- name: %%IMG_REPO%%/%%IMG_PREFIX%%baremetal-operator:0.9.1.1
- name: %%IMG_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator:0.3.0 - name: %%IMG_REPO%%/%%IMG_PREFIX%%endpoint-copier-operator:0.3.0
- name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.8 - name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic-ipa-downloader:3.0.9
- name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic:26.1.2.5 - name: %%IMG_REPO%%/%%IMG_PREFIX%%ironic:29.0.4.3
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller:v0.14.9 - name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller:v0.14.9
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker:v0.14.9 - name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker:v0.14.9
- name: %%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1 - name: %%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1
- name: registry.rancher.com/rancher/cluster-api-operator:v0.17.0 - name: registry.rancher.com/rancher/fleet-agent:v0.13.1
- name: registry.rancher.com/rancher/fleet-agent:v0.12.3 - name: registry.rancher.com/rancher/fleet:v0.13.1
- name: registry.rancher.com/rancher/fleet:v0.12.3 - name: registry.rancher.com/rancher/hardened-cluster-autoscaler:v1.10.2-build20250611
- name: registry.rancher.com/rancher/hardened-cni-plugins:v1.7.1-build20250611
- name: registry.rancher.com/rancher/hardened-coredns:v1.12.2-build20250611
- name: registry.rancher.com/rancher/hardened-etcd:v3.5.21-k3s1-build20250612
- name: registry.rancher.com/rancher/hardened-k8s-metrics-server:v0.8.0-build20250704
- name: registry.rancher.com/rancher/hardened-kubernetes:v1.33.3-rke2r1-build20250716
- name: registry.rancher.com/rancher/hardened-multus-cni:v4.2.1-build20250627
- name: registry.rancher.com/rancher/hardened-node-feature-discovery:v0.15.7-build20250425 - name: registry.rancher.com/rancher/hardened-node-feature-discovery:v0.15.7-build20250425
- name: registry.rancher.com/rancher/rancher-webhook:v0.7.2 - name: registry.rancher.com/rancher/klipper-helm:v0.9.8-build20250709
- name: registry.rancher.com/rancher/rancher/turtles:v0.20.0 - name: registry.rancher.com/rancher/mirrored-cilium-cilium:v1.17.6
- name: registry.rancher.com/rancher/rancher:v2.11.2 - name: registry.rancher.com/rancher/mirrored-cilium-operator-generic:v1.17.6
- name: registry.rancher.com/rancher/shell:v0.4.1 - name: registry.rancher.com/rancher/mirrored-longhornio-csi-attacher:v4.9.0-20250709
- name: registry.rancher.com/rancher/system-upgrade-controller:v0.15.2 - name: registry.rancher.com/rancher/mirrored-longhornio-csi-node-driver-registrar:v2.14.0-20250709
- name: registry.suse.com/rancher/cluster-api-addon-provider-fleet:v0.10.0 - name: registry.rancher.com/rancher/mirrored-longhornio-csi-provisioner:v5.3.0-20250709
- name: registry.suse.com/rancher/cluster-api-controller:v1.9.5 - name: registry.rancher.com/rancher/mirrored-longhornio-csi-resizer:v1.14.0-20250709
- name: registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.3 - name: registry.rancher.com/rancher/mirrored-longhornio-csi-snapshotter:v8.3.0-20250709
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.16.1 - name: registry.rancher.com/rancher/mirrored-longhornio-livenessprobe:v2.16.0-20250709
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.16.1 - name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-engine:v1.9.1
- name: registry.suse.com/rancher/elemental-operator:1.6.8 - name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-instance-manager:v1.9.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-manager:v1.9.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-share-manager:v1.9.1
- name: registry.rancher.com/rancher/mirrored-longhornio-longhorn-ui:v1.9.1
- name: registry.rancher.com/rancher/mirrored-sig-storage-snapshot-controller:v8.2.0
- name: registry.rancher.com/rancher/neuvector-compliance-config:1.0.6
- name: registry.rancher.com/rancher/neuvector-controller:5.4.5
- name: registry.rancher.com/rancher/neuvector-enforcer:5.4.5
- name: registry.rancher.com/rancher/nginx-ingress-controller:v1.12.4-hardened2
- name: registry.rancher.com/rancher/rancher-webhook:v0.8.1
- name: registry.rancher.com/rancher/rancher/turtles:v0.24.0
- name: registry.rancher.com/rancher/rancher:v2.12.1
- name: registry.rancher.com/rancher/rke2-cloud-provider:v1.33.1-0.20250516163953-99d91538b132-build20250612
- name: registry.rancher.com/rancher/scc-operator:v0.1.1
- name: registry.rancher.com/rancher/system-upgrade-controller:v0.16.0
- name: registry.suse.com/rancher/cluster-api-addon-provider-fleet:v0.11.0
- name: registry.suse.com/rancher/cluster-api-controller:v1.10.5
- name: registry.suse.com/rancher/cluster-api-provider-metal3:v1.10.2
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
- name: registry.suse.com/rancher/elemental-operator:1.7.3
- name: registry.suse.com/rancher/hardened-sriov-network-operator:v1.5.0-build20250425 - name: registry.suse.com/rancher/hardened-sriov-network-operator:v1.5.0-build20250425
- name: registry.suse.com/rancher/ip-address-manager:v1.9.4 - name: registry.suse.com/rancher/ip-address-manager:v1.10.2
- name: registry.suse.com/suse/sles/15.6/cdi-apiserver:1.61.0-150600.3.12.1 - name: registry.suse.com/suse/sles/15.7/cdi-apiserver:1.62.0-150700.9.3.1
- name: registry.suse.com/suse/sles/15.6/cdi-controller:1.61.0-150600.3.12.1 - name: registry.suse.com/suse/sles/15.7/cdi-controller:1.62.0-150700.9.3.1
- name: registry.suse.com/suse/sles/15.6/cdi-operator:1.61.0-150600.3.12.1 - name: registry.suse.com/suse/sles/15.7/cdi-operator:1.62.0-150700.9.3.1
- name: registry.suse.com/suse/sles/15.6/cdi-uploadproxy:1.61.0-150600.3.12.1 - name: registry.suse.com/suse/sles/15.7/cdi-uploadproxy:1.62.0-150700.9.3.1
- name: registry.suse.com/suse/sles/15.6/virt-api:1.4.0-150600.5.15.1 - name: registry.suse.com/suse/sles/15.7/virt-api:1.5.2-150700.3.5.2
- name: registry.suse.com/suse/sles/15.6/virt-controller:1.4.0-150600.5.15.1 - name: registry.suse.com/suse/sles/15.7/virt-controller:1.5.2-150700.3.5.2
- name: registry.suse.com/suse/sles/15.6/virt-handler:1.4.0-150600.5.15.1 - name: registry.suse.com/suse/sles/15.7/virt-handler:1.5.2-150700.3.5.2
- name: registry.suse.com/suse/sles/15.6/virt-launcher:1.4.0-150600.5.15.1 - name: registry.suse.com/suse/sles/15.7/virt-launcher:1.5.2-150700.3.5.2
- name: registry.suse.com/suse/sles/15.6/virt-operator:1.4.0-150600.5.15.1 - name: registry.suse.com/suse/sles/15.7/virt-operator:1.5.2-150700.3.5.2

View File

@@ -171,12 +171,17 @@ spec:
- prettyName: Metal3 - prettyName: Metal3
releaseName: metal3 releaseName: metal3
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%metal3' chart: '%%CHART_REPO%%/%%CHART_PREFIX%%metal3'
version: '%%CHART_MAJOR%%.0.16+up0.12.6' version: '%%CHART_MAJOR%%.0.17+up0.12.7'
- prettyName: RancherTurtles - prettyName: RancherTurtles
releaseName: rancher-turtles releaseName: rancher-turtles
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles' chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles'
version: '%%CHART_MAJOR%%.0.5+up0.21.0' version: '%%CHART_MAJOR%%.0.6+up0.24.0'
- prettyName: RancherTurtlesAirgapResources - prettyName: RancherTurtlesAirgapResources
releaseName: rancher-turtles-airgap-resources releaseName: rancher-turtles-airgap-resources
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles-airgap-resources' chart: '%%CHART_REPO%%/%%CHART_PREFIX%%rancher-turtles-airgap-resources'
version: '%%CHART_MAJOR%%.0.5+up0.21.0' version: '%%CHART_MAJOR%%.0.6+up0.24.0'
- prettyName: CertManager
releaseName: cert-manager
chart: cert-manager
version: 1.18.2
repository: https://charts.jetstack.io