diff --git a/chart/templates/_init-containers.tpl b/chart/templates/_init-containers.tpl index e500b5cfa..edf4550f2 100644 --- a/chart/templates/_init-containers.tpl +++ b/chart/templates/_init-containers.tpl @@ -19,7 +19,7 @@ {{/* Bump $defaultTag value whenever k8s version is bumped */}} {{- define "vcluster.k8s.controllerManager.image.tag" -}} -{{- $defaultTag := "v1.30.2" -}} +{{- $defaultTag := "v1.31.1" -}} {{- if and (not (empty .Values.controlPlane.distro.k8s.version)) (eq .Values.controlPlane.distro.k8s.controllerManager.image.tag $defaultTag) -}} {{ .Values.controlPlane.distro.k8s.version }} {{- else -}} @@ -35,7 +35,7 @@ {{/* Bump $defaultTag value whenever k8s version is bumped */}} {{- define "vcluster.k8s.apiServer.image.tag" -}} -{{- $defaultTag := "v1.30.2" -}} +{{- $defaultTag := "v1.31.1" -}} {{- if and (not (empty .Values.controlPlane.distro.k8s.version)) (eq .Values.controlPlane.distro.k8s.apiServer.image.tag $defaultTag) -}} {{ .Values.controlPlane.distro.k8s.version}} {{- else -}} @@ -52,7 +52,7 @@ {{/* Bump $defaultTag value whenever k8s version is bumped */}} {{- define "vcluster.k8s.scheduler.image.tag" -}} -{{- $defaultTag := "v1.30.2" -}} +{{- $defaultTag := "v1.31.1" -}} {{- if and (not (empty .Values.controlPlane.distro.k8s.version)) (eq .Values.controlPlane.distro.k8s.scheduler.image.tag $defaultTag) -}} {{ .Values.controlPlane.distro.k8s.version}} {{- else -}} diff --git a/chart/tests/statefulset_test.yaml b/chart/tests/statefulset_test.yaml index ef4508bb6..091e68dc4 100644 --- a/chart/tests/statefulset_test.yaml +++ b/chart/tests/statefulset_test.yaml @@ -588,10 +588,10 @@ tests: asserts: - equal: path: spec.template.spec.initContainers[1].image - value: registry.k8s.io/kube-controller-manager:v1.30.2 + value: registry.k8s.io/kube-controller-manager:v1.31.1 - equal: path: spec.template.spec.initContainers[2].image - value: registry.k8s.io/kube-apiserver:v1.30.2 + value: registry.k8s.io/kube-apiserver:v1.31.1 - it: k8s capabilities set chart: @@ -621,7 +621,7 @@ tests: asserts: - equal: path: spec.template.spec.initContainers[1].image - value: registry.k8s.io/kube-controller-manager:v1.30.2 + value: registry.k8s.io/kube-controller-manager:v1.31.1 - it: k8s capabilities incomplete chart: @@ -629,7 +629,7 @@ tests: asserts: - equal: path: spec.template.spec.initContainers[1].image - value: registry.k8s.io/kube-controller-manager:v1.30.2 + value: registry.k8s.io/kube-controller-manager:v1.31.1 - it: k8s capabilities incomplete 2 chart: @@ -637,7 +637,7 @@ tests: asserts: - equal: path: spec.template.spec.initContainers[1].image - value: registry.k8s.io/kube-controller-manager:v1.30.2 + value: registry.k8s.io/kube-controller-manager:v1.31.1 - it: k8s capabilities incomplete 2 chart: @@ -719,13 +719,13 @@ tests: asserts: - equal: path: spec.template.spec.initContainers[1].image - value: registry.k8s.io/kube-controller-manager:v1.30.2 + value: registry.k8s.io/kube-controller-manager:v1.31.1 - equal: path: spec.template.spec.initContainers[2].image - value: registry.k8s.io/kube-scheduler:v1.30.2 + value: registry.k8s.io/kube-scheduler:v1.31.1 - equal: path: spec.template.spec.initContainers[3].image - value: registry.k8s.io/kube-apiserver:v1.30.2 + value: registry.k8s.io/kube-apiserver:v1.31.1 - it: k8s version sets image tag for apiServer and controllerManager (virtual scheduler enabled) set: diff --git a/chart/values.yaml b/chart/values.yaml index 37d595851..edc3fff73 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -181,7 +181,7 @@ controlPlane: # Repository is the repository of the container image, e.g. my-repo/my-image repository: kube-apiserver # Tag is the tag of the container image, e.g. latest - tag: "v1.30.2" + tag: "v1.31.1" # ControllerManager holds configuration specific to starting the controller manager. controllerManager: enabled: true @@ -199,7 +199,7 @@ controlPlane: # Repository is the repository of the container image, e.g. my-repo/my-image repository: "kube-controller-manager" # Tag is the tag of the container image, e.g. latest - tag: "v1.30.2" + tag: "v1.31.1" # Scheduler holds configuration specific to starting the scheduler. Enable this via controlPlane.advanced.virtualScheduler.enabled scheduler: # Command is the command to start the distro binary. This will override the existing command. @@ -216,7 +216,7 @@ controlPlane: # Repository is the repository of the container image, e.g. my-repo/my-image repository: "kube-scheduler" # Tag is the tag of the container image, e.g. latest - tag: "v1.30.2" + tag: "v1.31.1" # Env are extra environment variables to use for the main container and NOT the init container. env: [] # Security options can be used for the distro init container @@ -247,7 +247,7 @@ controlPlane: # Repository is the repository of the container image, e.g. my-repo/my-image repository: "rancher/k3s" # Tag is the tag of the container image, e.g. latest - tag: "v1.30.2-k3s1" + tag: "v1.31.1-k3s1" # Security options can be used for the distro init container securityContext: {} # Resources for the distro init container @@ -341,7 +341,7 @@ controlPlane: # Repository is the repository of the container image, e.g. my-repo/my-image repository: "etcd" # Tag is the tag of the container image, e.g. latest - tag: "3.5.13-0" + tag: "3.5.15-0" # ImagePullPolicy is the pull policy for the external etcd image imagePullPolicy: "" # ExtraArgs are appended to the etcd command. diff --git a/config/default_extra_values.go b/config/default_extra_values.go index 4a6f19cbb..010144155 100644 --- a/config/default_extra_values.go +++ b/config/default_extra_values.go @@ -23,6 +23,7 @@ const ( // K3SVersionMap holds the supported k3s versions var K3SVersionMap = map[string]string{ + "1.31": "rancher/k3s:v1.31.1-k3s1", "1.30": "rancher/k3s:v1.30.2-k3s1", "1.29": "rancher/k3s:v1.29.6-k3s1", "1.28": "rancher/k3s:v1.28.11-k3s1", @@ -31,6 +32,7 @@ var K3SVersionMap = map[string]string{ // K0SVersionMap holds the supported k0s versions var K0SVersionMap = map[string]string{ + "1.31": "k0sproject/k0s:v1.30.2-k0s.0", "1.30": "k0sproject/k0s:v1.30.2-k0s.0", "1.29": "k0sproject/k0s:v1.29.6-k0s.0", "1.28": "k0sproject/k0s:v1.28.11-k0s.0", @@ -39,6 +41,7 @@ var K0SVersionMap = map[string]string{ // K8SAPIVersionMap holds the supported k8s api servers var K8SAPIVersionMap = map[string]string{ + "1.31": "registry.k8s.io/kube-apiserver:v1.31.1", "1.30": "registry.k8s.io/kube-apiserver:v1.30.2", "1.29": "registry.k8s.io/kube-apiserver:v1.29.6", "1.28": "registry.k8s.io/kube-apiserver:v1.28.11", @@ -47,6 +50,7 @@ var K8SAPIVersionMap = map[string]string{ // K8SControllerVersionMap holds the supported k8s controller managers var K8SControllerVersionMap = map[string]string{ + "1.31": "registry.k8s.io/kube-controller-manager:v1.31.1", "1.30": "registry.k8s.io/kube-controller-manager:v1.30.2", "1.29": "registry.k8s.io/kube-controller-manager:v1.29.6", "1.28": "registry.k8s.io/kube-controller-manager:v1.28.11", @@ -55,6 +59,7 @@ var K8SControllerVersionMap = map[string]string{ // K8SSchedulerVersionMap holds the supported k8s schedulers var K8SSchedulerVersionMap = map[string]string{ + "1.31": "registry.k8s.io/kube-scheduler:v1.31.1", "1.30": "registry.k8s.io/kube-scheduler:v1.30.2", "1.29": "registry.k8s.io/kube-scheduler:v1.29.6", "1.28": "registry.k8s.io/kube-scheduler:v1.28.11", @@ -63,6 +68,7 @@ var K8SSchedulerVersionMap = map[string]string{ // K8SEtcdVersionMap holds the supported etcd var K8SEtcdVersionMap = map[string]string{ + "1.31": "registry.k8s.io/etcd:3.5.15-0", "1.30": "registry.k8s.io/etcd:3.5.13-0", "1.29": "registry.k8s.io/etcd:3.5.10-0", "1.28": "registry.k8s.io/etcd:3.5.9-0", diff --git a/config/values.yaml b/config/values.yaml index f3c992916..dbecfd32a 100644 --- a/config/values.yaml +++ b/config/values.yaml @@ -90,7 +90,7 @@ controlPlane: image: registry: registry.k8s.io repository: kube-apiserver - tag: "v1.30.2" + tag: "v1.31.1" controllerManager: enabled: true command: [] @@ -99,7 +99,7 @@ controlPlane: image: registry: registry.k8s.io repository: "kube-controller-manager" - tag: "v1.30.2" + tag: "v1.31.1" scheduler: command: [] extraArgs: [] @@ -107,7 +107,7 @@ controlPlane: image: registry: registry.k8s.io repository: "kube-scheduler" - tag: "v1.30.2" + tag: "v1.31.1" env: [] securityContext: {} resources: @@ -126,7 +126,7 @@ controlPlane: image: registry: "" repository: "rancher/k3s" - tag: "v1.30.2-k3s1" + tag: "v1.31.1-k3s1" securityContext: {} resources: limits: @@ -179,7 +179,7 @@ controlPlane: image: registry: "registry.k8s.io" repository: "etcd" - tag: "3.5.13-0" + tag: "3.5.15-0" imagePullPolicy: "" extraArgs: [] env: [] diff --git a/conformance/v1.31/README.md b/conformance/v1.31/README.md new file mode 100644 index 000000000..90f690ea2 --- /dev/null +++ b/conformance/v1.31/README.md @@ -0,0 +1,102 @@ +### Run Conformance Tests + +You will need a cluster with at least 2 nodes. +The steps below assume that you will use a local minikube cluster. +We executed the test on a minikube instance with docker driver (default auto-detected by system). + + +### 1. Create a multinode minikube cluster + +``` +minikube start --kubernetes-version 1.31.1 --nodes=2 +``` + +### 2. Create the vcluster + +Create a file called `values.yaml` with the following content: +```yaml +controlPlane: + advanced: + virtualScheduler: + enabled: true + backingStore: + etcd: + deploy: + enabled: true + statefulSet: + image: + tag: 3.5.16-0 + distro: + k8s: + apiServer: + extraArgs: + - --service-account-jwks-uri=https://kubernetes.default.svc.cluster.local/openid/v1/jwks + image: + tag: v1.31.1 + controllerManager: + image: + tag: v1.31.1 + enabled: true + scheduler: + image: + tag: v1.31.1 + statefulSet: + scheduling: + podManagementPolicy: OrderedReady +networking: + advanced: + proxyKubelets: + byHostname: false + byIP: false +sync: + fromHost: + csiDrivers: + enabled: false + csiStorageCapacities: + enabled: false + nodes: + enabled: true + selector: + all: true + toHost: + persistentVolumes: + enabled: true + priorityClasses: + enabled: true + storageClasses: + enabled: true +``` + +Create virtual cluster using `vcluster version 0.20.0-beta.15` (latest) using the following command: +``` +# Create the vcluster +vcluster create vcluster -n vcluster -f values.yaml +``` + +### 3. Run Tests + +Download a binary release of the CLI, or build it yourself by running: +``` +go install github.com/vmware-tanzu/sonobuoy@latest +``` + +Deploy a Sonobuoy pod to your cluster with: +``` +sonobuoy run --mode=certified-conformance +``` +View actively running pods: +``` +sonobuoy status +``` +To inspect the logs: +``` +sonobuoy logs +``` +Once sonobuoy status shows the run as completed, copy the output directory from the main Sonobuoy pod to a local directory: +``` +outfile=$(sonobuoy retrieve) +``` +This copies a single .tar.gz snapshot from the Sonobuoy pod into your local . directory. Extract the contents into ./results with: +``` +mkdir ./results; tar xzf $outfile -C ./results +``` diff --git a/docs/pages/deploying-vclusters/compat-matrix.mdx b/docs/pages/deploying-vclusters/compat-matrix.mdx index b5058c28a..22d8667a5 100644 --- a/docs/pages/deploying-vclusters/compat-matrix.mdx +++ b/docs/pages/deploying-vclusters/compat-matrix.mdx @@ -7,12 +7,13 @@ sidebar_label: Compatibility Matrix Compatibility matrix showing which host k8s version (left column) is supported by which vCluster k3s distro versions. -| | v1.30.2-k3s1 | v1.29.6-k3s1 | v1.28.11-k3s1 | v1.27.16-k3s1 | -|------|--------------------|--------------------|--------------------|--------------------| -| 1.30 | :white_check_mark: | :ok: | :ok: | :ok: | -| 1.29 | :ok: | :white_check_mark: | :ok: | :ok: | -| 1.28 | :ok: | :ok: | :white_check_mark: | :ok: | -| 1.27 | :ok: | :ok: | :ok: | :white_check_mark: | +| | v1.31.1-k3s1 | v1.30.2-k3s1 | v1.29.6-k3s1 | v1.28.11-k3s1 | v1.27.16-k3s1 | +|------|--------------------|--------------------|--------------------|--------------------|--------------------| +| 1.31 | :white_check_mark: | :ok: | :ok: | :ok: | :ok: | +| 1.30 | :ok: | :white_check_mark: | :ok: | :ok: | :ok: | +| 1.29 | :ok: | :ok: | :white_check_mark: | :ok: | :ok: | +| 1.28 | :ok: | :ok: | :ok: | :white_check_mark: | :ok: | +| 1.27 | :ok: | :ok: | :ok: | :ok: | :white_check_mark: | Legend: @@ -27,12 +28,13 @@ Legend: Compatibility matrix showing which host k8s version (left column) is supported by which vCluster k8s distro versions. -| | v1.30.2 | v1.29.6 | v1.28.11 | v1.27.16 | -|------|--------------------|--------------------|--------------------|--------------------| -| 1.30 | :white_check_mark: | :ok: | :ok: | :ok: | -| 1.29 | :ok: | :white_check_mark: | :ok: | :ok: | -| 1.28 | :ok: | :ok: | :white_check_mark: | :ok: | -| 1.27 | :ok: | :ok: | :ok: | :white_check_mark: | +| | v1.31.1 | v1.30.2 | v1.29.6 | v1.28.11 | v1.27.16 | +|------|--------------------|--------------------|--------------------|--------------------|--------------------| +| 1.31 | :white_check_mark: | :ok: | :ok: | :ok: | :ok: | +| 1.30 | :ok: | :white_check_mark: | :ok: | :ok: | :ok: | +| 1.29 | :ok: | :ok: | :white_check_mark: | :ok: | :ok: | +| 1.28 | :ok: | :ok: | :ok: | :white_check_mark: | :ok: | +| 1.27 | :ok: | :ok: | :ok: | :ok: | :white_check_mark: | Legend: @@ -47,12 +49,13 @@ Legend: Compatibility matrix showing which host k8s version (left column) is supported by which vCluster k0s distro versions. -| | v1.30.2-k0s.0 | v1.29.6-k0s.0 | v1.28.11-k0s.0 | v1.27.16-k0s.0 | -|------|--------------------|--------------------|--------------------|--------------------| -| 1.30 | :white_check_mark: | :ok: | :ok: | :ok: | -| 1.29 | :ok: | :white_check_mark: | :ok: | :ok: | -| 1.28 | :ok: | :ok: | :white_check_mark: | :ok: | -| 1.27 | :ok: | :ok: | :ok: | :white_check_mark: | +| | v1.30.2-k0s.0 | v1.30.2-k0s.0 | v1.29.6-k0s.0 | v1.28.11-k0s.0 | v1.27.16-k0s.0 | +|------|--------------------|--------------------|--------------------|--------------------|--------------------| +| 1.31 | :white_check_mark: | :ok: | :ok: | :ok: | :ok: | +| 1.30 | :ok: | :white_check_mark: | :ok: | :ok: | :ok: | +| 1.29 | :ok: | :ok: | :white_check_mark: | :ok: | :ok: | +| 1.28 | :ok: | :ok: | :ok: | :white_check_mark: | :ok: | +| 1.27 | :ok: | :ok: | :ok: | :ok: | :white_check_mark: | Legend: