Skip to content

Commit

Permalink
Add k8s v1.29.0 ova's including workarounds for kube-vip
Browse files Browse the repository at this point in the history
  • Loading branch information
chrischdi committed Dec 21, 2023
1 parent d8bb2e3 commit 0407000
Show file tree
Hide file tree
Showing 23 changed files with 968 additions and 494 deletions.
4 changes: 4 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ issues:
- revive
text: exported (.+) (.+) should have comment (.*)or be unexported
path: "^(test/|packaging/|pkg/.*/fake/|pkg/util/testutil).*.go"
- linters:
- revive
text: a blank import should be only in a main or test package, or have a comment justifying it
path: "^packaging/.*.go"
# Disable unparam "always receives" which might not be really
# useful when building libraries.
- linters:
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ generate-e2e-templates: $(KUSTOMIZE) $(addprefix generate-e2e-templates-, v1.7 v
generate-e2e-templates-main: $(KUSTOMIZE) ## Generate test templates for the main branch
$(MAKE) e2e-flavors-main
cp "$(RELEASE_DIR)/main/cluster-template.yaml" "$(E2E_TEMPLATE_DIR)/main/base/cluster-template.yaml"
cp "$(RELEASE_DIR)/main/cluster-template-ignition.yaml" "$(E2E_TEMPLATE_DIR)/main/base/cluster-template-ignition.yaml"
"$(KUSTOMIZE)" --load-restrictor LoadRestrictionsNone build "$(E2E_TEMPLATE_DIR)/main/base" > "$(E2E_TEMPLATE_DIR)/main/cluster-template.yaml"
"$(KUSTOMIZE)" --load-restrictor LoadRestrictionsNone build "$(E2E_TEMPLATE_DIR)/main/hw-upgrade" > "$(E2E_TEMPLATE_DIR)/main/cluster-template-hw-upgrade.yaml"
"$(KUSTOMIZE)" --load-restrictor LoadRestrictionsNone build "$(E2E_TEMPLATE_DIR)/main/storage-policy" > "$(E2E_TEMPLATE_DIR)/main/cluster-template-storage-policy.yaml"
Expand Down
79 changes: 72 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,78 @@ ecosystem.
Note: These OVAs are not updated for security fixes and it is recommended to always use the latest patch version for the Kubernetes version you wish to run. For production-like environments, it is
highly recommended to build and use your own custom images.

| Kubernetes | Ubuntu 18.04 | Ubuntu 20.04 | Ubuntu 22.04 | Photon 3 | Flatcar Stable |
|:----------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| v1.24.11 | [ova](https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-1804-kube-v1.24.11.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-1804-kube-v1.24.11.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-2004-kube-v1.24.11.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-2004-kube-v1.24.11.ova.sha256) | N/A | [ova](https://storage.googleapis.com/capv-templates/v1.24.11/photon-3-kube-v1.24.11.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.24.11/photon-3-kube-v1.24.11.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.24.11/flatcar-stable-3374.2.5-kube-v1.24.11.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.24.11/flatcar-stable-3374.2.5-kube-v1.24.11.ova.sha256) |
| v1.25.7 | [ova](https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-1804-kube-v1.25.7.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-1804-kube-v1.25.7.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-2004-kube-v1.25.7.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-2004-kube-v1.25.7.ova.sha256) | N/A | [ova](https://storage.googleapis.com/capv-templates/v1.25.7/photon-3-kube-v1.25.7.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.25.7/photon-3-kube-v1.25.7.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.25.7/flatcar-stable-3374.2.5-kube-v1.25.7.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.25.7/flatcar-stable-3374.2.5-kube-v1.25.7.ova.sha256) |
| v1.26.2 | [ova](https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-1804-kube-v1.26.2.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-1804-kube-v1.26.2.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-2004-kube-v1.26.2.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-2004-kube-v1.26.2.ova.sha256) | N/A | [ova](https://storage.googleapis.com/capv-templates/v1.26.2/photon-3-kube-v1.26.2.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.26.2/photon-3-kube-v1.26.2.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.26.2/flatcar-stable-3374.2.5-kube-v1.26.2.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.26.2/flatcar-stable-3374.2.5-kube-v1.26.2.ova.sha256) |
| v1.27.3 | [ova](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-1804-kube-v1.27.3.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-1804-kube-v1.27.3.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2004-kube-v1.27.3.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2004-kube-v1.27.3.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2204-kube-v1.27.3.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2204-kube-v1.27.3.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.27.3/photon-3-kube-v1.27.3.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.27.3/photon-3-kube-v1.27.3.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.27.3/flatcar-stable-3510.2.4-kube-v1.27.3.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.27.3/flatcar-stable-3510.2.4-kube-v1.27.3.ova.sha256) |
| v1.28.0 | [ova](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-1804-kube-v1.28.0.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-1804-kube-v1.28.0.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2004-kube-v1.28.0.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2004-kube-v1.28.0.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2204-kube-v1.28.0.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2204-kube-v1.28.0.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.28.0/photon-3-kube-v1.28.0.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.28.0/photon-3-kube-v1.28.0.ova.sha256) | [ova](https://storage.googleapis.com/capv-templates/v1.28.0/flatcar-stable-3510.2.6-kube-v1.28.0.ova), [sha256](https://storage.googleapis.com/capv-templates/v1.28.0/flatcar-stable-3510.2.6-kube-v1.28.0.ova.sha256) |
<table>
<tr>
<th>Kubernetes</th>
<th>Ubuntu 18.04</th>
<th>Ubuntu 20.04</th>
<th>Ubuntu 22.04</th>
<th>Photon 3</th>
<th>Photon 5</th>
<th>Flatcar Stable</th>
</tr>

<tr>
<td>v1.24.11</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-1804-kube-v1.24.11.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-1804-kube-v1.24.11.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-2004-kube-v1.24.11.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.24.11/ubuntu-2004-kube-v1.24.11.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.24.11/photon-3-kube-v1.24.11.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.24.11/photon-3-kube-v1.24.11.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.24.11/flatcar-stable-3374.2.5-kube-v1.24.11.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.24.11/flatcar-stable-3374.2.5-kube-v1.24.11.ova.sha256">sha256</a></td>
</tr>

<tr>
<td>v1.25.7</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-1804-kube-v1.25.7.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-1804-kube-v1.25.7.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-2004-kube-v1.25.7.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.25.7/ubuntu-2004-kube-v1.25.7.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.25.7/photon-3-kube-v1.25.7.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.25.7/photon-3-kube-v1.25.7.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.25.7/flatcar-stable-3374.2.5-kube-v1.25.7.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.25.7/flatcar-stable-3374.2.5-kube-v1.25.7.ova.sha256">sha256</a></td>
</tr>

<tr>
<td>v1.26.2</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-1804-kube-v1.26.2.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-1804-kube-v1.26.2.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-2004-kube-v1.26.2.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.26.2/ubuntu-2004-kube-v1.26.2.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.26.2/photon-3-kube-v1.26.2.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.26.2/photon-3-kube-v1.26.2.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.26.2/flatcar-stable-3374.2.5-kube-v1.26.2.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.26.2/flatcar-stable-3374.2.5-kube-v1.26.2.ova.sha256">sha256</a></td>
</tr>

<tr>
<td>v1.27.3</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-1804-kube-v1.27.3.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-1804-kube-v1.27.3.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2004-kube-v1.27.3.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2004-kube-v1.27.3.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2204-kube-v1.27.3.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.27.3/ubuntu-2204-kube-v1.27.3.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.27.3/photon-3-kube-v1.27.3.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.27.3/photon-3-kube-v1.27.3.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.27.3/flatcar-stable-3510.2.4-kube-v1.27.3.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.27.3/flatcar-stable-3510.2.4-kube-v1.27.3.ova.sha256">sha256</a></td>
</tr>

<tr>
<td>v1.28.0</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-1804-kube-v1.28.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-1804-kube-v1.28.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2004-kube-v1.28.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2004-kube-v1.28.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2204-kube-v1.28.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.28.0/ubuntu-2204-kube-v1.28.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.28.0/photon-3-kube-v1.28.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.28.0/photon-3-kube-v1.28.0.ova.sha256">sha256</a></td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.28.0/flatcar-stable-3510.2.6-kube-v1.28.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.28.0/flatcar-stable-3510.2.6-kube-v1.28.0.ova.sha256">sha256</a></td>
</tr>

<tr>
<td>v1.29.0</td>
<td>N/A</td>
<td>N/A</td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.29.0/ubuntu-2204-kube-v1.29.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.29.0/ubuntu-2204-kube-v1.29.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.29.0/photon-3-kube-v1.29.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.29.0/photon-3-kube-v1.29.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.29.0/photon-5-kube-v1.29.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.29.0/photon-5-kube-v1.29.0.ova.sha256">sha256</a></td>
<td><a href="https://storage.googleapis.com/capv-templates/v1.29.0/flatcar-stable-3602.2.3-kube-v1.29.0.ova">ova</a>, <a href="https://storage.googleapis.com/capv-templates/v1.29.0/flatcar-stable-3602.2.3-kube-v1.29.0.ova.sha256">sha256</a></td>
</tr>

</table>

A full list of the published machine images for CAPV may be obtained with the following command:

Expand Down
5 changes: 3 additions & 2 deletions packaging/flavorgen/flavors/clusterclass_generators.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (

infrav1 "sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1"
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/env"
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/kubevip"
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/util"
)

Expand Down Expand Up @@ -108,10 +109,10 @@ func getWorkersClass() clusterv1.WorkersClass {

func getClusterClassPatches() []clusterv1.ClusterClassPatch {
return []clusterv1.ClusterClassPatch{
createFilesArrayPatch(),
createEmptyArraysPatch(),
enableSSHPatch(),
infraClusterPatch(),
kubeVipEnabledPatch(),
kubevip.TopologyPatch(),
}
}

Expand Down
20 changes: 13 additions & 7 deletions packaging/flavorgen/flavors/flavors.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (

"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/crs"
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/env"
"sigs.k8s.io/cluster-api-provider-vsphere/packaging/flavorgen/flavors/kubevip"
)

const (
Expand Down Expand Up @@ -82,7 +83,9 @@ func MultiNodeTemplateWithKubeVIP() ([]runtime.Object, error) {
vsphereCluster := newVSphereCluster()
cpMachineTemplate := newVSphereMachineTemplate(env.ClusterNameVar)
workerMachineTemplate := newVSphereMachineTemplate(fmt.Sprintf("%s-worker", env.ClusterNameVar))
controlPlane := newKubeadmControlplane(cpMachineTemplate, newKubeVIPFiles())
controlPlane := newKubeadmControlplane(cpMachineTemplate, nil)
kubevip.PatchControlPlane(&controlPlane)

kubeadmJoinTemplate := newKubeadmConfigTemplate(fmt.Sprintf("%s%s", env.ClusterNameVar, env.MachineDeploymentNameSuffix), true)
cluster := newCluster(vsphereCluster, &controlPlane)
machineDeployment := newMachineDeployment(cluster, workerMachineTemplate, kubeadmJoinTemplate)
Expand Down Expand Up @@ -149,14 +152,15 @@ func MultiNodeTemplateWithKubeVIPIgnition() ([]runtime.Object, error) {
vsphereCluster := newVSphereCluster()
machineTemplate := newVSphereMachineTemplate(env.ClusterNameVar)

files := newKubeVIPFiles()
controlPlane := newIgnitionKubeadmControlplane(machineTemplate, nil)
kubevip.PatchControlPlane(&controlPlane)

// CABPK requires specifying file permissions in Ignition mode. Set a default value if not set.
for i := range files {
if files[i].Permissions == "" {
files[i].Permissions = "0400"
for i := range controlPlane.Spec.KubeadmConfigSpec.Files {
if controlPlane.Spec.KubeadmConfigSpec.Files[i].Permissions == "" {
controlPlane.Spec.KubeadmConfigSpec.Files[i].Permissions = "0400"
}
}
controlPlane := newIgnitionKubeadmControlplane(machineTemplate, files)

kubeadmJoinTemplate := newIgnitionKubeadmConfigTemplate()
cluster := newCluster(vsphereCluster, &controlPlane)
Expand Down Expand Up @@ -190,7 +194,9 @@ func MultiNodeTemplateWithKubeVIPNodeIPAM() ([]runtime.Object, error) {
vsphereCluster := newVSphereCluster()
cpMachineTemplate := newNodeIPAMVSphereMachineTemplate(env.ClusterNameVar)
workerMachineTemplate := newNodeIPAMVSphereMachineTemplate(fmt.Sprintf("%s-worker", env.ClusterNameVar))
controlPlane := newKubeadmControlplane(cpMachineTemplate, newKubeVIPFiles())
controlPlane := newKubeadmControlplane(cpMachineTemplate, nil)
kubevip.PatchControlPlane(&controlPlane)

kubeadmJoinTemplate := newKubeadmConfigTemplate(fmt.Sprintf("%s%s", env.ClusterNameVar, env.MachineDeploymentNameSuffix), true)
cluster := newCluster(vsphereCluster, &controlPlane)
machineDeployment := newMachineDeployment(cluster, workerMachineTemplate, kubeadmJoinTemplate)
Expand Down
Loading

0 comments on commit 0407000

Please sign in to comment.