Skip to content

Version skew testing #519

Open
Open

Description

@tallclair

As we make changes to Konnectivity, it is important that the newer components remain compatible with older components so that the system continues to function during upgrades and other version skew scenarios. However, we currently have no visibility into this. We should add tests that run against skewed versions.

Specifically, we need to test version skew across client/server, and agent/server. I propose we update the tests in the tests directory to run against skewed versions.

Implementation steps:

  • 1. Refactor integration tests to prepare for proxy-server & agent skew testing #520
  • 2. Implement External{ProxyServer,Agent}Runner, which takes an external binary to run for the server/agent, and accesses the measurements through prometheus metrics. Expose test flags to select a binary (or the in-tree version).
  • 3. Implement a version_skew_test script that handles fetching target tagged versions, compiling, and running the tests.
  • 4. Set up CI jobs for skew testing
  • 5. Refactor client operations to enable external client testing via the test-client binary.
  • 6. Implement ExternalClient, update version_skew_test to run tests with the external client

/assign

Activity

  1. jkh52 commented on Jan 11, 2024

    @jkh52
    Contributor

    #553 (github actions using kind) could be an approach here for how to specify the versions under test. (Similar to that, but use real container image registry + version tags).

  2. k8s-triage-robot commented on Apr 10, 2024

    @k8s-triage-robot

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

    This bot triages un-triaged issues 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 as fresh with /remove-lifecycle stale
    • Close this issue with /close
    • Offer to help out with Issue Triage

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

    /lifecycle stale

  3. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.
    on Apr 10, 2024
  4. tallclair commented on Apr 24, 2024

    @tallclair
    ContributorAuthor

    /triage accepted
    /remove-lifecycle stale

  5. added
    triage/acceptedIndicates an issue or PR is ready to be actively worked on.
    and removed
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.
    on Apr 24, 2024
  6. k8s-triage-robot commented on Apr 24, 2025

    @k8s-triage-robot

    This issue has not been updated in over 1 year, and should be re-triaged.

    You can:

    • Confirm that this issue is still relevant with /triage accepted (org members only)
    • Close this issue with /close

    For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

    /remove-triage accepted

  7. added
    needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.
    and removed
    triage/acceptedIndicates an issue or PR is ready to be actively worked on.
    on Apr 24, 2025
  8. tallclair commented on Apr 25, 2025

    @tallclair
    ContributorAuthor

    The foundation is in place, but we still need to wire it up. Version skew testing is still needed, and will make it much safer to make protocol changes.

    /triage accepted

  9. k8s-triage-robot commented on Apr 25, 2026

    @k8s-triage-robot

    This issue has not been updated in over 1 year, and should be re-triaged.

    You can:

    • Confirm that this issue is still relevant with /triage accepted (org members only)
    • Close this issue with /close

    For more details on the triage process, see https://www.kubernetes.dev/docs/guide/issue-triage/

    /remove-triage accepted

  10. removed
    triage/acceptedIndicates an issue or PR is ready to be actively worked on.
    on Apr 25, 2026
  11. k8s-triage-robot commented on Oct 17, 2026

    @k8s-triage-robot

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

    This bot triages un-triaged issues 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 as fresh with /remove-lifecycle stale
    • Close this issue with /close
    • Offer to help out with Issue Triage

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

    /lifecycle stale

  12. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.
    on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions