Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ v1.29: Prepare quickstart, capd and tests for the new release including kind bump #9872

Merged
merged 1 commit into from
Dec 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Tiltfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
envsubst_cmd = "./hack/tools/bin/envsubst"
clusterctl_cmd = "./bin/clusterctl"
kubectl_cmd = "kubectl"
kubernetes_version = "v1.28.0"
kubernetes_version = "v1.29.0"

load("ext://uibutton", "cmd_button", "location", "text_input")

Expand Down
2 changes: 1 addition & 1 deletion docs/book/src/developer/tilt.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ Custom values for variable substitutions can be set using `kustomize_substitutio
```yaml
kustomize_substitutions:
NAMESPACE: "default"
KUBERNETES_VERSION: "v1.28.0"
KUBERNETES_VERSION: "v1.29.0"
CONTROL_PLANE_MACHINE_COUNT: "1"
WORKER_MACHINE_COUNT: "3"
# Note: kustomize substitutions expects the values to be strings. This can be achieved by wrapping the values in quotation marks.
Expand Down
3 changes: 3 additions & 0 deletions docs/book/src/reference/versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ The Kubeadm Control Plane requires the Kubeadm Bootstrap Provider.

#### Kubernetes version specific notes

**1.29**:
* In-tree cloud providers are now switched off by default. Please use DisableCloudProviders and DisableKubeletCloudCredentialProvider feature flags if you still need this functionality. (https://github.com/kubernetes/kubernetes/pull/117503)

**1.28**:
* No specific notes

Expand Down
20 changes: 10 additions & 10 deletions docs/book/src/user/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -1288,7 +1288,7 @@ The Docker provider is not designed for production use and is intended for devel

```bash
clusterctl generate cluster capi-quickstart --flavor development \
--kubernetes-version v1.28.0 \
--kubernetes-version v1.29.0 \
--control-plane-machine-count=3 \
--worker-machine-count=3 \
> capi-quickstart.yaml
Expand Down Expand Up @@ -1331,7 +1331,7 @@ clusterctl generate cluster capi-quickstart \

```bash
clusterctl generate cluster capi-quickstart \
--kubernetes-version v1.28.0 \
--kubernetes-version v1.29.0 \
--control-plane-machine-count=3 \
--worker-machine-count=3 \
> capi-quickstart.yaml
Expand Down Expand Up @@ -1385,7 +1385,7 @@ and see an output similar to this:

```bash
NAME PHASE AGE VERSION
capi-quickstart Provisioned 8s v1.28.0
capi-quickstart Provisioned 8s v1.29.0
```

To verify the first control plane is up:
Expand All @@ -1398,7 +1398,7 @@ You should see an output is similar to this:

```bash
NAME CLUSTER INITIALIZED API SERVER AVAILABLE REPLICAS READY UPDATED UNAVAILABLE AGE VERSION
capi-quickstart-g2trk capi-quickstart true 3 3 3 4m7s v1.28.0
capi-quickstart-g2trk capi-quickstart true 3 3 3 4m7s v1.29.0
```

<aside class="note warning">
Expand Down Expand Up @@ -1618,12 +1618,12 @@ kubectl --kubeconfig=./capi-quickstart.kubeconfig get nodes
```
```bash
NAME STATUS ROLES AGE VERSION
capi-quickstart-vs89t-gmbld Ready control-plane 5m33s v1.28.0
capi-quickstart-vs89t-kf9l5 Ready control-plane 6m20s v1.28.0
capi-quickstart-vs89t-t8cfn Ready control-plane 7m10s v1.28.0
capi-quickstart-md-0-55x6t-5649968bd7-8tq9v Ready <none> 6m5s v1.28.0
capi-quickstart-md-0-55x6t-5649968bd7-glnjd Ready <none> 6m9s v1.28.0
capi-quickstart-md-0-55x6t-5649968bd7-sfzp6 Ready <none> 6m9s v1.28.0
capi-quickstart-vs89t-gmbld Ready control-plane 5m33s v1.29.0
capi-quickstart-vs89t-kf9l5 Ready control-plane 6m20s v1.29.0
capi-quickstart-vs89t-t8cfn Ready control-plane 7m10s v1.29.0
capi-quickstart-md-0-55x6t-5649968bd7-8tq9v Ready <none> 6m5s v1.29.0
capi-quickstart-md-0-55x6t-5649968bd7-glnjd Ready <none> 6m9s v1.29.0
capi-quickstart-md-0-55x6t-5649968bd7-sfzp6 Ready <none> 6m9s v1.29.0
```

{{#/tab }}
Expand Down
8 changes: 4 additions & 4 deletions test/e2e/clusterctl_upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.5=>cur
})

var _ = Describe("When testing clusterctl upgrades (v1.6=>current)", func() {
// Get v1.5 latest stable release
// Get v1.6 latest stable release
version := "1.6"
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
Expand All @@ -144,7 +144,7 @@ var _ = Describe("When testing clusterctl upgrades (v1.6=>current)", func() {
InitWithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease),
InitWithProvidersContract: "v1beta1",
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
InitWithKubernetesVersion: "v1.28.0",
InitWithKubernetesVersion: "v1.29.0",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: should we change also WorkloadKubernetesVersion? (same below)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have to wait until 1.6.1. before that it won't work as 1.6 doesn't have a mapping for the 1.29 image

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(xref last task in #9578 (comment))

WorkloadKubernetesVersion: "v1.28.0",
MgmtFlavor: "topology",
WorkloadFlavor: "",
Expand All @@ -153,7 +153,7 @@ var _ = Describe("When testing clusterctl upgrades (v1.6=>current)", func() {
})

var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.6=>current) [ClusterClass]", func() {
// Get v1.5 latest stable release
// Get v1.6 latest stable release
version := "1.6"
stableRelease, err := GetStableReleaseOfMinor(ctx, version)
Expect(err).ToNot(HaveOccurred(), "Failed to get stable version for minor release : %s", version)
Expand All @@ -168,7 +168,7 @@ var _ = Describe("When testing clusterctl upgrades using ClusterClass (v1.6=>cur
InitWithBinary: fmt.Sprintf(clusterctlDownloadURL, stableRelease),
InitWithProvidersContract: "v1beta1",
// Note: Both InitWithKubernetesVersion and WorkloadKubernetesVersion should be the highest mgmt cluster version supported by the source Cluster API version.
InitWithKubernetesVersion: "v1.28.0",
InitWithKubernetesVersion: "v1.29.0",
WorkloadKubernetesVersion: "v1.28.0",
MgmtFlavor: "topology",
WorkloadFlavor: "topology",
Expand Down
14 changes: 6 additions & 8 deletions test/e2e/config/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -237,14 +237,12 @@ variables:
# allowing the same e2e config file to be re-used in different Prow jobs e.g. each one with a K8s version permutation.
# The following Kubernetes versions should be the latest versions with already published kindest/node images.
# This avoids building node images in the default case which improves the test duration significantly.
KUBERNETES_VERSION_MANAGEMENT: "v1.28.0"
# TODO when bumping this version: also remove the pinning of the conformanceImage at the [ipv6] tests in
# `test/e2e/quick_start_test.go`.
KUBERNETES_VERSION: "v1.28.0"
KUBERNETES_VERSION_UPGRADE_FROM: "v1.27.3"
KUBERNETES_VERSION_UPGRADE_TO: "v1.28.0"
ETCD_VERSION_UPGRADE_TO: "3.5.9-0"
COREDNS_VERSION_UPGRADE_TO: "v1.10.1"
KUBERNETES_VERSION_MANAGEMENT: "v1.29.0"
KUBERNETES_VERSION: "v1.29.0"
KUBERNETES_VERSION_UPGRADE_FROM: "v1.28.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q: should be use v1.28.4 instead? (it is ok to do this as a follow up)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be no kind image for it

KUBERNETES_VERSION_UPGRADE_TO: "v1.29.0"
ETCD_VERSION_UPGRADE_TO: "3.5.10-0"
COREDNS_VERSION_UPGRADE_TO: "v1.11.1"
DOCKER_SERVICE_DOMAIN: "cluster.local"
IP_FAMILY: "dual"
DOCKER_SERVICE_CIDRS: "10.128.0.0/12"
Expand Down
6 changes: 0 additions & 6 deletions test/e2e/quick_start_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,6 @@ var _ = Describe("When following the Cluster API quick-start with dualstack and
ClusterProxy: proxy.GetWorkloadCluster(ctx, namespace, clusterName),
ArtifactsDirectory: artifactFolder,
ConfigFilePath: "./data/kubetest/dualstack.yaml",
// Pin the conformance image to workaround https://github.com/kubernetes-sigs/cluster-api/issues/9240 .
// This should get dropped again when bumping to a version post v1.28.0 in `test/e2e/config/docker.yaml`.
ConformanceImage: "gcr.io/k8s-staging-ci-images/conformance:v1.29.0-alpha.0.190_18290bfdc8fbe1",
},
)).To(Succeed())
},
Expand All @@ -172,9 +169,6 @@ var _ = Describe("When following the Cluster API quick-start with dualstack and
ClusterProxy: proxy.GetWorkloadCluster(ctx, namespace, clusterName),
ArtifactsDirectory: artifactFolder,
ConfigFilePath: "./data/kubetest/dualstack.yaml",
// Pin the conformance image to workaround https://github.com/kubernetes-sigs/cluster-api/issues/9240 .
// This should get dropped again when bumping to a version post v1.28.0 in `test/e2e/config/docker.yaml`.
ConformanceImage: "gcr.io/k8s-staging-ci-images/conformance:v1.29.0-alpha.0.190_18290bfdc8fbe1",
},
)).To(Succeed())
},
Expand Down
2 changes: 1 addition & 1 deletion test/framework/bootstrap/kind_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const (
DefaultNodeImageRepository = "kindest/node"

// DefaultNodeImageVersion is the default Kubernetes version to be used for creating a kind cluster.
DefaultNodeImageVersion = "v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31"
DefaultNodeImageVersion = "v1.29.0@sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570"
)

// KindClusterOption is a NewKindClusterProvider option.
Expand Down
4 changes: 2 additions & 2 deletions test/infrastructure/docker/examples/machine-pool.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ metadata:
namespace: default
spec:
replicas: 1
version: v1.28.0
version: v1.29.0
machineTemplate:
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
Expand Down Expand Up @@ -80,7 +80,7 @@ spec:
replicas: 2
template:
spec:
version: v1.28.0
version: v1.29.0
clusterName: my-cluster
bootstrap:
configRef:
Expand Down
4 changes: 2 additions & 2 deletions test/infrastructure/docker/examples/simple-cluster-ipv6.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ metadata:
namespace: default
spec:
replicas: 1
version: v1.28.0
version: v1.29.0
machineTemplate:
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
Expand Down Expand Up @@ -90,7 +90,7 @@ spec:
cluster.x-k8s.io/cluster-name: my-cluster
template:
spec:
version: v1.28.0
version: v1.29.0
clusterName: my-cluster
bootstrap:
configRef:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ metadata:
name: controlplane-0
namespace: default
spec:
version: v1.28.0
version: v1.29.0
clusterName: my-cluster
bootstrap:
configRef:
Expand Down Expand Up @@ -80,7 +80,7 @@ spec:
cluster.x-k8s.io/cluster-name: my-cluster
template:
spec:
version: v1.28.0
version: v1.29.0
clusterName: my-cluster
bootstrap:
configRef:
Expand Down
4 changes: 2 additions & 2 deletions test/infrastructure/docker/examples/simple-cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ metadata:
namespace: default
spec:
replicas: 1
version: v1.28.0
version: v1.29.0
machineTemplate:
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
Expand Down Expand Up @@ -83,7 +83,7 @@ spec:
cluster.x-k8s.io/cluster-name: my-cluster
template:
spec:
version: v1.28.0
version: v1.29.0
clusterName: my-cluster
bootstrap:
configRef:
Expand Down
5 changes: 5 additions & 0 deletions test/infrastructure/kind/mapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ var preBuiltMappings = []Mapping{
// TODO: Add pre-built images for newer Kind versions on top

// Pre-built images for Kind v1.20.
{
KubernetesVersion: semver.MustParse("1.29.0"),
Mode: Mode0_20,
Image: "kindest/node:v1.29.0@sha256:eaa1450915475849a73a9227b8f201df25e55e268e5d619312131292e324d570",
},
{
KubernetesVersion: semver.MustParse("1.28.0"),
Mode: Mode0_20,
Expand Down
Loading