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

[e2e] Replace conformance test with ClusterUpgradeConformance spec #2993

Closed
sedefsavas opened this issue Nov 29, 2021 · 15 comments
Closed

[e2e] Replace conformance test with ClusterUpgradeConformance spec #2993

sedefsavas opened this issue Nov 29, 2021 · 15 comments
Assignees
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@sedefsavas
Copy link
Contributor

CAPI e2e tests are taking 30 min longer after adding ClusterUpgradeConformanceSpec #2935, as it runs conformance tests.

There is a redundancy now, we are running conformance tests in 2 different prow jobs.

There is one issue with replacing conformance test suite with ClusterUpgradeConformanceSpec, we run conformance tests on the latest unstable Kubernetes version as well. So the version needs to be dynamically set for ClusterUpgradeConformanceSpec template.

/priority important-soon
/triage accepted
/milestone v1.2.0

@k8s-ci-robot k8s-ci-robot added this to the v1.2.0 milestone Nov 29, 2021
@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on. labels Nov 29, 2021
@sedefsavas
Copy link
Contributor Author

cc @pydctw

@pydctw
Copy link
Contributor

pydctw commented Nov 30, 2021

CAPI e2e tests are taking 30 min longer after adding ClusterUpgradeConformanceSpec #2935, as it runs conformance tests.

I also noticed it.

My plan is

  • Skip conformance test for ClusterUpgradeConformanceSpec in CAPI e2e test. We will only test cluster upgrade functionality here.
  • Looks like we can replace currently disabled KCPUpgradeSpecs with ClusterUpgradeConformanceSpec. Asking clarifying questions to CAPI team for control plane count programmability.
  • Will work on replacing the existing conformance suite with ClusterUpgradeConformanceSpec.

@sedefsavas
Copy link
Contributor Author

Sounds good. If you can replace conformance suite with the upgrade spec, then you won't need to test it in CAPI e2e tests anymore, so only second and third point is needed.

@pydctw
Copy link
Contributor

pydctw commented Nov 30, 2021

/assign

@pydctw
Copy link
Contributor

pydctw commented Dec 3, 2021

  • Skip conformance test for ClusterUpgradeConformanceSpec in CAPI e2e test. We will only test cluster upgrade functionality here.
  • Looks like we can replace currently disabled KCPUpgradeSpecs with ClusterUpgradeConformanceSpec. Asking clarifying questions to CAPI team for control plane count programmability.

Submitted a PR to address the first two points.

@pydctw
Copy link
Contributor

pydctw commented Dec 3, 2021

  • Will work on replacing the existing conformance suite with ClusterUpgradeConformanceSpec.

Questions for replacing the existing conformance suite.

  • Are there gaps in the existing conformance test that ClusterUpgradeConformanceSpec will address? Trying to understand the why.
  • If I understand it correctly, we are running two conformance tests, one with stable k8s version, the other against k8s main branch. I am not sure how to do it in ClusterUpgradeConformance test. The test uses KUBERNETES_VERSION_UPGRADE_TO in e2e_conf.yaml. I may be missing something simple - is there a way to program it dynamically?

@sedefsavas
Copy link
Contributor Author

We can move forward with the rest of the changes as cluster-api removed KCPUpgrade spec.
Updating the cluster api version in this PR:
#3058

@sedefsavas
Copy link
Contributor Author

@pydctw

  • Are there gaps in the existing conformance test that ClusterUpgradeConformanceSpec will address? Trying to understand the why.

One extra signal we are getting by using ClusterUpgradeConformanceSpec is upgraded cluster is passing the conformance, not just the standalone cluster with that particular version.
Also, we won't need to maintain conformance suit if we move to ClusterUpgradeConformanceSpec and this will make tests more standardized. e2e tests are already complex so calling cluster-api specs wherever possible, reduces our burden to maintain.

If I understand it correctly, we are running two conformance tests, one with stable k8s version, the other against k8s main branch. I am not sure how to do it in ClusterUpgradeConformance test. The test uses KUBERNETES_VERSION_UPGRADE_TO in e2e_conf.yaml. I may be missing something simple - is there a way to program it dynamically?

I think this might work:
Use flavor = "conformance-ci-artifacts and set the version variable like this:
shared.SetEnvVar("KUBERNETES_VERSION_UPGRADE_TO", v1.23.2)`

@sedefsavas
Copy link
Contributor Author

Also we have a disabled test:
ginkgo.PDescribe("[Serial] Upgrade to main branch Kubernetes", func()

We should probably delete this, looks redundant.

@sedefsavas
Copy link
Contributor Author

@pydctw
We don't need worker machines during KCP upgrade tests, it is supported to use 0 worker machines:
kubernetes-sigs/cluster-api#5926

@pydctw
Copy link
Contributor

pydctw commented Jan 27, 2022

@pydctw We don't need worker machines during KCP upgrade tests, it is supported to use 0 worker machines: kubernetes-sigs/cluster-api#5926

Yes, when I submitted the PR, having 0 worker machines were not supported in CAPI yet.
When I come back to this issue, will refactor the code. Thanks for the info.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 28, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 28, 2022
@richardcase richardcase changed the title Replace conformance test with ClusterUpgradeConformance spec [e2e] Replace conformance test with ClusterUpgradeConformance spec Jun 21, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Reopen this issue or PR with /reopen
  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

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
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

4 participants