Skip to content

Restore periodic prow job for upgrade tests #5193

@lbernick

Description

@lbernick

Recently, we have had a few issues of regressions that were not detected by CI.

For example, #4834 introduced changes that caused a new client to be incompatible with an old server.

In addition, some breaking changes were introduced where resources already stored on a cluster became invalid when the server version was upgraded. #4779 added new defaults via the mutating webhook, and then #4818 validated the existence of these defaults. However, existing resources didn't receive these defaults, so they failed validation.

We already have some upgrade tests.
These tests have two parts:

  1. Install a new version on a cluster with an older server version, and run integration tests (using the newer version client) on this newer version server
  2. Create some resources on a cluster with an older server version, then upgrade the cluster to use a newer server version. Run integration tests on this cluster.

We should add a step where we run integration tests on the older server version (before upgrading the server). This will address the first type of regression detailed here. When we do make a breaking change purposefully (after deprecating a field), I would imagine we'd remove tests for this functionality, so I don't think adding this check would stop us from removing deprecated fields.

The second type of regression (existing resources becoming invalid) seems like it should have been caught by the upgrade tests. I'm not sure why these tests didn't catch this issue-- maybe upgrading the server reapplies the webhook defaults.

Metadata

Metadata

Assignees

Labels

help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.

Type

No type

Projects

Status

Done

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions