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

Use K8s v1.29.0 in e2e test #828

Merged
merged 1 commit into from
Jan 23, 2024
Merged

Conversation

DanielXiao
Copy link
Collaborator

What this PR does / why we need it:
Pretest Job pull-cloud-provider-vsphere-e2e-test runs against K8s v1.23.5 Clusters which is already out of support in Cluster-API.

This patch bumps dependent CAPI to 1.6.1 and CAPV to 1.9.0 to deploy v1.29.0 Clusters. It also adds a makefile target to run test locally with any development images manually pushed to a registry. This is helpful for local development because you don't have to create a PR for pushing the image to gcr.io/cloud-provider-vsphere/cpi/pr/manager.

Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #780

Special notes for your reviewer:

Release note:

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jan 19, 2024
@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jan 19, 2024
@DanielXiao
Copy link
Collaborator Author

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Jan 19, 2024
@DanielXiao
Copy link
Collaborator Author

/test pull-cloud-provider-vsphere-e2e-test

Copy link
Member

@XudongLiuHarold XudongLiuHarold left a comment

Choose a reason for hiding this comment

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

generally lgtm, some minor questions.

/lgtm

test/e2e/config/vsphere-ci.yaml Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Outdated Show resolved Hide resolved
test/e2e/Makefile Outdated Show resolved Hide resolved
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 22, 2024
Copy link
Member

@chrischdi chrischdi left a comment

Choose a reason for hiding this comment

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

We could propably also cleanup the variables part, but I think its okay to keep it comparable.

test/e2e/config/vsphere-ci.yaml Outdated Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Outdated Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Outdated Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Outdated Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Show resolved Hide resolved
test/e2e/config/vsphere-ci.yaml Show resolved Hide resolved
@sbueringer
Copy link
Member

sbueringer commented Jan 22, 2024

I think with the changes suggested this should be a good step to test with latest stable CAPI & CAPV releases and Kubernetes 1.29.0.

I think it would be good if we talk ~ 1 month before the Kubernetes 1.30 release to see if we want to start bumping towards 1.30 (at this point we should also already know with CAPI & CAPV versions are needed to create 1.30 clusters).

@sbueringer
Copy link
Member

sbueringer commented Jan 22, 2024

Something worth highlighting. The sigs.k8s.io/controller-runtime dependency in the top-level go.mod file could be a major showstopper for quick 1.30 support.

Example:

  • Let's assume k8s.io/* 0.29 and 0.30 dependencies are not compile-compatible
  • Then you have to wait until controller-runtime 0.17 is released before you can bump to k8s.io/cloud-provider 0.30
  • The last time it took ~ 4 weeks from the Kubernetes 1.29 to the controller-runtime 0.16 release (which used 0.29 k8s.io dependencies)
  • We can't really speed up the controller-runtime release by much as it depends on a lot of other people

=> Given that, I would recommend to get rid of the controller-runtime dependency in the top-level go.mod file

(cc @DanielXiao @lubronzhan)

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 23, 2024
Pretest Job pull-cloud-provider-vsphere-e2e-test runs against K8s
v1.23.5 Clusters which are already out of support in Cluster-API.

This patch bumps dependent CAPI to 1.6.1 and CAPV to 1.9.0 to deploy
v1.29.0 Clusters. It also adds a makefile target to run test locally
with any development images manually pushed to a registry. This is
helpful for local development because you don't have to create a PR
for pushing the image to gcr.io/cloud-provider-vsphere/cpi/pr/manager.

This patch also remove variable INIT_WITH_KUBERNETES_VERSION.
KUBERNETES_VERSION will be used for both bootstrap and workload
cluster version.
Copy link
Member

@XudongLiuHarold XudongLiuHarold left a comment

Choose a reason for hiding this comment

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

The PR looks great, just one minor question

/lgtm

new: "imagePullPolicy: IfNotPresent"
files:
- sourcePath: "../data/shared/metadata.yaml"
- name: cluster-api
Copy link
Member

@XudongLiuHarold XudongLiuHarold Jan 23, 2024

Choose a reason for hiding this comment

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

Just one minor question @DanielXiao :

Will it have any side effects if we only support v1beta1, is it safe to remove the v1alpha3 and v1alpha4 support?

Copy link
Member

Choose a reason for hiding this comment

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

You are only installing one version of Cluster API which is v1.6.1. Dropping v1.5, v1.4, ... doesn't change anything.

The apiVersions supported will be the one supported by Cluster API v1.6.1

Copy link
Member

@sbueringer sbueringer Jan 23, 2024

Choose a reason for hiding this comment

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

Some additional context. In core CAPI and in CAPV we have tests that test the following:

  • install old versions of CAPI & CAPV
  • create a workload cluster
  • upgrade to newer versions of CAPI & CAPV
  • modify the workload cluster

The idea is to verify if we can upgrade from a set of CAPI & CAPV versions to another one. This is the reason why we have to define multiple CAPI & CAPV versions in this config file.

Here in CPI you only want to create a workload cluster with specific versions of CAPI & CAPV. There is no upgrade test.

Copy link
Member

Choose a reason for hiding this comment

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

Gotcha, thanks @sbueringer !

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 23, 2024
@sbueringer
Copy link
Member

Thx!

/lgtm

Copy link
Member

@XudongLiuHarold XudongLiuHarold left a comment

Choose a reason for hiding this comment

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

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: DanielXiao, XudongLiuHarold

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jan 23, 2024
@k8s-ci-robot k8s-ci-robot merged commit 5ea4d96 into kubernetes:master Jan 23, 2024
15 checks passed
@DanielXiao
Copy link
Collaborator Author

/cherry-pick release-1.29

@k8s-infra-cherrypick-robot

@DanielXiao: new pull request created: #839

In response to this:

/cherry-pick release-1.29

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade kubernetes version in CI config for each release
6 participants