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

Bump Kubernetes version to 1.31.0 and add CI matrix #597

Merged
merged 8 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from 6 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
211 changes: 121 additions & 90 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,100 +4,131 @@ agents:
env:
GO_VERSION_FILE: "go1.23.0.linux-amd64.tar.gz"


# Mount the docker.sock as to the docker container, so that we are able to
# run docker build command and kind is spawned as a sibling container.
steps:
- name: "Upgrade Test"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- make upgrade-test
concurrency: 1
concurrency_group: 'vtop/upgrade-downgrade-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- group: "Upgrade Test"
steps:
- label: "Upgrade Test {{matrix}}"
matrix:
- "1.31.0"
- "1.30.4"
- "1.29.8"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- K8S_VERSION={{matrix}} make upgrade-test
concurrency: 1
concurrency_group: 'vtop/upgrade-downgrade-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

- name: "Backup Restore Test"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- make backup-restore-test
concurrency: 1
concurrency_group: 'vtop/backup-restore-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- group: "Backup Restore Test"
steps:
- label: "Backup Restore Test {{matrix}}"
matrix:
- "1.31.0"
- "1.30.4"
- "1.29.8"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- K8S_VERSION={{matrix}} make backup-restore-test
concurrency: 1
concurrency_group: 'vtop/backup-restore-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

- name: "Backup Schedule Test"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- make backup-schedule-test
concurrency: 1
concurrency_group: 'vtop/backup-schedule-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- group: "Backup Schedule Test"
steps:
- name: "Backup Schedule Test {{matrix}}"
matrix:
- "1.31.0"
- "1.30.4"
- "1.29.8"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- K8S_VERSION={{matrix}} make backup-schedule-test
concurrency: 1
concurrency_group: 'vtop/backup-schedule-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

- name: "VTOrc and VTAdmin Test"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat chromium
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- make vtorc-vtadmin-test
concurrency: 1
concurrency_group: 'vtop/vtorc-vtadmin-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- group: "VTOrc and VTAdmin Test"
steps:
- label: "VTOrc and VTAdmin Test {{matrix}}"
matrix:
- "1.31.0"
- "1.30.4"
- "1.29.8"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat chromium
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- K8S_VERSION={{matrix}} make vtorc-vtadmin-test
concurrency: 1
concurrency_group: 'vtop/vtorc-vtadmin-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

- name: "Unmanaged Tablet Test"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat chromium
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- make unmanaged-tablet-test
concurrency: 1
concurrency_group: 'vtop/unmanaged-tablet-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- group: "Unmanaged Tablet Test"
steps:
- label: "Unmanaged Tablet Test {{matrix}}"
matrix:
- "1.31.0"
- "1.30.4"
- "1.29.8"
command:
- apk add g++ make bash gcompat curl mysql mysql-client libc6-compat chromium
- wget https://golang.org/dl/$GO_VERSION_FILE
- tar -C /usr/local -xzf $GO_VERSION_FILE
- export PATH=$PATH:/usr/local/go/bin
- rm $GO_VERSION_FILE
- ln -s /lib/libc.so.6 /usr/lib/libresolv.so.2
- K8S_VERSION={{matrix}} make unmanaged-tablet-test
concurrency: 1
concurrency_group: 'vtop/unmanaged-tablet-test'
timeout_in_minutes: 60
plugins:
- docker#v3.12.0:
image: "docker:latest"
propagate-environment: true
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,17 @@ compatible with certain Vitess and Kubernetes versions, as shown in this table:
| `v2.11.*` | `v18.0.*` | `v1.22.*`, `v1.23.*`, `v1.24.*`, or `v1.25.*` |
| `v2.12.*` | `v19.0.*` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `v2.13.*` | `v20.0.*` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `latest` | `latest` | `v1.25.*`, `v1.26.*`, `v1.27.*`, or `v1.28.*` |
| `latest` | `latest` | `v1.29.*`, `v1.30.*`, `v1.31.*` |

Choose a reason for hiding this comment

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

Don't we need an overlapping Kubernetes version with the previous release, to make upgrading easier/less risky?

Choose a reason for hiding this comment

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

That is, to support v1.28 through v1.31.

Copy link
Member Author

Choose a reason for hiding this comment

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

The main branch does support 1.28 technically


If for some reason you must attempt to use versions outside the recommend
window, we still welcome bug reports since a workaround might be possible.
However, in some cases we may be unable to overcome the underlying limitations
in our dependencies.

Each major release of the vitess-operator will support the three latest major release of Kubernetes at the time
Copy link
Collaborator

Choose a reason for hiding this comment

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

Releases plural

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed via 4ccd230

of the vitess-operator's major release RC-1. This will ensure that the major release of the vitess-operator will
always support at least one major release of Kubernetes for its whole lifetime (1 year).
Copy link
Collaborator

@mattlord mattlord Aug 30, 2024

Choose a reason for hiding this comment

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

Would be good to link to the EOL policy so it’s clear what this 1 year lifetime is about.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed via 4ccd230


### Release Cycle

For each major release of Vitess there will be a minor release of the vitess-operator.
Expand Down
27 changes: 13 additions & 14 deletions deploy/crds/planetscale.com_etcdlockservers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.3
creationTimestamp: null
controller-gen.kubebuilder.io/version: v0.16.1
name: etcdlockservers.planetscale.com
spec:
group: planetscale.com
Expand Down Expand Up @@ -62,6 +61,7 @@ spec:
items:
type: string
type: array
x-kubernetes-list-type: atomic
dataSource:
properties:
apiGroup:
Expand Down Expand Up @@ -91,18 +91,6 @@ spec:
type: object
resources:
properties:
claims:
items:
properties:
name:
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
Expand Down Expand Up @@ -133,11 +121,13 @@ spec:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
Expand All @@ -146,6 +136,8 @@ spec:
x-kubernetes-map-type: atomic
storageClassName:
type: string
volumeAttributesClassName:
type: string
volumeMode:
type: string
volumeName:
Expand All @@ -165,6 +157,7 @@ spec:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
Expand Down Expand Up @@ -203,6 +196,7 @@ spec:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
Expand Down Expand Up @@ -234,6 +228,8 @@ spec:
type: string
readOnly:
type: boolean
recursiveReadOnly:
type: string
subPath:
type: string
subPathExpr:
Expand All @@ -253,6 +249,7 @@ spec:
items:
properties:
name:
default: ""
type: string
type: object
x-kubernetes-map-type: atomic
Expand Down Expand Up @@ -280,6 +277,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down
3 changes: 1 addition & 2 deletions deploy/crds/planetscale.com_vitessbackups.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.3
creationTimestamp: null
controller-gen.kubebuilder.io/version: v0.16.1
name: vitessbackups.planetscale.com
spec:
group: planetscale.com
Expand Down
5 changes: 3 additions & 2 deletions deploy/crds/planetscale.com_vitessbackupschedules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.3
creationTimestamp: null
controller-gen.kubebuilder.io/version: v0.16.1
name: vitessbackupschedules.planetscale.com
spec:
group: planetscale.com
Expand Down Expand Up @@ -69,6 +68,8 @@ spec:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
Expand Down
3 changes: 1 addition & 2 deletions deploy/crds/planetscale.com_vitessbackupstorages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.3
creationTimestamp: null
controller-gen.kubebuilder.io/version: v0.16.1
name: vitessbackupstorages.planetscale.com
spec:
group: planetscale.com
Expand Down
Loading
Loading