From fe7d04699e00e41b8ffae71205b9ca9eca87fc7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 11:10:41 +0200 Subject: [PATCH 01/13] add support for release CRs --- CHANGELOG.md | 11 +++++++++++ helm/cluster-vsphere/README.md | 10 +++++++++- helm/cluster-vsphere/ci/ci-values.yaml | 8 ++++++++ ...le-mirrors-with-auth-and-local-caching.yaml | 8 ++++++++ helm/cluster-vsphere/ci/test-wc-values.yaml | 8 ++++++++ helm/cluster-vsphere/templates/_helpers.tpl | 1 + .../cloud-provider-vsphere-helmrelease.yaml | 9 +++++---- helm/cluster-vsphere/values.schema.json | 18 +++++++++++++++++- helm/cluster-vsphere/values.yaml | 2 ++ 9 files changed, 69 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02b2210c..bd2334c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### :warning: **Breaking change** :warning: + + - Support for Release CR's. + +
+ Migration steps + + * In ConfigMap `-userconfig` set `.Values.global.release` to the release version, e.g. `27.0.0`. + * In App `` set the `version` to an empty string. +
+ ## [0.64.0] - 2024-09-24 ### Changed diff --git a/helm/cluster-vsphere/README.md b/helm/cluster-vsphere/README.md index bc2375d0..d5a2d0ce 100644 --- a/helm/cluster-vsphere/README.md +++ b/helm/cluster-vsphere/README.md @@ -174,12 +174,20 @@ Properties within the `.global.providerSpecific` object | `global.providerSpecific.vcenter.username` | **Username** - Username for the VSphere API.|**Type:** `string`
| | `global.providerSpecific.vcenter.zone` | **Zone** - Category name in VSphere for topology.kubernetes.io/zone labels.|**Type:** `string`
| +### Release +Properties within the `.global.release` object +Information about the workload cluster release. + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.release.version` | **Version**|**Type:** `string`
| + ### Other | **Property** | **Description** | **More Details** | | :----------- | :-------------- | :--------------- | | `baseDomain` | **Base DNS domain**|**Type:** `string`
| -| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| +| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"useReleases":true,"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| | `cluster-shared` | **Library chart**|**Type:** `object`
| | `managementCluster` | **Management cluster name**|**Type:** `string`
| | `provider` | **Provider name**|**Type:** `string`
| diff --git a/helm/cluster-vsphere/ci/ci-values.yaml b/helm/cluster-vsphere/ci/ci-values.yaml index 983d4b9d..7e3fab61 100644 --- a/helm/cluster-vsphere/ci/ci-values.yaml +++ b/helm/cluster-vsphere/ci/ci-values.yaml @@ -47,3 +47,11 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" + release: + version: v27.0.0 + +cluster: + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true diff --git a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml index 6b42878d..c67a7e76 100644 --- a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml +++ b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml @@ -63,3 +63,11 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" + release: + version: v27.0.0 + +cluster: + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true diff --git a/helm/cluster-vsphere/ci/test-wc-values.yaml b/helm/cluster-vsphere/ci/test-wc-values.yaml index 983d4b9d..7e3fab61 100644 --- a/helm/cluster-vsphere/ci/test-wc-values.yaml +++ b/helm/cluster-vsphere/ci/test-wc-values.yaml @@ -47,3 +47,11 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" + release: + version: v27.0.0 + +cluster: + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true diff --git a/helm/cluster-vsphere/templates/_helpers.tpl b/helm/cluster-vsphere/templates/_helpers.tpl index 94a948fe..52b4cd13 100644 --- a/helm/cluster-vsphere/templates/_helpers.tpl +++ b/helm/cluster-vsphere/templates/_helpers.tpl @@ -52,6 +52,7 @@ https://github.com/giantswarm/giantswarm/issues/22441 {{- include "labels.selector" . }} app.kubernetes.io/version: {{ $.Chart.Version | quote }} helm.sh/chart: {{ include "chart" . | quote }} +release.giantswarm.io/version: {{ .Values.global.release.version | trimPrefix "v" | quote }} {{- end -}} {{/* diff --git a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml index f3b364fb..08d03fb1 100644 --- a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml +++ b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml @@ -17,9 +17,10 @@ spec: chart: spec: chart: cloud-provider-vsphere - # used by renovate - # repo: giantswarm/cloud-provider-vsphere-app - version: 1.11.0 + {{- $_ := set $ "appName" "cloud-provider-vsphere + version: {{ $appVersion }}" }} + {{- $appVersion := include "cluster.app.version" $ }} + version: {{ $appVersion }} sourceRef: kind: HelmRepository name: {{ include "resource.default.name" $ }}-default @@ -64,4 +65,4 @@ spec: {{- if .storagePolicyName }} storageProfileName: {{ .storagePolicyName }} {{- end }} - {{- end }} \ No newline at end of file + {{- end }} diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index f5f07d9c..a6608ea5 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -377,6 +377,7 @@ "machinePoolResourcesEnabled": true, "nodePoolKind": "MachineDeployment" }, + "useReleases": true, "workers": { "defaultNodePools": { "def00": { @@ -411,7 +412,8 @@ "type": "object", "title": "Properties that are available to all charts and subcharts", "required": [ - "metadata" + "metadata", + "releases" ], "properties": { "connectivity": { @@ -1017,6 +1019,20 @@ } } } + }, + "release": { + "type": "object", + "title": "Release", + "description": "Information about the workload cluster release.", + "required": [ + "version" + ], + "properties": { + "version": { + "type": "string", + "title": "Version" + } + } } } }, diff --git a/helm/cluster-vsphere/values.yaml b/helm/cluster-vsphere/values.yaml index 33e87b91..80edb250 100644 --- a/helm/cluster-vsphere/values.yaml +++ b/helm/cluster-vsphere/values.yaml @@ -170,6 +170,7 @@ cluster: machineHealthCheckResourceEnabled: true machinePoolResourcesEnabled: true nodePoolKind: MachineDeployment + useReleases: true workers: defaultNodePools: def00: @@ -261,6 +262,7 @@ global: reclaimPolicy: Delete storagePolicyName: "" vcenter: {} + release: {} internal: kubectlImage: name: giantswarm/kubectl From 46f6493eb757e38cc21ee8757c2b4a04a93b85cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 11:15:40 +0200 Subject: [PATCH 02/13] add support for release CRs --- helm/cluster-vsphere/README.md | 8 +++++++- helm/cluster-vsphere/values.schema.json | 4 ++-- helm/cluster-vsphere/values.yaml | 1 - 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/helm/cluster-vsphere/README.md b/helm/cluster-vsphere/README.md index d5a2d0ce..b92e355d 100644 --- a/helm/cluster-vsphere/README.md +++ b/helm/cluster-vsphere/README.md @@ -146,6 +146,12 @@ Groups of worker nodes with identical configuration. | `global.nodePools.worker.resourcePool` | **VSphere resource pool name**|**Type:** `string`
**Default:** `"*/Resources"`| | `global.nodePools.worker.template` | **VM template**|**Type:** `string`
**Default:** `"flatcar-stable-3815.2.2-kube-v1.27.14-gs"`| +### Other global + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.useReleases` |**None**|| + ### Pod Security Standards Properties within the `.global.podSecurityStandards` object @@ -187,7 +193,7 @@ Information about the workload cluster release. | **Property** | **Description** | **More Details** | | :----------- | :-------------- | :--------------- | | `baseDomain` | **Base DNS domain**|**Type:** `string`
| -| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"useReleases":true,"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| +| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| | `cluster-shared` | **Library chart**|**Type:** `object`
| | `managementCluster` | **Management cluster name**|**Type:** `string`
| | `provider` | **Provider name**|**Type:** `string`
| diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index a6608ea5..dc5f0a14 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -377,7 +377,6 @@ "machinePoolResourcesEnabled": true, "nodePoolKind": "MachineDeployment" }, - "useReleases": true, "workers": { "defaultNodePools": { "def00": { @@ -1033,7 +1032,8 @@ "title": "Version" } } - } + }, + "useReleases": true } }, "internal": { diff --git a/helm/cluster-vsphere/values.yaml b/helm/cluster-vsphere/values.yaml index 80edb250..36dc7332 100644 --- a/helm/cluster-vsphere/values.yaml +++ b/helm/cluster-vsphere/values.yaml @@ -170,7 +170,6 @@ cluster: machineHealthCheckResourceEnabled: true machinePoolResourcesEnabled: true nodePoolKind: MachineDeployment - useReleases: true workers: defaultNodePools: def00: From 25187d9073b8f40fef35b358366a87932edfb740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 11:17:58 +0200 Subject: [PATCH 03/13] add support for release CRs --- helm/cluster-vsphere/ci/ci-values.yaml | 2 +- .../ci/test-multiple-mirrors-with-auth-and-local-caching.yaml | 2 +- helm/cluster-vsphere/ci/test-wc-values.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helm/cluster-vsphere/ci/ci-values.yaml b/helm/cluster-vsphere/ci/ci-values.yaml index 7e3fab61..591cb5d7 100644 --- a/helm/cluster-vsphere/ci/ci-values.yaml +++ b/helm/cluster-vsphere/ci/ci-values.yaml @@ -47,7 +47,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - release: + releases: version: v27.0.0 cluster: diff --git a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml index c67a7e76..88a66b33 100644 --- a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml +++ b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml @@ -63,7 +63,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - release: + releases: version: v27.0.0 cluster: diff --git a/helm/cluster-vsphere/ci/test-wc-values.yaml b/helm/cluster-vsphere/ci/test-wc-values.yaml index 7e3fab61..591cb5d7 100644 --- a/helm/cluster-vsphere/ci/test-wc-values.yaml +++ b/helm/cluster-vsphere/ci/test-wc-values.yaml @@ -47,7 +47,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - release: + releases: version: v27.0.0 cluster: From 662b1af18991e19fba5644dcbb4e98376991df3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 11:31:27 +0200 Subject: [PATCH 04/13] add support for release CRs --- helm/cluster-vsphere/ci/ci-values.yaml | 2 +- .../ci/test-multiple-mirrors-with-auth-and-local-caching.yaml | 2 +- helm/cluster-vsphere/ci/test-wc-values.yaml | 2 +- helm/cluster-vsphere/values.schema.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/cluster-vsphere/ci/ci-values.yaml b/helm/cluster-vsphere/ci/ci-values.yaml index 591cb5d7..7e3fab61 100644 --- a/helm/cluster-vsphere/ci/ci-values.yaml +++ b/helm/cluster-vsphere/ci/ci-values.yaml @@ -47,7 +47,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - releases: + release: version: v27.0.0 cluster: diff --git a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml index 88a66b33..c67a7e76 100644 --- a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml +++ b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml @@ -63,7 +63,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - releases: + release: version: v27.0.0 cluster: diff --git a/helm/cluster-vsphere/ci/test-wc-values.yaml b/helm/cluster-vsphere/ci/test-wc-values.yaml index 591cb5d7..7e3fab61 100644 --- a/helm/cluster-vsphere/ci/test-wc-values.yaml +++ b/helm/cluster-vsphere/ci/test-wc-values.yaml @@ -47,7 +47,7 @@ global: thumbprint: "F7:CF:F9:E5:99:39:FF:C1:D7:14:F1:3F:8A:42:21:95:3B:A1:6E:16" region: "k8s-region" zone: "k8s-zone" - releases: + release: version: v27.0.0 cluster: diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index dc5f0a14..529baa9b 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -412,7 +412,7 @@ "title": "Properties that are available to all charts and subcharts", "required": [ "metadata", - "releases" + "release" ], "properties": { "connectivity": { From 2f93bc45346766336dd41aab6fc1e3ebee8468cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 11:40:33 +0200 Subject: [PATCH 05/13] add support for release CRs --- helm/cluster-vsphere/README.md | 8 +------- helm/cluster-vsphere/values.schema.json | 4 ++-- helm/cluster-vsphere/values.yaml | 1 + 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/helm/cluster-vsphere/README.md b/helm/cluster-vsphere/README.md index b92e355d..d5a2d0ce 100644 --- a/helm/cluster-vsphere/README.md +++ b/helm/cluster-vsphere/README.md @@ -146,12 +146,6 @@ Groups of worker nodes with identical configuration. | `global.nodePools.worker.resourcePool` | **VSphere resource pool name**|**Type:** `string`
**Default:** `"*/Resources"`| | `global.nodePools.worker.template` | **VM template**|**Type:** `string`
**Default:** `"flatcar-stable-3815.2.2-kube-v1.27.14-gs"`| -### Other global - -| **Property** | **Description** | **More Details** | -| :----------- | :-------------- | :--------------- | -| `global.useReleases` |**None**|| - ### Pod Security Standards Properties within the `.global.podSecurityStandards` object @@ -193,7 +187,7 @@ Information about the workload cluster release. | **Property** | **Description** | **More Details** | | :----------- | :-------------- | :--------------- | | `baseDomain` | **Base DNS domain**|**Type:** `string`
| -| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| +| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"useReleases":true,"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| | `cluster-shared` | **Library chart**|**Type:** `object`
| | `managementCluster` | **Management cluster name**|**Type:** `string`
| | `provider` | **Provider name**|**Type:** `string`
| diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index 529baa9b..5e3d7433 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -377,6 +377,7 @@ "machinePoolResourcesEnabled": true, "nodePoolKind": "MachineDeployment" }, + "useReleases": true, "workers": { "defaultNodePools": { "def00": { @@ -1032,8 +1033,7 @@ "title": "Version" } } - }, - "useReleases": true + } } }, "internal": { diff --git a/helm/cluster-vsphere/values.yaml b/helm/cluster-vsphere/values.yaml index 36dc7332..80edb250 100644 --- a/helm/cluster-vsphere/values.yaml +++ b/helm/cluster-vsphere/values.yaml @@ -170,6 +170,7 @@ cluster: machineHealthCheckResourceEnabled: true machinePoolResourcesEnabled: true nodePoolKind: MachineDeployment + useReleases: true workers: defaultNodePools: def00: From 5bbff7389f76479173daeeb20ad4c59d8ca5753a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 12:05:41 +0200 Subject: [PATCH 06/13] add support for release CRs --- .../helmreleases/cloud-provider-vsphere-helmrelease.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml index 08d03fb1..03380ee6 100644 --- a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml +++ b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml @@ -17,10 +17,9 @@ spec: chart: spec: chart: cloud-provider-vsphere - {{- $_ := set $ "appName" "cloud-provider-vsphere - version: {{ $appVersion }}" }} + {{- $_ := set $ "appName" "cloud-provider-vsphere" {{- $appVersion := include "cluster.app.version" $ }} - version: {{ $appVersion }} + version: {{ $appVersion }}" }} sourceRef: kind: HelmRepository name: {{ include "resource.default.name" $ }}-default From 6926e27c7232081561b57fb7b7161e9d7b7e52e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 12:06:34 +0200 Subject: [PATCH 07/13] add support for release CRs --- .../helmreleases/cloud-provider-vsphere-helmrelease.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml index 03380ee6..9eacd762 100644 --- a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml +++ b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml @@ -17,7 +17,7 @@ spec: chart: spec: chart: cloud-provider-vsphere - {{- $_ := set $ "appName" "cloud-provider-vsphere" + {{- $_ := set $ "appName" "cloud-provider-vsphere" }} {{- $appVersion := include "cluster.app.version" $ }} version: {{ $appVersion }}" }} sourceRef: From 8d323c35f33741f54bbe291261f7a3af7a427075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 12:12:39 +0200 Subject: [PATCH 08/13] add support for release CRs --- .../helmreleases/cloud-provider-vsphere-helmrelease.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml index 9eacd762..7a32ba16 100644 --- a/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml +++ b/helm/cluster-vsphere/templates/helmreleases/cloud-provider-vsphere-helmrelease.yaml @@ -19,7 +19,7 @@ spec: chart: cloud-provider-vsphere {{- $_ := set $ "appName" "cloud-provider-vsphere" }} {{- $appVersion := include "cluster.app.version" $ }} - version: {{ $appVersion }}" }} + version: {{ $appVersion }} sourceRef: kind: HelmRepository name: {{ include "resource.default.name" $ }}-default From 3f8dd6331f18146f4eac8cd4fae53422d171afba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Thu, 26 Sep 2024 12:25:51 +0200 Subject: [PATCH 09/13] add support for release CRs --- helm/cluster-vsphere/ci/ci-values.yaml | 10 +++++----- ...t-multiple-mirrors-with-auth-and-local-caching.yaml | 10 +++++----- helm/cluster-vsphere/ci/test-wc-values.yaml | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/helm/cluster-vsphere/ci/ci-values.yaml b/helm/cluster-vsphere/ci/ci-values.yaml index 7e3fab61..45d0ff46 100644 --- a/helm/cluster-vsphere/ci/ci-values.yaml +++ b/helm/cluster-vsphere/ci/ci-values.yaml @@ -48,10 +48,10 @@ global: region: "k8s-region" zone: "k8s-zone" release: - version: v27.0.0 + version: v27.0.0 cluster: - internal: - ephemeralConfiguration: - offlineTesting: - renderWithoutReleaseResource: true + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true diff --git a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml index c67a7e76..41757147 100644 --- a/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml +++ b/helm/cluster-vsphere/ci/test-multiple-mirrors-with-auth-and-local-caching.yaml @@ -64,10 +64,10 @@ global: region: "k8s-region" zone: "k8s-zone" release: - version: v27.0.0 + version: v27.0.0 cluster: - internal: - ephemeralConfiguration: - offlineTesting: - renderWithoutReleaseResource: true + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true diff --git a/helm/cluster-vsphere/ci/test-wc-values.yaml b/helm/cluster-vsphere/ci/test-wc-values.yaml index 7e3fab61..45d0ff46 100644 --- a/helm/cluster-vsphere/ci/test-wc-values.yaml +++ b/helm/cluster-vsphere/ci/test-wc-values.yaml @@ -48,10 +48,10 @@ global: region: "k8s-region" zone: "k8s-zone" release: - version: v27.0.0 + version: v27.0.0 cluster: - internal: - ephemeralConfiguration: - offlineTesting: - renderWithoutReleaseResource: true + internal: + ephemeralConfiguration: + offlineTesting: + renderWithoutReleaseResource: true From 1c0ecf27bfb5e193a3e48c4e847749d47ca971e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Wed, 9 Oct 2024 13:34:21 +0200 Subject: [PATCH 10/13] add support for release CRs --- helm/cluster-vsphere/README.md | 2 +- helm/cluster-vsphere/values.schema.json | 1 - helm/cluster-vsphere/values.yaml | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/helm/cluster-vsphere/README.md b/helm/cluster-vsphere/README.md index 27c971fc..1730ccd3 100644 --- a/helm/cluster-vsphere/README.md +++ b/helm/cluster-vsphere/README.md @@ -193,7 +193,7 @@ Information about the workload cluster release. | **Property** | **Description** | **More Details** | | :----------- | :-------------- | :--------------- | | `baseDomain` | **Base DNS domain**|**Type:** `string`
| -| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"kubernetesVersion":"1.27.14","pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"useReleases":true,"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| +| `cluster` | **Cluster** - Helm values for the provider-independent cluster chart.|**Type:** `object`
**Default:** `{"internal":{"advancedConfiguration":{"controlPlane":{"apiServer":{"extraArgs":{"requestheader-allowed-names":"front-proxy-client"}}}}},"providerIntegration":{"apps":{"capiNodeLabeler":{"enable":true},"certExporter":{"configTemplateName":"vSphereCertExporterHelmValues","enable":true},"certManager":{"configTemplateName":"vSphereCertManagerHelmValues","enable":true},"chartOperatorExtensions":{"enable":true},"cilium":{"configTemplateName":"vSphereCiliumHelmValues","enable":true},"ciliumServiceMonitors":{"enable":true},"coreDns":{"enable":true},"etcdKubernetesResourcesCountExporter":{"enable":true},"k8sDnsNodeCache":{"enable":true},"metricsServer":{"enable":true},"netExporter":{"enable":true},"networkPolicies":{"configTemplateName":"vSphereNetworkPoliciesHelmValues","enable":true},"nodeExporter":{"configTemplateName":"vSphereNodeExporterHelmValues","enable":true},"observabilityBundle":{"enable":true},"observabilityPolicies":{"enable":true},"securityBundle":{"enable":true},"teleportKubeAgent":{"enable":true},"verticalPodAutoscaler":{"enable":true},"verticalPodAutoscalerCrd":{"enable":true}},"controlPlane":{"kubeadmConfig":{"files":[{"contentFrom":{"secret":{"key":"content","name":"kubevip-pod","prependClusterNameAsPrefix":true}},"path":"/etc/kubernetes/manifests/kube-vip.yaml","permissions":"0600"}]},"resources":{"infrastructureMachineTemplate":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"infrastructureMachineTemplateSpecTemplateName":"controlplane-vspheremachinetemplate-spec"}},"environmentVariables":{"hostName":"COREOS_CUSTOM_HOSTNAME","ipv4":"COREOS_CUSTOM_IPV4"},"kubeadmConfig":{"enableGiantswarmUser":true,"files":[{"contentFrom":{"secret":{"key":"set-hostname.sh","name":"provider-specific-files-1","prependClusterNameAsPrefix":true}},"path":"/opt/bin/set-hostname.sh","permissions":"0755"}],"ignition":{"containerLinuxConfig":{"additionalConfig":{"systemd":{"units":[{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"VMWare metadata agent"}},"dropins":[{"contents":"[Unit]\nAfter=nss-lookup.target\nAfter=network-online.target\nWants=network-online.target\n[Service]\nType=oneshot\nRestart=on-failure\nRemainAfterExit=yes\nEnvironment=OUTPUT=/run/metadata/coreos\nExecStart=/usr/bin/mkdir --parent /run/metadata\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_HOSTNAME=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.metadata\" | base64 -d | awk \\'/local-hostname/ {print $2}\\' | tr -d \\'\"\\')\" \u003e\u003e ${OUTPUT}'\nExecStart=/usr/bin/bash -cv 'echo \"COREOS_CUSTOM_IPV4=$(\"$(find /usr/bin /usr/share/oem -name vmtoolsd -type f -executable 2\u003e/dev/null | head -n 1)\" --cmd \"info-get guestinfo.ip\")\" \u003e\u003e ${OUTPUT}'","name":"10-coreos-metadata.conf"}],"enabled":true,"name":"coreos-metadata.service"},{"contents":{"install":{"wantedBy":["multi-user.target"]},"unit":{"description":"Set machine hostname"}},"dropins":[{"contents":"[Unit]\nRequires=coreos-metadata.service\nAfter=coreos-metadata.service\nBefore=teleport.service\n[Service]\nType=oneshot\nRemainAfterExit=yes\nEnvironmentFile=/run/metadata/coreos\nExecStart=/opt/bin/set-hostname.sh","name":"10-set-hostname.conf"}],"enabled":true,"name":"set-hostname.service"},{"contents":{"install":{"wantedBy":["default.target"]},"unit":{"description":"Disable TCP segmentation offloading"}},"dropins":[{"contents":"[Unit]\nAfter=network.target\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-csum-segmentation off\nExecStart=/usr/sbin/ethtool -K ens192 tx-udp_tnl-segmentation off","name":"10-ethtool-segmentation.conf"}],"enabled":true,"name":"ethtool-segmentation.service"}]}}}},"postKubeadmCommands":["usermod -aG root nobody"]},"pauseProperties":{"global.connectivity.network.controlPlaneEndpoint.host":""},"provider":"vsphere","resourcesApi":{"bastionResourceEnabled":false,"cleanupHelmReleaseResourcesEnabled":true,"clusterResourceEnabled":true,"controlPlaneResourceEnabled":true,"helmRepositoryResourcesEnabled":true,"infrastructureCluster":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereCluster","version":"v1beta1"},"infrastructureMachinePool":{"group":"infrastructure.cluster.x-k8s.io","kind":"VSphereMachineTemplate","version":"v1beta1"},"machineHealthCheckResourceEnabled":true,"machinePoolResourcesEnabled":true,"nodePoolKind":"MachineDeployment"},"useReleases":true,"workers":{"defaultNodePools":{"def00":{"cloneMode":"linkedClone","machineHealthCheck":{"enabled":true,"maxUnhealthy":"40%","nodeStartupTimeout":"20m0s","unhealthyNotReadyTimeout":"10m0s","unhealthyUnknownTimeout":"10m0s"},"memoryMiB":16896,"network":{},"numCPUs":6,"replicas":2,"resourcePool":"*/Resources","template":"flatcar-stable-3815.2.2-kube-v1.27.14-gs"}},"resources":{"infrastructureMachineTemplateSpecTemplateName":"worker-vspheremachinetemplate-spec"}}}}`| | `cluster-shared` | **Library chart**|**Type:** `object`
| | `managementCluster` | **Management cluster name**|**Type:** `string`
| | `provider` | **Provider name**|**Type:** `string`
| diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index f85c1a57..894e5040 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -352,7 +352,6 @@ "usermod -aG root nobody" ] }, - "kubernetesVersion": "1.27.14", "pauseProperties": { "global.connectivity.network.controlPlaneEndpoint.host": "" }, diff --git a/helm/cluster-vsphere/values.yaml b/helm/cluster-vsphere/values.yaml index 80edb250..22292ec4 100644 --- a/helm/cluster-vsphere/values.yaml +++ b/helm/cluster-vsphere/values.yaml @@ -149,7 +149,6 @@ cluster: name: ethtool-segmentation.service postKubeadmCommands: - usermod -aG root nobody - kubernetesVersion: 1.27.14 pauseProperties: global.connectivity.network.controlPlaneEndpoint.host: "" provider: vsphere From 078501f2c87b8096f0c2cad341399598d34021a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Wed, 9 Oct 2024 13:39:50 +0200 Subject: [PATCH 11/13] add support for release CRs --- helm/cluster-vsphere/README.md | 1 - helm/cluster-vsphere/values.schema.json | 6 ------ helm/cluster-vsphere/values.yaml | 1 - 3 files changed, 8 deletions(-) diff --git a/helm/cluster-vsphere/README.md b/helm/cluster-vsphere/README.md index 1730ccd3..9d8b228c 100644 --- a/helm/cluster-vsphere/README.md +++ b/helm/cluster-vsphere/README.md @@ -13,7 +13,6 @@ Properties within the `.internal` top-level object | `internal.kubectlImage.name` | **Repository**|**Type:** `string`
**Default:** `"giantswarm/kubectl"`| | `internal.kubectlImage.registry` | **Registry**|**Type:** `string`
**Default:** `"gsoci.azurecr.io"`| | `internal.kubectlImage.tag` | **Tag**|**Type:** `string`
**Default:** `"1.27.14"`| -| `internal.kubernetesVersion` | **Kubernetes version** - Kubernetes version to deploy. Must match the version available in the image defined at template.|**Type:** `string`
**Default:** `"v1.27.14"`| | `internal.sandboxContainerImage` | **Sandbox Container image**|**Type:** `object`
| | `internal.sandboxContainerImage.name` | **Repository**|**Type:** `string`
**Default:** `"giantswarm/pause"`| | `internal.sandboxContainerImage.registry` | **Registry**|**Type:** `string`
**Default:** `"gsoci.azurecr.io"`| diff --git a/helm/cluster-vsphere/values.schema.json b/helm/cluster-vsphere/values.schema.json index 894e5040..871e2f9d 100644 --- a/helm/cluster-vsphere/values.schema.json +++ b/helm/cluster-vsphere/values.schema.json @@ -1067,12 +1067,6 @@ } } }, - "kubernetesVersion": { - "type": "string", - "title": "Kubernetes version", - "description": "Kubernetes version to deploy. Must match the version available in the image defined at template.", - "default": "v1.27.14" - }, "sandboxContainerImage": { "type": "object", "title": "Sandbox Container image", diff --git a/helm/cluster-vsphere/values.yaml b/helm/cluster-vsphere/values.yaml index 22292ec4..43b407f0 100644 --- a/helm/cluster-vsphere/values.yaml +++ b/helm/cluster-vsphere/values.yaml @@ -267,7 +267,6 @@ internal: name: giantswarm/kubectl registry: gsoci.azurecr.io tag: 1.27.14 - kubernetesVersion: v1.27.14 sandboxContainerImage: name: giantswarm/pause registry: gsoci.azurecr.io From 70b902873f5bc0f2af306af4a1253794689f6edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nick=20J=C3=BCttner?= Date: Wed, 9 Oct 2024 14:14:22 +0200 Subject: [PATCH 12/13] updating cluster chart --- helm/cluster-vsphere/Chart.lock | 6 +++--- helm/cluster-vsphere/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/cluster-vsphere/Chart.lock b/helm/cluster-vsphere/Chart.lock index aa017c59..a6cd4ef7 100644 --- a/helm/cluster-vsphere/Chart.lock +++ b/helm/cluster-vsphere/Chart.lock @@ -1,9 +1,9 @@ dependencies: - name: cluster repository: https://giantswarm.github.io/cluster-catalog - version: 1.2.1 + version: 1.5.2 - name: cluster-shared repository: https://giantswarm.github.io/cluster-catalog version: 0.7.1 -digest: sha256:ee84a487ece1fd36ba99f3faea08212dbf0ca09f0d6c7f979f0edd41dcedf3e1 -generated: "2024-08-21T13:55:12.569856+02:00" +digest: sha256:044c0b4b93df216e3bf7ad4e855f401bd8efe8bca843444e588e942ad0adbf31 +generated: "2024-10-09T14:13:59.02547+02:00" diff --git a/helm/cluster-vsphere/Chart.yaml b/helm/cluster-vsphere/Chart.yaml index a029d27c..e57c6a26 100644 --- a/helm/cluster-vsphere/Chart.yaml +++ b/helm/cluster-vsphere/Chart.yaml @@ -20,7 +20,7 @@ restrictions: - vsphere dependencies: - name: cluster - version: "1.2.1" + version: "1.5.2" repository: "https://giantswarm.github.io/cluster-catalog" - name: cluster-shared version: "0.7.1" From 419dec507fc00389b8bcf721c16fc86aa702f27e Mon Sep 17 00:00:00 2001 From: Simon Weald Date: Fri, 11 Oct 2024 11:15:44 +0100 Subject: [PATCH 13/13] update example manifest --- examples/cluster-manifest.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/cluster-manifest.yaml b/examples/cluster-manifest.yaml index b38b7748..fd4c1d7e 100644 --- a/examples/cluster-manifest.yaml +++ b/examples/cluster-manifest.yaml @@ -11,6 +11,7 @@ data: metadata: description: "test cluster" organization: "multi-project" + release: "27.0.0" connectivity: network: allowAllEgress: true @@ -81,7 +82,7 @@ spec: secret: name: vsphere-credentials namespace: org-multi-project - version: 0.51.0 + version: "" --- apiVersion: v1 data: