diff --git a/rancher-turtles-airgap-resources-chart/Chart.yaml b/rancher-turtles-airgap-resources-chart/Chart.yaml index 4c1fe5f..fa60109 100644 --- a/rancher-turtles-airgap-resources-chart/Chart.yaml +++ b/rancher-turtles-airgap-resources-chart/Chart.yaml @@ -1,10 +1,10 @@ -#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1 -#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.14.1 +#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.16.0 +#!BuildTag: %%IMG_PREFIX%%rancher-turtles-airgap-resources-chart:%%CHART_MAJOR%%.0.0_up0.16.0 apiVersion: v2 -appVersion: 0.14.1 +appVersion: 0.16.0 description: Rancher Turtles utility chart for airgap scenarios home: https://github.com/rancher/turtles/ icon: https://raw.githubusercontent.com/rancher/turtles/main/logos/capi.svg name: rancher-turtles-airgap-resources type: application -version: "%%CHART_MAJOR%%.0.0+up0.14.1" +version: "%%CHART_MAJOR%%.0.0+up0.16.0" diff --git a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-core.yaml b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-core.yaml index df17285..89fd11b 100644 --- a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-core.yaml +++ b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-core.yaml @@ -8,7 +8,7 @@ metadata: --- apiVersion: v1 binaryData: - components: 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 + components: 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 data: metadata: | # maps release series of major.minor to cluster-api contract version @@ -19,6 +19,9 @@ data: apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 kind: Metadata releaseSeries: + - major: 1 + minor: 9 + contract: v1beta1 - major: 1 minor: 8 contract: v1beta1 @@ -49,7 +52,7 @@ data: kind: ConfigMap metadata: creationTimestamp: null - name: v1.8.4 + name: v1.9.4 namespace: capi-system annotations: provider.cluster.x-k8s.io/compressed: "true" diff --git a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-metal3.yaml b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-metal3.yaml index 6bf4a85..55d9135 100644 --- a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-metal3.yaml +++ b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-metal3.yaml @@ -22,7 +22,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 @@ -72,14 +72,19 @@ data: description: IPAddress is the Schema for the ipaddresses API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -97,33 +102,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -145,33 +156,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -194,7 +211,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 @@ -244,14 +261,19 @@ data: description: IPClaim is the Schema for the ipclaims API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -265,33 +287,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -309,33 +337,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -354,7 +388,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 @@ -408,14 +442,19 @@ data: description: IPPool is the Schema for the ippools API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -445,8 +484,9 @@ data: pools: description: Pools contains the list of IP addresses pools items: - description: MetaDataIPAddress contains the info to render th ip - address. It is IP-version agnostic. + description: |- + MetaDataIPAddress contains the info to render th ip address. It is IP-version + agnostic. properties: dnsServers: description: DNSServers is the list of dns servers @@ -456,8 +496,9 @@ data: type: string type: array end: - description: End is the last IP address that can be rendered. - It is used as a validation that the rendered IP is in bound. + description: |- + End is the last IP address that can be rendered. It is used as a validation + that the rendered IP is in bound. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string gateway: @@ -474,10 +515,10 @@ data: pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string subnet: - description: Subnet is used to validate that the rendered IP - is in bounds. In case the Start value is not given, it is - derived from the subnet ip incremented by 1 (`192.168.0.1` - for `192.168.0.0/24`) + description: |- + Subnet is used to validate that the rendered IP is in bounds. In case the + Start value is not given, it is derived from the subnet ip incremented by 1 + (`192.168.0.1` for `192.168.0.0/24`) pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))/([0-9]|[1-2][0-9]|3[0-2])$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$)) type: string type: object @@ -523,7 +564,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -583,14 +624,19 @@ data: description: Metal3Cluster is the Schema for the metal3clusters API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -612,11 +658,10 @@ data: - port type: object noCloudProvider: - description: Determines if the cluster is not to be deployed with - an external cloud provider. If set to true, CAPM3 will use node - labels to set providerID on the kubernetes nodes. If set to false, - providerID is set on nodes by other entities and CAPM3 uses the - value of the providerID on the m3m resource. + description: |- + Determines if the cluster is not to be deployed with an external cloud provider. + If set to true, CAPM3 will use node labels to set providerID on the kubernetes nodes. + If set to false, providerID is set on nodes by other entities and CAPM3 uses the value of the providerID on the m3m resource. type: boolean type: object status: @@ -629,37 +674,37 @@ data: operational state. properties: lastTransitionTime: - description: 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 the API field - changed is acceptable. + description: |- + 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 + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about - the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: 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. This field may not be - empty. + description: |- + 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. + This field may be empty. type: string severity: - description: Severity provides an explicit classification of - Reason code, so the users or machines can immediately understand - the current situation and act accordingly. The Severity field - MUST be set only when Status=False. + description: |- + severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: - description: 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 can be useful - (see .node.status.conditions), the ability to deconflict is - important. + description: |- + 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 + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -668,23 +713,26 @@ data: type: object type: array failureMessage: - description: FailureMessage indicates that there is a fatal problem - reconciling the state, and will be set to a descriptive error message. + description: |- + FailureMessage indicates that there is a fatal problem reconciling the + state, and will be set to a descriptive error message. type: string failureReason: - description: FailureReason indicates that there is a fatal problem - reconciling the state, and will be set to a token value suitable - for programmatic interpretation. + description: |- + FailureReason indicates that there is a fatal problem reconciling the + state, and will be set to a token value suitable for + programmatic interpretation. type: string lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string ready: - description: Ready denotes that the Metal3 cluster (infrastructure) - is ready. In Baremetal case, it does not mean anything for now as - no infrastructure steps need to be performed. Required by Cluster - API. Set to True by the metal3Cluster controller after creation. + description: |- + Ready denotes that the Metal3 cluster (infrastructure) is ready. In + Baremetal case, it does not mean anything for now as no infrastructure + steps need to be performed. Required by Cluster API. Set to True by the + metal3Cluster controller after creation. type: boolean type: object type: object @@ -698,7 +746,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -723,14 +771,19 @@ data: API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -761,11 +814,10 @@ data: - port type: object noCloudProvider: - description: Determines if the cluster is not to be deployed - with an external cloud provider. If set to true, CAPM3 will - use node labels to set providerID on the kubernetes nodes. - If set to false, providerID is set on nodes by other entities - and CAPM3 uses the value of the providerID on the m3m resource. + description: |- + Determines if the cluster is not to be deployed with an external cloud provider. + If set to true, CAPM3 will use node labels to set providerID on the kubernetes nodes. + If set to false, providerID is set on nodes by other entities and CAPM3 uses the value of the providerID on the m3m resource. type: boolean type: object required: @@ -783,7 +835,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -827,14 +879,19 @@ data: description: Metal3DataClaim is the Schema for the metal3datas API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -849,33 +906,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -895,33 +958,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -938,7 +1007,7 @@ data: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert clusterctl.cluster.x-k8s.io/skip-crd-name-preflight-check: "" - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -982,14 +1051,19 @@ data: description: Metal3Data is the Schema for the metal3datas API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -1004,33 +1078,39 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -1072,40 +1152,47 @@ data: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic templateReference: - description: TemplateReference refers to the Template the Metal3MachineTemplate - refers to. It can be matched against the key or it may also point - to the name of the template Metal3Data refers to + description: |- + TemplateReference refers to the Template the Metal3MachineTemplate refers to. + It can be matched against the key or it may also point to the name of the template + Metal3Data refers to type: string required: - claim @@ -1133,7 +1220,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -1182,14 +1269,19 @@ data: API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -1232,12 +1324,13 @@ data: type: object type: array fromAnnotations: - description: FromAnnotations is the list of metadata items to - be fetched from object Annotations + description: |- + FromAnnotations is the list of metadata items to be fetched from object + Annotations items: - description: MetaDataFromAnnotation contains the information - to fetch an annotation content, if the label does not exist, - it is rendered as empty string. + description: |- + MetaDataFromAnnotation contains the information to fetch an annotation + content, if the label does not exist, it is rendered as empty string. properties: annotation: description: Annotation is the key of the Annotation to @@ -1262,16 +1355,17 @@ data: type: object type: array fromHostInterfaces: - description: FromHostInterfaces is the list of metadata items - to be rendered as MAC addresses of the host interfaces. + description: |- + FromHostInterfaces is the list of metadata items to be rendered as MAC + addresses of the host interfaces. items: description: MetaDataHostInterface contains the information to render the object name. properties: interface: - description: Interface is the name of the interface in the - BareMetalHost Status Hardware Details list of interfaces - from which to fetch the MAC address. + description: |- + Interface is the name of the interface in the BareMetalHost Status Hardware + Details list of interfaces from which to fetch the MAC address. type: string key: description: Key will be used as the key to set in the metadata @@ -1286,9 +1380,9 @@ data: description: FromLabels is the list of metadata items to be fetched from object labels items: - description: MetaDataFromLabel contains the information to fetch - a label content, if the label does not exist, it is rendered - as empty string. + description: |- + MetaDataFromLabel contains the information to fetch a label content, if the + label does not exist, it is rendered as empty string. properties: key: description: Key will be used as the key to set in the metadata @@ -1338,8 +1432,9 @@ data: type: object type: array indexes: - description: Indexes is the list of metadata items to be rendered - from the index of the Metal3Data + description: |- + Indexes is the list of metadata items to be rendered from the index of the + Metal3Data items: description: MetaDataIndex contains the information to render the index. @@ -1408,8 +1503,9 @@ data: type: object type: array objectNames: - description: ObjectNames is the list of metadata items to be rendered - from the name of objects. + description: |- + ObjectNames is the list of metadata items to be rendered from the name + of objects. items: description: MetaDataObjectName contains the information to render the object name. @@ -1478,8 +1574,9 @@ data: type: array type: object networkData: - description: NetworkData contains the information needed to generate - the networkdata secret + description: |- + NetworkData contains the information needed to generate the networkdata + secret properties: links: description: Links is a structure containing lists of different @@ -1498,9 +1595,9 @@ data: type: string type: array bondMode: - description: BondMode is the mode of bond used. It can - be one of balance-rr, active-backup, balance-xor, - broadcast, balance-tlb, balance-alb, 802.3ad + description: |- + BondMode is the mode of bond used. It can be one of + balance-rr, active-backup, balance-xor, broadcast, balance-tlb, balance-alb, 802.3ad enum: - balance-rr - active-backup @@ -1523,12 +1620,14 @@ data: naming) type: string macAddress: - description: MACAddress is the MAC address of the interface, - containing the object used to render it. + description: |- + MACAddress is the MAC address of the interface, containing the object + used to render it. properties: fromAnnotation: - description: FromAnnotation references an object - Annotation to retrieve the MAC address from + description: |- + FromAnnotation references an object Annotation to retrieve the + MAC address from properties: annotation: description: Annotation is the key of the Annotation @@ -1547,9 +1646,9 @@ data: - object type: object fromHostInterface: - description: FromHostInterface contains the name - of the interface in the BareMetalHost Introspection - details from which to fetch the MAC address + description: |- + FromHostInterface contains the name of the interface in the BareMetalHost + Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given @@ -1578,12 +1677,14 @@ data: naming) type: string macAddress: - description: MACAddress is the MAC address of the interface, - containing the object used to render it. + description: |- + MACAddress is the MAC address of the interface, containing the object + used to render it. properties: fromAnnotation: - description: FromAnnotation references an object - Annotation to retrieve the MAC address from + description: |- + FromAnnotation references an object Annotation to retrieve the + MAC address from properties: annotation: description: Annotation is the key of the Annotation @@ -1602,9 +1703,9 @@ data: - object type: object fromHostInterface: - description: FromHostInterface contains the name - of the interface in the BareMetalHost Introspection - details from which to fetch the MAC address + description: |- + FromHostInterface contains the name of the interface in the BareMetalHost + Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given @@ -1617,9 +1718,9 @@ data: maximum: 9000 type: integer type: - description: 'Type is the type of the ethernet link. - It can be one of: bridge, dvs, hw_veb, hyperv, ovs, - tap, vhostuser, vif, phy' + description: |- + Type is the type of the ethernet link. It can be one of: + bridge, dvs, hw_veb, hyperv, ovs, tap, vhostuser, vif, phy enum: - bridge - dvs @@ -1648,12 +1749,14 @@ data: naming) type: string macAddress: - description: MACAddress is the MAC address of the interface, - containing the object used to render it. + description: |- + MACAddress is the MAC address of the interface, containing the object + used to render it. properties: fromAnnotation: - description: FromAnnotation references an object - Annotation to retrieve the MAC address from + description: |- + FromAnnotation references an object Annotation to retrieve the + MAC address from properties: annotation: description: Annotation is the key of the Annotation @@ -1672,9 +1775,9 @@ data: - object type: object fromHostInterface: - description: FromHostInterface contains the name - of the interface in the BareMetalHost Introspection - details from which to fetch the MAC address + description: |- + FromHostInterface contains the name of the interface in the BareMetalHost + Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given @@ -1717,9 +1820,9 @@ data: to allocate an address from. properties: apiGroup: - description: APIGroup is the group for the resource - being referenced. If APIGroup is not specified, - the specified Kind must be in the core API group. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: @@ -1878,9 +1981,9 @@ data: to allocate an address from. properties: apiGroup: - description: APIGroup is the group for the resource - being referenced. If APIGroup is not specified, - the specified Kind must be in the core API group. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: @@ -2115,9 +2218,10 @@ data: type: object type: object templateReference: - description: TemplateReference refers to the Template the Metal3MachineTemplate - refers to. It can be matched against the key or it may also point - to the name of the template Metal3Data refers to + description: |- + TemplateReference refers to the Template the Metal3MachineTemplate refers to. + It can be matched against the key or it may also point to the name of the template + Metal3Data refers to type: string required: - clusterName @@ -2146,7 +2250,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -2206,14 +2310,19 @@ data: description: Metal3Machine is the Schema for the metal3machines API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -2221,8 +2330,9 @@ data: description: Metal3MachineSpec defines the desired state of Metal3Machine. properties: automatedCleaningMode: - description: When set to disabled, automated cleaning of host disks - will be skipped during provisioning and deprovisioning. + description: |- + When set to disabled, automated cleaning of host disks will be skipped + during provisioning and deprovisioning. enum: - metadata - disabled @@ -2231,57 +2341,65 @@ data: description: A custom deploy procedure. properties: method: - description: Custom deploy method name. This name is specific - to the deploy ramdisk used. If you don't have a custom deploy - ramdisk, you shouldn't use CustomDeploy. + description: |- + Custom deploy method name. + This name is specific to the deploy ramdisk used. If you don't have + a custom deploy ramdisk, you shouldn't use CustomDeploy. type: string required: - method type: object dataTemplate: - description: MetadataTemplate is a reference to a Metal3DataTemplate - object containing a template of metadata to be rendered. Metadata - keys defined in the metadataTemplate take precedence over keys defined - in metadata field. + description: |- + MetadataTemplate is a reference to a Metal3DataTemplate object containing + a template of metadata to be rendered. Metadata keys defined in the + metadataTemplate take precedence over keys defined in metadata field. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic hostSelector: - description: HostSelector specifies matching criteria for labels on - BareMetalHosts. This is used to limit the set of BareMetalHost objects - considered for claiming for a metal3machine. + description: |- + HostSelector specifies matching criteria for labels on BareMetalHosts. + This is used to limit the set of BareMetalHost objects considered for + claiming for a metal3machine. properties: matchExpressions: description: Label match expressions that must be true on a chosen @@ -2291,9 +2409,9 @@ data: key: type: string operator: - description: Operator represents a key/field's relationship - to value(s). See labels.Requirement and fields.Requirement - for more details. + description: |- + Operator represents a key/field's relationship to value(s). + See labels.Requirement and fields.Requirement for more details. type: string values: items: @@ -2320,7 +2438,8 @@ data: or a URL to retrieve one. type: string checksumType: - description: ChecksumType is the checksum algorithm for the image. + description: |- + ChecksumType is the checksum algorithm for the image. e.g md5, sha256, sha512 enum: - md5 @@ -2344,8 +2463,9 @@ data: - url type: object metaData: - description: MetaData is an object storing the reference to the secret - containing the Metadata given by the user. + description: |- + MetaData is an object storing the reference to the secret containing the + Metadata given by the user. properties: name: description: name is unique within a namespace to reference a @@ -2358,8 +2478,9 @@ data: type: object x-kubernetes-map-type: atomic networkData: - description: NetworkData is an object storing the reference to the - secret containing the network data given by the user. + description: |- + NetworkData is an object storing the reference to the secret containing the + network data given by the user. properties: name: description: name is unique within a namespace to reference a @@ -2372,13 +2493,15 @@ data: type: object x-kubernetes-map-type: atomic providerID: - description: ProviderID will be the Metal3 machine in ProviderID format + description: |- + ProviderID will be the Metal3 machine in ProviderID format (metal3://) type: string userData: - description: UserData references the Secret that holds user data needed - by the bare metal operator. The Namespace is optional; it will default - to the metal3machine's namespace if not specified. + description: |- + UserData references the Secret that holds user data needed by the bare metal + operator. The Namespace is optional; it will default to the metal3machine's + namespace if not specified. properties: name: description: name is unique within a namespace to reference a @@ -2395,7 +2518,8 @@ data: description: Metal3MachineStatus defines the observed state of Metal3Machine. properties: addresses: - description: Addresses is a list of addresses assigned to the machine. + description: |- + Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. items: description: MachineAddress contains information for the node's @@ -2420,37 +2544,37 @@ data: operational state. properties: lastTransitionTime: - description: 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 the API field - changed is acceptable. + description: |- + 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 + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about - the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: 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. This field may not be - empty. + description: |- + 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. + This field may be empty. type: string severity: - description: Severity provides an explicit classification of - Reason code, so the users or machines can immediately understand - the current situation and act accordingly. The Severity field - MUST be set only when Status=False. + description: |- + severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: - description: 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 can be useful - (see .node.status.conditions), the ability to deconflict is - important. + description: |- + 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 + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -2459,44 +2583,51 @@ data: type: object type: array failureMessage: - description: "FailureMessage will be set in the event that there is - a terminal problem reconciling the metal3machine and will contain - a more verbose string suitable for logging and human consumption. - \n This field should not be set for transitive errors that a controller - faces that are expected to be fixed automatically over time (like - service outages), but instead indicate that something is fundamentally - wrong with the metal3machine's spec or the configuration of the - controller, and that manual intervention is required. Examples of - terminal errors would be invalid combinations of settings in the - spec, values that are unsupported by the controller, or the responsible - controller itself being critically misconfigured. \n Any transient - errors that occur during the reconciliation of metal3machines can - be added as events to the metal3machine object and/or logged in - the controller's output." + description: |- + FailureMessage will be set in the event that there is a terminal problem + reconciling the metal3machine and will contain a more verbose string suitable + for logging and human consumption. + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the metal3machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + Any transient errors that occur during the reconciliation of + metal3machines can be added as events to the metal3machine object + and/or logged in the controller's output. type: string failureReason: - description: "FailureReason will be set in the event that there is - a terminal problem reconciling the metal3machine and will contain - a succinct value suitable for machine interpretation. \n This field - should not be set for transitive errors that a controller faces - that are expected to be fixed automatically over time (like service - outages), but instead indicate that something is fundamentally wrong - with the metal3machine's spec or the configuration of the controller, - and that manual intervention is required. Examples of terminal errors - would be invalid combinations of settings in the spec, values that - are unsupported by the controller, or the responsible controller - itself being critically misconfigured. \n Any transient errors that - occur during the reconciliation of metal3machines can be added as - events to the metal3machine object and/or logged in the controller's - output." + description: |- + FailureReason will be set in the event that there is a terminal problem + reconciling the metal3machine and will contain a succinct value suitable + for machine interpretation. + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the metal3machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + Any transient errors that occur during the reconciliation of + metal3machines can be added as events to the metal3machine object + and/or logged in the controller's output. type: string lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string metaData: - description: MetaData is an object storing the reference to the secret - containing the Metadata used to deploy the BareMetalHost. + description: |- + MetaData is an object storing the reference to the secret containing the + Metadata used to deploy the BareMetalHost. properties: name: description: name is unique within a namespace to reference a @@ -2509,8 +2640,9 @@ data: type: object x-kubernetes-map-type: atomic networkData: - description: NetworkData is an object storing the reference to the - secret containing the network data used to deploy the BareMetalHost. + description: |- + NetworkData is an object storing the reference to the secret containing the + network data used to deploy the BareMetalHost. properties: name: description: name is unique within a namespace to reference a @@ -2523,57 +2655,66 @@ data: type: object x-kubernetes-map-type: atomic phase: - description: Phase represents the current phase of machine actuation. + description: |- + Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. type: string ready: - description: 'Ready is the state of the metal3. TODO : Document the - variable : mhrivnak: " it would be good to document what this means, - how to interpret it, under what circumstances the value changes, - etc."' + description: |- + Ready is the state of the metal3. + mhrivnak: " it would be good to document what this means, how to interpret + it, under what circumstances the value changes, etc." type: boolean renderedData: - description: RenderedData is a reference to a rendered Metal3Data - object containing the references to metaData and networkData secrets. + description: |- + RenderedData is a reference to a rendered Metal3Data object containing + the references to metaData and networkData secrets. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of - an entire object, this string should contain a valid JSON/Go - field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen - only to have some well-defined way of referencing a part of - an object. TODO: this design is not final and this field is - subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic userData: - description: UserData references the Secret that holds user data needed - by the bare metal operator. The Namespace is optional; it will default - to the metal3machine's namespace if not specified. + description: |- + UserData references the Secret that holds user data needed by the bare metal + operator. The Namespace is optional; it will default to the metal3machine's + namespace if not specified. properties: name: description: name is unique within a namespace to reference a @@ -2597,7 +2738,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -2642,14 +2783,19 @@ data: API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -2658,8 +2804,9 @@ data: properties: nodeReuse: default: false - description: When set to True, CAPM3 Machine controller will pick - the same pool of BMHs' that were released during the upgrade operation. + description: |- + When set to True, CAPM3 Machine controller will + pick the same pool of BMHs' that were released during the upgrade operation. type: boolean template: description: Metal3MachineTemplateResource describes the data needed @@ -2670,8 +2817,9 @@ data: of the machine. properties: automatedCleaningMode: - description: When set to disabled, automated cleaning of host - disks will be skipped during provisioning and deprovisioning. + description: |- + When set to disabled, automated cleaning of host disks will be skipped + during provisioning and deprovisioning. enum: - metadata - disabled @@ -2680,58 +2828,65 @@ data: description: A custom deploy procedure. properties: method: - description: Custom deploy method name. This name is specific - to the deploy ramdisk used. If you don't have a custom - deploy ramdisk, you shouldn't use CustomDeploy. + description: |- + Custom deploy method name. + This name is specific to the deploy ramdisk used. If you don't have + a custom deploy ramdisk, you shouldn't use CustomDeploy. type: string required: - method type: object dataTemplate: - description: MetadataTemplate is a reference to a Metal3DataTemplate - object containing a template of metadata to be rendered. - Metadata keys defined in the metadataTemplate take precedence - over keys defined in metadata field. + description: |- + MetadataTemplate is a reference to a Metal3DataTemplate object containing + a template of metadata to be rendered. Metadata keys defined in the + metadataTemplate take precedence over keys defined in metadata field. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead - of an entire object, this string should contain a valid - JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container - within a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that - triggered the event) or if no container name is specified - "spec.containers[2]" (container with index 2 in this - pod). This syntax is chosen only to have some well-defined - way of referencing a part of an object. TODO: this design - is not final and this field is subject to change in - the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic hostSelector: - description: HostSelector specifies matching criteria for - labels on BareMetalHosts. This is used to limit the set - of BareMetalHost objects considered for claiming for a metal3machine. + description: |- + HostSelector specifies matching criteria for labels on BareMetalHosts. + This is used to limit the set of BareMetalHost objects considered for + claiming for a metal3machine. properties: matchExpressions: description: Label match expressions that must be true @@ -2741,9 +2896,9 @@ data: key: type: string operator: - description: Operator represents a key/field's relationship - to value(s). See labels.Requirement and fields.Requirement - for more details. + description: |- + Operator represents a key/field's relationship to value(s). + See labels.Requirement and fields.Requirement for more details. type: string values: items: @@ -2770,8 +2925,9 @@ data: value or a URL to retrieve one. type: string checksumType: - description: ChecksumType is the checksum algorithm for - the image. e.g md5, sha256, sha512 + description: |- + ChecksumType is the checksum algorithm for the image. + e.g md5, sha256, sha512 enum: - md5 - sha256 @@ -2794,8 +2950,9 @@ data: - url type: object metaData: - description: MetaData is an object storing the reference to - the secret containing the Metadata given by the user. + description: |- + MetaData is an object storing the reference to the secret containing the + Metadata given by the user. properties: name: description: name is unique within a namespace to reference @@ -2808,8 +2965,9 @@ data: type: object x-kubernetes-map-type: atomic networkData: - description: NetworkData is an object storing the reference - to the secret containing the network data given by the user. + description: |- + NetworkData is an object storing the reference to the secret containing the + network data given by the user. properties: name: description: name is unique within a namespace to reference @@ -2822,14 +2980,15 @@ data: type: object x-kubernetes-map-type: atomic providerID: - description: ProviderID will be the Metal3 machine in ProviderID - format (metal3://) + description: |- + ProviderID will be the Metal3 machine in ProviderID format + (metal3://) type: string userData: - description: UserData references the Secret that holds user - data needed by the bare metal operator. The Namespace is - optional; it will default to the metal3machine's namespace - if not specified. + description: |- + UserData references the Secret that holds user data needed by the bare metal + operator. The Namespace is optional; it will default to the metal3machine's + namespace if not specified. properties: name: description: name is unique within a namespace to reference @@ -2858,7 +3017,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -2917,14 +3076,19 @@ data: description: Metal3Remediation is the Schema for the metal3remediations API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -2953,11 +3117,13 @@ data: format: date-time type: string phase: - description: Phase represents the current phase of machine remediation. + description: |- + Phase represents the current phase of machine remediation. E.g. Pending, Running, Done etc. type: string retryCount: - description: RetryCount can be used as a counter during the remediation. + description: |- + RetryCount can be used as a counter during the remediation. Field can hold number of reboots etc. type: integer type: object @@ -2972,7 +3138,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.16.5 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 @@ -3012,14 +3178,19 @@ data: API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -3069,11 +3240,13 @@ data: format: date-time type: string phase: - description: Phase represents the current phase of machine remediation. + description: |- + Phase represents the current phase of machine remediation. E.g. Pending, Running, Done etc. type: string retryCount: - description: RetryCount can be used as a counter during the remediation. + description: |- + RetryCount can be used as a counter during the remediation. Field can hold number of reboots etc. type: integer type: object @@ -3162,6 +3335,23 @@ data: - patch - update - watch + - apiGroups: + - "" + resources: + - nodes + verbs: + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - pods + verbs: + - list - apiGroups: - "" resources: @@ -3190,52 +3380,17 @@ data: - cluster.x-k8s.io resources: - clusters + - clusters/status + - machinesets verbs: - get - list - watch - - apiGroups: - - cluster.x-k8s.io - resources: - - clusters - - clusters/status - verbs: - - get - - list - - watch - - apiGroups: - - cluster.x-k8s.io - resources: - - clusters/status - verbs: - - get - apiGroups: - cluster.x-k8s.io resources: - kubeadmcontrolplanes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - cluster.x-k8s.io - resources: - machinedeployments - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - cluster.x-k8s.io - resources: - machines - machines/status verbs: @@ -3246,146 +3401,15 @@ data: - patch - update - watch - - apiGroups: - - cluster.x-k8s.io - resources: - - machinesets - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - nodes - verbs: - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - pods - verbs: - - list - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3clusters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - - metal3clusters/status - verbs: - - get - - patch - - update - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3dataclaims - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - - metal3dataclaims/status - verbs: - - get - - patch - - update - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3datas - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - - metal3datas/status - verbs: - - get - - patch - - update - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3datatemplates - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - - metal3datatemplates/status - verbs: - - get - - patch - - update - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3machines - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - - metal3machines/status - verbs: - - get - - patch - - update - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3machinetemplates - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - infrastructure.cluster.x-k8s.io - resources: - metal3remediations verbs: - create @@ -3398,6 +3422,11 @@ data: - apiGroups: - infrastructure.cluster.x-k8s.io resources: + - metal3clusters/status + - metal3dataclaims/status + - metal3datas/status + - metal3datatemplates/status + - metal3machines/status - metal3remediations/status verbs: - get @@ -3424,19 +3453,6 @@ data: - watch - apiGroups: - ipam.cluster.x-k8s.io - resources: - - ipaddresses - verbs: - - get - - list - - watch - - apiGroups: - - ipam.cluster.x-k8s.io - resources: - - ipaddresses/status - verbs: - - get - - apiGroups: - ipam.metal3.io resources: - ipaddresses @@ -3445,6 +3461,7 @@ data: - list - watch - apiGroups: + - ipam.cluster.x-k8s.io - ipam.metal3.io resources: - ipaddresses/status @@ -3557,45 +3574,7 @@ data: - ipam.metal3.io resources: - ipaddresses - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - ipam.metal3.io - resources: - - ipaddresses/status - verbs: - - get - - patch - - update - - apiGroups: - - ipam.metal3.io - resources: - ipclaims - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - ipam.metal3.io - resources: - - ipclaims/status - verbs: - - get - - patch - - update - - apiGroups: - - ipam.metal3.io - resources: - ippools verbs: - create @@ -3608,6 +3587,8 @@ data: - apiGroups: - ipam.metal3.io resources: + - ipaddresses/status + - ipclaims/status - ippools/status verbs: - get @@ -3742,6 +3723,7 @@ data: - --enableBMHNameBasedPreallocation=${ENABLE_BMH_NAME_BASED_PREALLOCATION:=false} - --diagnostics-address=${CAPM3_DIAGNOSTICS_ADDRESS:=:8443} - --insecure-diagnostics=${CAPM3_INSECURE_DIAGNOSTICS:=false} + - --tls-min-version=${TLS_MIN_VERSION:=VersionTLS13} command: - /manager env: @@ -3752,7 +3734,7 @@ data: envFrom: - configMapRef: name: capm3-capm3fasttrack-configmap - image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.8.2 + image: registry.rancher.com/rancher/cluster-api-provider-metal3:v1.9.2 imagePullPolicy: IfNotPresent livenessProbe: httpGet: @@ -3830,6 +3812,7 @@ data: - --webhook-port=9443 - --diagnostics-address=${IPAM_DIAGNOSTICS_ADDRESS:=:8443} - --insecure-diagnostics=${IPAM_INSECURE_DIAGNOSTICS:=false} + - --tls-min-version=${TLS_MIN_VERSION:=VersionTLS13} command: - /manager env: @@ -3837,7 +3820,7 @@ data: valueFrom: fieldRef: fieldPath: metadata.namespace - image: quay.io/metal3-io/ip-address-manager:v1.8.1 + image: quay.io/metal3-io/ip-address-manager:v1.9.3 imagePullPolicy: IfNotPresent livenessProbe: httpGet: @@ -4511,6 +4494,9 @@ data: apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 kind: Metadata releaseSeries: + - major: 1 + minor: 9 + contract: v1beta1 - major: 1 minor: 8 contract: v1beta1 @@ -4538,7 +4524,7 @@ data: kind: ConfigMap metadata: creationTimestamp: null - name: v1.8.2 + name: v1.9.2 namespace: capm3-system labels: provider-components: metal3 diff --git a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-bootstrap.yaml b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-bootstrap.yaml index e7f3bba..b12bd98 100644 --- a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-bootstrap.yaml +++ b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-bootstrap.yaml @@ -22,7 +22,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: cluster.x-k8s.io/provider: bootstrap-rke2 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 @@ -154,7 +154,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -300,7 +299,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -439,7 +437,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -495,7 +492,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -582,20 +578,20 @@ data: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -742,7 +738,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -893,7 +888,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1029,7 +1023,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1085,7 +1078,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1172,20 +1164,20 @@ data: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -1226,7 +1218,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: rke2-bootstrap-system/rke2-bootstrap-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: cluster.x-k8s.io/provider: bootstrap-rke2 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 @@ -1369,7 +1361,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1523,7 +1514,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1664,7 +1654,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1720,7 +1709,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1920,7 +1908,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2079,7 +2066,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2217,7 +2203,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2273,7 +2258,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2543,7 +2527,7 @@ data: - --insecure-diagnostics=${CAPRKE2_INSECURE_DIAGNOSTICS:=false} command: - /manager - image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.9.0 + image: ghcr.io/rancher/cluster-api-provider-rke2-bootstrap:v0.11.0 imagePullPolicy: IfNotPresent livenessProbe: httpGet: @@ -2757,10 +2741,16 @@ data: - major: 0 minor: 9 contract: v1beta1 + - major: 0 + minor: 10 + contract: v1beta1 + - major: 0 + minor: 11 + contract: v1beta1 kind: ConfigMap metadata: creationTimestamp: null - name: v0.9.0 + name: v0.11.0 namespace: rke2-bootstrap-system labels: provider-components: rke2-bootstrap diff --git a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-control-plane.yaml b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-control-plane.yaml index f086bce..408d4f6 100644 --- a/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-control-plane.yaml +++ b/rancher-turtles-airgap-resources-chart/templates/airgap-cm-rke2-control-plane.yaml @@ -22,7 +22,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: cluster.x-k8s.io/provider: control-plane-rke2 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 @@ -154,7 +154,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -300,7 +299,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -418,7 +416,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -464,7 +461,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -537,7 +533,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -593,7 +588,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -727,7 +721,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -804,7 +797,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -935,7 +927,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -980,6 +971,7 @@ data: description: |- S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". + If empty, the controller will default to IAM authentication properties: apiVersion: description: API version of the referent. @@ -993,7 +985,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1024,7 +1015,6 @@ data: x-kubernetes-map-type: atomic required: - endpoint - - s3CredentialSecret type: object scheduleCron: description: 'ScheduleCron Snapshot interval time in cron @@ -1201,20 +1191,20 @@ data: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -1387,7 +1377,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1538,7 +1527,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1640,6 +1628,7 @@ data: description: |- InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + This field is deprecated. Use `.machineTemplate.infrastructureRef` instead. properties: apiVersion: description: API version of the referent. @@ -1653,7 +1642,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1704,7 +1692,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1742,7 +1729,7 @@ data: additionalProperties: type: string description: |- - Annotations is an unstructured key value map stored with a resource that may be + annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations @@ -1783,7 +1770,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1817,6 +1803,7 @@ data: NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + This field is deprecated. Use `.machineTemplate.nodeDrainTimeout` instead. type: string postRKE2Commands: description: PostRKE2Commands specifies extra commands to run after @@ -1856,7 +1843,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -1912,7 +1898,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2043,7 +2028,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2120,7 +2104,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2251,7 +2234,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2296,6 +2278,7 @@ data: description: |- S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". + If empty, the controller will default to IAM authentication properties: apiVersion: description: API version of the referent. @@ -2309,7 +2292,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2340,7 +2322,6 @@ data: x-kubernetes-map-type: atomic required: - endpoint - - s3CredentialSecret type: object scheduleCron: description: 'ScheduleCron Snapshot interval time in cron @@ -2490,7 +2471,6 @@ data: pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$ type: string required: - - infrastructureRef - rolloutStrategy type: object status: @@ -2524,20 +2504,20 @@ data: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -2609,7 +2589,7 @@ data: metadata: annotations: cert-manager.io/inject-ca-from: rke2-control-plane-system/rke2-control-plane-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: cluster.x-k8s.io/provider: control-plane-rke2 cluster.x-k8s.io/v1beta1: v1alpha1_v1beta1 @@ -2796,7 +2776,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -2955,7 +2934,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3058,6 +3036,7 @@ data: description: |- InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + This field is deprecated. Use `.machineTemplate.infrastructureRef` instead. properties: apiVersion: description: API version of the referent. @@ -3071,7 +3050,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3122,7 +3100,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3160,7 +3137,7 @@ data: additionalProperties: type: string description: |- - Annotations is an unstructured key value map stored with a resource that may be + annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations @@ -3201,7 +3178,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3235,6 +3211,7 @@ data: NodeDrainTimeout is the total amount of time that the controller will spend on draining a controlplane node The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + This field is deprecated. Use `.machineTemplate.nodeDrainTimeout` instead. type: string postRKE2Commands: description: PostRKE2Commands specifies extra commands to @@ -3275,7 +3252,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3331,7 +3307,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3466,7 +3441,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3545,7 +3519,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3679,7 +3652,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3724,6 +3696,7 @@ data: description: |- S3CredentialSecret is a reference to a Secret containing the Access Key and Secret Key necessary to access the target S3 Bucket. The Secret must contain the following keys: "aws_access_key_id" and "aws_secret_access_key". + If empty, the controller will default to IAM authentication properties: apiVersion: description: API version of the referent. @@ -3737,7 +3710,6 @@ data: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3768,7 +3740,6 @@ data: x-kubernetes-map-type: atomic required: - endpoint - - s3CredentialSecret type: object scheduleCron: description: 'ScheduleCron Snapshot interval time @@ -3927,7 +3898,6 @@ data: pattern: (v\d\.\d{2}\.\d+\+rke2r\d)|^$ type: string required: - - infrastructureRef - rolloutStrategy type: object required: @@ -3967,20 +3937,20 @@ data: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -4293,7 +4263,7 @@ data: valueFrom: fieldRef: fieldPath: metadata.uid - image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.9.0 + image: ghcr.io/rancher/cluster-api-provider-rke2-controlplane:v0.11.0 imagePullPolicy: IfNotPresent livenessProbe: httpGet: @@ -4348,7 +4318,7 @@ data: volumes: - name: cert secret: - secretName: rke2-control-plane-webhook-service-cert + secretName: rke2-controlplane-webhook-service-cert --- apiVersion: cert-manager.io/v1 kind: Certificate @@ -4364,7 +4334,7 @@ data: issuerRef: kind: Issuer name: rke2-control-plane-selfsigned-issuer - secretName: rke2-control-plane-webhook-service-cert + secretName: rke2-controlplane-webhook-service-cert subject: organizations: - Rancher by SUSE @@ -4514,10 +4484,16 @@ data: - major: 0 minor: 9 contract: v1beta1 + - major: 0 + minor: 10 + contract: v1beta1 + - major: 0 + minor: 11 + contract: v1beta1 kind: ConfigMap metadata: creationTimestamp: null - name: v0.9.0 + name: v0.11.0 namespace: rke2-control-plane-system labels: provider-components: rke2-control-plane diff --git a/rancher-turtles-chart/Chart.lock b/rancher-turtles-chart/Chart.lock index be85685..b03387b 100644 --- a/rancher-turtles-chart/Chart.lock +++ b/rancher-turtles-chart/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: cluster-api-operator repository: https://kubernetes-sigs.github.io/cluster-api-operator - version: 0.14.0 -digest: sha256:9e9e851dbab3212c279efec06bcf0da147228ea1590470f3a8cbbb5806a250d4 -generated: "2024-12-03T09:34:12.871417074Z" + version: 0.16.0 +digest: sha256:9b296be6ee446bff492e6736e084ce3734b07ea613791b77fd15d31c0f62dc70 +generated: "2025-01-30T10:14:58.692942399Z" diff --git a/rancher-turtles-chart/Chart.yaml b/rancher-turtles-chart/Chart.yaml index 4a806fd..d1cf0c4 100644 --- a/rancher-turtles-chart/Chart.yaml +++ b/rancher-turtles-chart/Chart.yaml @@ -1,5 +1,5 @@ -#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1 -#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.14.1-%RELEASE% +#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.16.0 +#!BuildTag: %%IMG_PREFIX%%rancher-turtles-chart:%%CHART_MAJOR%%.0.0_up0.16.0-%RELEASE% annotations: catalog.cattle.io/certified: rancher catalog.cattle.io/display-name: Rancher Turtles - the Cluster API Extension @@ -12,7 +12,7 @@ annotations: catalog.cattle.io/scope: management catalog.cattle.io/type: cluster-tool apiVersion: v2 -appVersion: 0.14.1 +appVersion: 0.16.0 dependencies: - condition: cluster-api-operator.enabled name: cluster-api-operator @@ -29,4 +29,4 @@ keywords: - provisioning name: rancher-turtles type: application -version: "%%CHART_MAJOR%%.0.0+up0.14.1" +version: "%%CHART_MAJOR%%.0.0+up0.16.0" diff --git a/rancher-turtles-chart/questions.yml b/rancher-turtles-chart/questions.yml index 96e21ef..8f043d9 100644 --- a/rancher-turtles-chart/questions.yml +++ b/rancher-turtles-chart/questions.yml @@ -1,78 +1,44 @@ namespace: rancher-turtles-system questions: -- variable: rancherTurtles.features.default - default: "false" - description: "Customize install settings" - label: Customize install settings - type: boolean - show_subquestion_if: true - group: "Rancher Turtles Extra Settings" - subquestions: - - variable: cluster-api-operator.cert-manager.enabled - default: false + - variable: rancherTurtles.features.default + default: "false" + description: "Customize install settings" + label: Customize install settings 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: rancherTurtles.features.cluster-api-operator.cleanup - default: true - description: "Specify that the CAPI Operator post-delete cleanup job will be performed" - type: boolean - label: Cleanup CAPI Operator installation - group: "CAPI Operator cleanup settings" show_subquestion_if: true + group: "Rancher Turtles Extra Settings" subquestions: - - variable: rancherTurtles.features.cluster-api-operator.kubectlImage - default: "rancher/kubectl:v1.30.3" - description: "Specify the image to use when cleaning up the Cluster API Operator manifests" - type: string - label: Cleanup Image - group: "CAPI Operator cleanup settings" - - variable: rancherTurtles.features.rancher-webhook.cleanup - default: true - description: "Specify that the Rancher embedded cluster api webhooks should be removed" - type: boolean - label: Cleanup Rancher Embedded CAPI Webhooks - group: "Rancher webhook cleanup settings" - show_subquestion_if: true - subquestions: - - variable: rancherTurtles.features.rancher-webhook.kubectlImage - default: "rancher/kubectl:v1.30.3" - description: "Specify the image to use when cleaning up the webhooks" - type: string - label: Webhook Cleanup Image - group: "Rancher webhook cleanup settings" - - variable: rancherTurtles.features.rancher-kubeconfigs.label - default: false - description: "(Experimental) Specify that the kubeconfigs generated by Rancher should be automatically patched to contain the CAPI expected labels" - type: boolean - label: Label Rancher Kubeconfigs - group: "Rancher Turtles Features Settings" - - variable: rancherTurtles.features.managementv3-cluster.enabled - default: true - description: "Use v3/management cluster manifest for import, instead of v1/provisioning" - type: boolean - label: Use management v3 cluster manifest - group: "Rancher Turtles Features Settings" - - variable: rancherTurtles.features.managementv3-cluster-migration.enabled - default: false - description: "Automatically migrate between provisioning and management clusters on upgrade" - type: boolean - label: All imported clusters will use new cluster manifest, replacing old cluster manifest. - group: "Rancher Turtles Features Settings" - - variable: cluster-api-operator.cluster-api.rke2.enabled - default: "true" - description: "Flag to enable or disable installation of the RKE2 provider for Cluster API. By default this is enabled." - label: "Enable RKE2 Provider" - type: boolean - - variable: rancherTurtles.features.propagate-labels.enabled - default: false - description: "(Experimental) Specify that the labels from CAPI should be propagated to Rancher" - type: boolean - label: Propagate CAPI Labels - group: "Rancher Turtles Features Settings" - - variable: rancherTurtles.features.addon-provider-fleet.enabled - default: false - description: "Enable Fleet Addon Provider functionality in Rancher Turtles" - type: boolean - label: Seamless integration with Fleet and CAPI - group: "Rancher Turtles Features Settings" + - 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: rancherTurtles.cluster-api-operator.cleanup + default: true + description: "Specify that the CAPI Operator post-delete cleanup job will be performed" + type: boolean + label: Cleanup CAPI Operator installation + group: "CAPI Operator cleanup settings" + - variable: cluster-api-operator.cluster-api.rke2.enabled + default: "true" + description: "Flag to enable or disable installation of the RKE2 provider for Cluster API. By default this is enabled." + label: "Enable RKE2 Provider" + type: boolean + - variable: rancherTurtles.features.addon-provider-fleet.enabled + default: false + description: "[BETA] Enable Fleet Addon Provider functionality in Rancher Turtles" + type: boolean + label: Seamless integration with Fleet and CAPI + group: "Rancher Turtles Features Settings" + - variable: rancherTurtles.features.agent-tls-mode.enabled + default: false + description: "[ALPHA] If enabled Turtles will use the agent-tls-mode setting to determine CA cert trust mode for importing clusters" + type: boolean + label: Enable Agent TLS Mode + group: "Rancher Turtles Features Settings" + - variable: rancherTurtles.kubectlImage + default: "registry.suse.com/edge/3.2/kubectl:1.30.3" + description: "Specify the image to use when running kubectl in jobs" + type: string + label: Kubectl Image + group: "Rancher Turtles Features Settings" diff --git a/rancher-turtles-chart/templates/addon-provider-fleet.yaml b/rancher-turtles-chart/templates/addon-provider-fleet.yaml index 5a6ced8..c12ef2a 100644 --- a/rancher-turtles-chart/templates/addon-provider-fleet.yaml +++ b/rancher-turtles-chart/templates/addon-provider-fleet.yaml @@ -35,10 +35,17 @@ data: cluster: patchResource: true setOwnerReferences: true + hostNetwork: true selector: matchLabels: cluster-api.cattle.io/rancher-auto-import: "true" + matchExpressions: + - key: cluster-api.cattle.io/disable-fleet-auto-import + operator: DoesNotExist namespaceSelector: matchLabels: cluster-api.cattle.io/rancher-auto-import: "true" + matchExpressions: + - key: cluster-api.cattle.io/disable-fleet-auto-import + operator: DoesNotExist {{- end }} diff --git a/rancher-turtles-chart/templates/clusterctl-cm-cleanup-job.yaml b/rancher-turtles-chart/templates/clusterctl-cm-cleanup-job.yaml index c2bd142..25f4f9a 100644 --- a/rancher-turtles-chart/templates/clusterctl-cm-cleanup-job.yaml +++ b/rancher-turtles-chart/templates/clusterctl-cm-cleanup-job.yaml @@ -1,4 +1,4 @@ -{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }} +{{- if index .Values "rancherTurtles" "rancherInstalled" }} --- apiVersion: v1 kind: ServiceAccount @@ -55,7 +55,7 @@ spec: serviceAccountName: pre-upgrade-job containers: - name: rancher-clusterctl-configmap-cleanup - image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} args: - delete - configmap diff --git a/rancher-turtles-chart/templates/deployment.yaml b/rancher-turtles-chart/templates/deployment.yaml index e2d2d09..6a0da62 100644 --- a/rancher-turtles-chart/templates/deployment.yaml +++ b/rancher-turtles-chart/templates/deployment.yaml @@ -26,7 +26,7 @@ spec: containers: - args: - --leader-elect - - --feature-gates=propagate-labels={{ index .Values "rancherTurtles" "features" "propagate-labels" "enabled"}},managementv3-cluster={{ index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled"}},rancher-kube-secret-patch={{ index .Values "rancherTurtles" "features" "rancher-kubeconfigs" "label"}} + - --feature-gates=addon-provider-fleet={{ index .Values "rancherTurtles" "features" "addon-provider-fleet" "enabled"}},agent-tls-mode={{ index .Values "rancherTurtles" "features" "agent-tls-mode" "enabled"}} {{- range .Values.rancherTurtles.managerArguments }} - {{ . }} {{- end }} @@ -67,10 +67,10 @@ spec: resources: limits: cpu: 500m - memory: 128Mi + memory: 256Mi requests: cpu: 10m - memory: 64Mi + memory: 128Mi serviceAccountName: rancher-turtles-manager terminationGracePeriodSeconds: 10 tolerations: diff --git a/rancher-turtles-chart/templates/metal3-infrastructure.yaml b/rancher-turtles-chart/templates/metal3-infrastructure.yaml index 122d9c4..e06700c 100644 --- a/rancher-turtles-chart/templates/metal3-infrastructure.yaml +++ b/rancher-turtles-chart/templates/metal3-infrastructure.yaml @@ -22,7 +22,7 @@ metadata: spec: providers: - name: metal3 - url: "https://github.com/metal3-io/cluster-api-provider-metal3/releases/v1.7.2/infrastructure-components.yaml" + url: "https://github.com/rancher-sandbox/cluster-api-provider-metal3/releases/v1.9.2/infrastructure-components.yaml" type: InfrastructureProvider --- apiVersion: turtles-capi.cattle.io/v1alpha1 diff --git a/rancher-turtles-chart/templates/post-delete-job.yaml b/rancher-turtles-chart/templates/post-delete-job.yaml index 277a6d2..9633e09 100644 --- a/rancher-turtles-chart/templates/post-delete-job.yaml +++ b/rancher-turtles-chart/templates/post-delete-job.yaml @@ -1,4 +1,4 @@ -{{- if index .Values "rancherTurtles" "features" "cluster-api-operator" "cleanup" }} +{{- if index .Values "cluster-api-operator" "cleanup" }} --- apiVersion: v1 kind: ServiceAccount @@ -41,7 +41,7 @@ metadata: subjects: - kind: ServiceAccount name: post-delete-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' roleRef: kind: ClusterRole name: post-delete-job-delete-webhooks @@ -62,7 +62,7 @@ spec: serviceAccountName: post-delete-job containers: - name: cluster-api-operator-mutatingwebhook-cleanup - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -90,7 +90,7 @@ spec: serviceAccountName: post-delete-job containers: - name: cluster-api-operator-validatingwebhook-cleanup - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -119,7 +119,7 @@ spec: restartPolicy: Never containers: - name: delete-capi-controller-manager - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -128,7 +128,7 @@ spec: - {{ index .Values "cluster-api-operator" "cluster-api" "core" "namespace" }} - --ignore-not-found=true - name: delete-capi-kubeadm-bootstrap-controller-manager - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -137,7 +137,7 @@ spec: - capi-kubeadm-bootstrap-system - --ignore-not-found=true - name: delete-capi-kubeadm-control-plane-controller-manager - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -146,7 +146,7 @@ spec: - capi-kubeadm-control-plane-system - --ignore-not-found=true - name: delete-rke2-kubeadm-bootstrap-controller-manager - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete @@ -155,7 +155,7 @@ spec: - {{ index .Values "cluster-api-operator" "cluster-api" "rke2" "bootstrap" "namespace" }} - --ignore-not-found=true - name: delete-rke2-control-plane-controller-manager - image: {{ index .Values "rancherTurtles" "features" "cluster-api-operator" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} command: ["kubectl"] args: - delete diff --git a/rancher-turtles-chart/templates/post-upgrade-job.yaml b/rancher-turtles-chart/templates/post-upgrade-job.yaml index 489f63c..b19a86e 100644 --- a/rancher-turtles-chart/templates/post-upgrade-job.yaml +++ b/rancher-turtles-chart/templates/post-upgrade-job.yaml @@ -1,10 +1,9 @@ -{{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster-migration" "enabled") true }} --- apiVersion: v1 kind: ServiceAccount metadata: name: post-upgrade-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": post-upgrade "helm.sh/hook-weight": "1" @@ -24,13 +23,6 @@ rules: verbs: - list - delete -- apiGroups: - - management.cattle.io - resources: - - clusters - verbs: - - list - - delete --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding @@ -42,7 +34,7 @@ metadata: subjects: - kind: ServiceAccount name: post-upgrade-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' roleRef: kind: ClusterRole name: post-upgrade-job-delete-clusters @@ -52,6 +44,7 @@ apiVersion: batch/v1 kind: Job metadata: name: post-upgrade-delete-clusters + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": post-upgrade "helm.sh/hook-weight": "2" @@ -62,17 +55,12 @@ spec: serviceAccountName: post-upgrade-job containers: - name: post-upgrade-delete-clusters - image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} args: - delete - {{- if eq (index .Values "rancherTurtles" "features" "managementv3-cluster" "enabled") true }} - clusters.provisioning.cattle.io - {{- else }} - - clusters.management.cattle.io - {{- end }} - --selector=cluster-api.cattle.io/owned - -A - --ignore-not-found=true - --wait restartPolicy: OnFailure -{{- end }} diff --git a/rancher-turtles-chart/templates/pre-delete-job.yaml b/rancher-turtles-chart/templates/pre-delete-job.yaml index 5a8ae84..c099b9f 100644 --- a/rancher-turtles-chart/templates/pre-delete-job.yaml +++ b/rancher-turtles-chart/templates/pre-delete-job.yaml @@ -1,10 +1,10 @@ -{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }} +{{- if index .Values "rancherTurtles" "rancherInstalled" }} --- apiVersion: v1 kind: ServiceAccount metadata: name: pre-delete-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": pre-delete "helm.sh/hook-weight": "-2" @@ -35,7 +35,7 @@ metadata: subjects: - kind: ServiceAccount name: pre-delete-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' roleRef: kind: ClusterRole name: pre-delete-job-delete-capiproviders @@ -45,7 +45,7 @@ apiVersion: batch/v1 kind: Job metadata: name: rancher-capiprovider-cleanup - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": pre-delete "helm.sh/hook-weight": "-1" @@ -56,7 +56,7 @@ spec: serviceAccountName: pre-delete-job containers: - name: rancher-capiprovider-cleanup - image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} args: - delete - capiproviders diff --git a/rancher-turtles-chart/templates/pre-install-job.yaml b/rancher-turtles-chart/templates/pre-install-job.yaml index 355fb31..00880d2 100644 --- a/rancher-turtles-chart/templates/pre-install-job.yaml +++ b/rancher-turtles-chart/templates/pre-install-job.yaml @@ -1,4 +1,3 @@ -{{- if index .Values "rancherTurtles" "features" "embedded-capi" "disabled" }} {{- if index .Values "rancherTurtles" "rancherInstalled"}} --- apiVersion: management.cattle.io/v3 @@ -11,14 +10,13 @@ metadata: spec: value: false {{- end }} -{{- end }} -{{- if index .Values "rancherTurtles" "features" "rancher-webhook" "cleanup" }} +{{- if index .Values "rancherTurtles" "rancherInstalled" }} --- apiVersion: v1 kind: ServiceAccount metadata: name: pre-install-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": pre-install "helm.sh/hook-weight": "1" @@ -49,7 +47,7 @@ metadata: subjects: - kind: ServiceAccount name: pre-install-job - namespace: rancher-turtles-system + namespace: '{{ .Values.rancherTurtles.namespace }}' roleRef: kind: ClusterRole name: pre-install-job-delete-webhooks @@ -59,6 +57,7 @@ apiVersion: batch/v1 kind: Job metadata: name: rancher-mutatingwebhook-cleanup + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": pre-install "helm.sh/hook-weight": "2" @@ -69,7 +68,7 @@ spec: serviceAccountName: pre-install-job containers: - name: rancher-mutatingwebhook-cleanup - image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} args: - delete - mutatingwebhookconfigurations.admissionregistration.k8s.io @@ -81,6 +80,7 @@ apiVersion: batch/v1 kind: Job metadata: name: rancher-validatingwebhook-cleanup + namespace: '{{ .Values.rancherTurtles.namespace }}' annotations: "helm.sh/hook": pre-install "helm.sh/hook-weight": "2" @@ -91,7 +91,7 @@ spec: serviceAccountName: pre-install-job containers: - name: rancher-validatingwebhook-cleanup - image: {{ index .Values "rancherTurtles" "features" "rancher-webhook" "kubectlImage" }} + image: {{ index .Values "rancherTurtles" "kubectlImage" }} args: - delete - validatingwebhookconfigurations.admissionregistration.k8s.io diff --git a/rancher-turtles-chart/templates/rancher-turtles-components.yaml b/rancher-turtles-chart/templates/rancher-turtles-components.yaml index 722d984..c6ef6ed 100644 --- a/rancher-turtles-chart/templates/rancher-turtles-components.yaml +++ b/rancher-turtles-chart/templates/rancher-turtles-components.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 helm.sh/resource-policy: keep name: capiproviders.turtles-capi.cattle.io spec: @@ -122,11 +122,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. @@ -154,11 +156,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -172,6 +176,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at @@ -216,11 +221,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. @@ -248,14 +255,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -319,11 +329,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -338,13 +350,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -353,13 +365,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -400,11 +412,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -424,6 +438,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -446,6 +461,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at @@ -496,11 +512,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -515,13 +533,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -530,13 +548,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -576,11 +594,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -600,6 +620,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -612,6 +633,7 @@ spec: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling @@ -671,11 +693,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -690,13 +714,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -705,13 +729,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -752,11 +776,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -776,6 +802,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -798,6 +825,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the anti-affinity requirements specified by this field are not met at @@ -848,11 +876,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -867,13 +897,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -882,13 +912,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -928,11 +958,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -952,6 +984,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -964,6 +997,7 @@ spec: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object containers: @@ -1025,10 +1059,13 @@ spec: description: The key to select. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -1092,10 +1129,13 @@ spec: key. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret @@ -1124,11 +1164,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry @@ -1140,6 +1178,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -1185,10 +1229,13 @@ spec: referenced object inside the same namespace. properties: name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -1259,7 +1306,6 @@ spec: CacheNamespace if specified restricts the manager's cache to watch objects in the desired namespace Defaults to all namespaces - Note: If a namespace is specified, controllers can still Watch for a cluster-scoped resource (e.g Node). For namespaced resources the cache will only hold objects from the desired namespace. @@ -1282,13 +1328,11 @@ spec: GroupKindConcurrency is a map from a Kind to the number of concurrent reconciliation allowed for that controller. - When a controller is registered within this manager using the builder utilities, users have to specify the type the controller reconciles in the For(...) call. If the object's kind passed matches one of the keys in this map, the concurrency for that controller is set to the number specified. - The key is expected to be consistent in form with GroupKind.String(), e.g. ReplicaSet in apps group (regardless of version) would be `ReplicaSet.apps`. type: object @@ -1567,11 +1611,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. @@ -1599,11 +1645,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -1616,6 +1664,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at @@ -1660,11 +1709,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: description: A list of node selector requirements by node's fields. @@ -1692,14 +1743,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -1762,11 +1816,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1781,13 +1837,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1796,13 +1852,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1842,11 +1898,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1866,6 +1924,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -1888,6 +1947,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the affinity requirements specified by this field are not met at @@ -1938,11 +1998,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1957,13 +2019,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -1972,13 +2034,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -2018,11 +2080,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2042,6 +2106,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -2054,6 +2119,7 @@ spec: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: description: Describes pod anti-affinity scheduling rules @@ -2112,11 +2178,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2131,13 +2199,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -2146,13 +2214,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -2192,11 +2260,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2216,6 +2286,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -2238,6 +2309,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: description: |- If the anti-affinity requirements specified by this field are not met at @@ -2288,11 +2360,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2307,13 +2381,13 @@ spec: description: |- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both matchLabelKeys and labelSelector. + Also, matchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -2322,13 +2396,13 @@ spec: description: |- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the - incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. - The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. - Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. + Also, mismatchLabelKeys cannot be set when labelSelector isn't set. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). items: type: string type: array @@ -2368,11 +2442,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2392,6 +2468,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: description: |- This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching @@ -2404,6 +2481,7 @@ spec: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object containers: @@ -2465,10 +2543,13 @@ spec: description: The key to select. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the ConfigMap @@ -2528,10 +2609,13 @@ spec: from. Must be a valid secret key. type: string name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string optional: description: Specify whether the Secret or @@ -2560,11 +2644,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in @@ -2576,6 +2658,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -2620,10 +2708,13 @@ spec: referenced object inside the same namespace. properties: name: + default: "" description: |- Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -2712,6 +2803,12 @@ spec: For example, the infrastructure name `aws` will fetch artifacts from https://github.com/kubernetes-sigs/cluster-api-provider-aws/releases. properties: + oci: + description: |- + OCI to be used for fetching the provider’s components and metadata from an OCI artifact. + You must set `providerSpec.Version` field for operator to pick up desired version of the release from GitHub. + If the providerSpec.Version is missing, latest provider version from clusterctl defaults is used. + type: string selector: description: |- Selector to be used for fetching provider’s components and metadata from @@ -2746,11 +2843,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -2769,6 +2868,9 @@ spec: desired version of the release from GitHub. type: string type: object + x-kubernetes-validations: + - message: Must specify one and only one of {oci, url, selector} + rule: '[has(self.oci), has(self.url), has(self.selector)].exists_one(x,x)' manager: description: Manager defines the properties that can be enabled on the controller manager for the provider. @@ -2778,7 +2880,6 @@ spec: CacheNamespace if specified restricts the manager's cache to watch objects in the desired namespace Defaults to all namespaces - Note: If a namespace is specified, controllers can still Watch for a cluster-scoped resource (e.g Node). For namespaced resources the cache will only hold objects from the desired namespace. @@ -2801,13 +2902,11 @@ spec: GroupKindConcurrency is a map from a Kind to the number of concurrent reconciliation allowed for that controller. - When a controller is registered within this manager using the builder utilities, users have to specify the type the controller reconciles in the For(...) call. If the object's kind passed matches one of the keys in this map, the concurrency for that controller is set to the number specified. - The key is expected to be consistent in form with GroupKind.String(), e.g. ReplicaSet in apps group (regardless of version) would be `ReplicaSet.apps`. type: object @@ -3033,20 +3132,20 @@ spec: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -3102,7 +3201,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 helm.sh/resource-policy: keep name: clusterctlconfigs.turtles-capi.cattle.io spec: @@ -3276,19 +3375,8 @@ rules: resources: - configmaps - events - - secrets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - namespaces + - secrets verbs: - create - delete @@ -3303,7 +3391,6 @@ rules: - clusters - clusters/status verbs: - - create - get - list - patch @@ -3319,6 +3406,7 @@ rules: - update - apiGroups: - infrastructure.cluster.x-k8s.io + - operator.cluster.x-k8s.io resources: - '*' verbs: @@ -3333,15 +3421,6 @@ rules: - management.cattle.io resources: - clusterregistrationtokens - - clusterregistrationtokens/status - verbs: - - get - - list - - watch - - create -- apiGroups: - - management.cattle.io - resources: - clusters - clusters/status verbs: @@ -3353,12 +3432,29 @@ rules: - patch - update - watch +- apiGroups: + - management.cattle.io + resources: + - clusterregistrationtokens/status + - settings + verbs: + - get + - list + - watch - apiGroups: - provisioning.cattle.io resources: - clusters - clusters/status verbs: + - get + - list + - watch +- apiGroups: + - turtles-capi.cattle.io + resources: + - capiproviders + verbs: - create - delete - get @@ -3369,28 +3465,37 @@ rules: - apiGroups: - turtles-capi.cattle.io resources: - - capiproviders + - capiproviders/finalizers + verbs: + - update +- apiGroups: + - turtles-capi.cattle.io + resources: - capiproviders/status + verbs: + - get + - patch + - update +- apiGroups: + - turtles-capi.cattle.io + resources: - clusterctlconfigs - clusterctlconfigs/status verbs: - get - list - - watch - patch - - update + - watch - apiGroups: - - operator.cluster.x-k8s.io + - turtles-capi.cattle.io resources: - - '*' + - clusterctlconfigs/finalizers verbs: - - create - get - list - - watch - patch - update - - create + - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/rancher-turtles-chart/templates/rancher-turtles-exp-etcdrestore-components.yaml b/rancher-turtles-chart/templates/rancher-turtles-exp-etcdrestore-components.yaml index d305dca..c0e7119 100644 --- a/rancher-turtles-chart/templates/rancher-turtles-exp-etcdrestore-components.yaml +++ b/rancher-turtles-chart/templates/rancher-turtles-exp-etcdrestore-components.yaml @@ -4,7 +4,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: turtles-capi.cattle.io: etcd-restore name: etcdmachinesnapshots.turtles-capi.cattle.io @@ -116,7 +116,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: turtles-capi.cattle.io: etcd-restore name: etcdsnapshotrestores.turtles-capi.cattle.io @@ -195,20 +195,20 @@ spec: description: |- 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. - This field may not be empty. + This field may be empty. type: string severity: 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. The Severity field MUST be set only when Status=False. type: string status: - description: Status of the condition, one of True, False, Unknown. + description: status of the condition, one of True, False, Unknown. type: string type: description: |- - 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 can be useful (see .node.status.conditions), the ability to deconflict is important. type: string @@ -235,7 +235,7 @@ kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: {{ index .Values "rancherTurtles" "namespace" }}/rancher-turtles-etcdsnapshotrestore-serving-cert - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 labels: turtles-capi.cattle.io: etcd-restore name: rke2etcdmachinesnapshotconfigs.turtles-capi.cattle.io @@ -438,29 +438,7 @@ rules: - cluster.x-k8s.io resources: - clusters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cluster.x-k8s.io - resources: - clusters/status - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cluster.x-k8s.io - resources: - machines verbs: - create @@ -499,57 +477,7 @@ rules: - turtles-capi.cattle.io resources: - etcdmachinesnapshots - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - turtles-capi.cattle.io - resources: - - etcdmachinesnapshots/finalizers - verbs: - - update -- apiGroups: - - turtles-capi.cattle.io - resources: - - etcdmachinesnapshots/status - verbs: - - get - - patch - - update -- apiGroups: - - turtles-capi.cattle.io - resources: - etcdsnapshotrestores - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - turtles-capi.cattle.io - resources: - - etcdsnapshotrestores/finalizers - verbs: - - update -- apiGroups: - - turtles-capi.cattle.io - resources: - - etcdsnapshotrestores/status - verbs: - - get - - patch - - update -- apiGroups: - - turtles-capi.cattle.io - resources: - rke2etcdmachinesnapshotconfigs verbs: - create @@ -562,12 +490,16 @@ rules: - apiGroups: - turtles-capi.cattle.io resources: + - etcdmachinesnapshots/finalizers + - etcdsnapshotrestores/finalizers - rke2etcdmachinesnapshotconfigs/finalizers verbs: - update - apiGroups: - turtles-capi.cattle.io resources: + - etcdmachinesnapshots/status + - etcdsnapshotrestores/status - rke2etcdmachinesnapshotconfigs/status verbs: - get diff --git a/rancher-turtles-chart/values.yaml b/rancher-turtles-chart/values.yaml index cd93abd..6a50bf3 100644 --- a/rancher-turtles-chart/values.yaml +++ b/rancher-turtles-chart/values.yaml @@ -1,35 +1,24 @@ rancherTurtles: image: registry.rancher.com/rancher/rancher/turtles - imageVersion: v0.14.1 + imageVersion: v0.16.0 imagePullPolicy: IfNotPresent namespace: rancher-turtles-system managerArguments: [] imagePullSecrets: [] - rancherInstalled: true + rancherInstalled: false + kubectlImage: registry.suse.com/edge/3.2/kubectl:1.30.3 features: - cluster-api-operator: - cleanup: true - kubectlImage: rancher/kubectl:v1.30.3 - embedded-capi: - disabled: false - rancher-webhook: - cleanup: false - kubectlImage: rancher/kubectl:v1.30.3 - rancher-kubeconfigs: - label: false - managementv3-cluster: - enabled: true - managementv3-cluster-migration: - enabled: false - propagate-labels: - enabled: false etcd-snapshot-restore: enabled: false image: registry.rancher.com/rancher/rancher/turtles - imageVersion: v0.14.1 + imageVersion: v0.16.0 imagePullPolicy: IfNotPresent + # beta feature, see documentation for more information on feature stages addon-provider-fleet: enabled: false + # alpha feature, see documentation for more information on feature stages + agent-tls-mode: + enabled: false cluster-api-operator: enabled: true cert-manager: @@ -53,6 +42,7 @@ cluster-api-operator: - mountPath: /config name: clusterctl-config readOnly: true + cleanup: true cluster-api: enabled: true configSecret: @@ -60,30 +50,34 @@ cluster-api-operator: defaultName: capi-env-variables core: namespace: capi-system + imageUrl: "" fetchConfig: url: "" selector: "" rke2: enabled: true + version: "" bootstrap: namespace: rke2-bootstrap-system + imageUrl: "" fetchConfig: url: "" selector: "" controlPlane: namespace: rke2-control-plane-system + imageUrl: "" fetchConfig: url: "" selector: "" metal3: enabled: true - version: "v1.8.2" + version: "v1.9.2" infrastructure: namespace: capm3-system - imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-controller:v1.8.2" + imageUrl: "registry.suse.com/rancher/cluster-api-provider-metal3:v1.9.2" fetchConfig: url: "" selector: "" ipam: namespace: capm3-system - imageUrl: "registry.rancher.com/rancher/cluster-api-metal3-ipam-controller:v1.8.1" + imageUrl: "registry.suse.com/rancher/ip-address-manager:v1.9.3"