Skip to content
Merged
Changes from all 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
5 changes: 5 additions & 0 deletions test/e2e/control_plane_automated_z_stream_upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ var _ = Describe("Control plane automated z-stream upgrade with candidate channe
customerClusterNamePrefix = "cluster-zstream-"
)

// TODO: remove once https://github.com/Azure/ARO-HCP/pull/4618 is merged
if version == "4.19" && time.Now().Before(time.Date(2026, 4, 1, 0, 0, 0, 0, time.UTC)) {
Skip("4.19 z-stream test temporarily skipped: Cincinnati returns versions the RP doesn't serve")
}
Comment on lines +44 to +47

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can we skip it here

Expect(err).NotTo(HaveOccurred())

It can happen that even for 4.20+ versions, a new version which just got release is selected just before it's loaded in CS database by the worker. In this case, you'll still get

{
      "error": {
        "code": "InvalidRequestContent",
        "message": "Version 'openshift-v4.y.z-candidate' doesn't exist"
      }
    }

So I'll skip the test based on that error up for now to avoid making our test fail that run. Chances of it happening are pretty low but can happen. That will go away when we move the creation of the cluster to the backend - being discussed here #4477

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This can be a followup

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Manyanda Chitimbo (@machi1990) How will moving the cluster creation call solve the issue of a new version selected before getting loaded in CS?

@machi1990 Manyanda Chitimbo (machi1990) Mar 25, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Jakob Gray (@JakobGray) good question.

Because the create cluster controller will be the one to retry the operation and not the test.
CS already loads all the version in an interval of 5 minutes. When a new one is available, cs discovers it in that worker and loads it (See the maxVersion entries in the config ).

The idea is that the controller will do this:

  • call CS with the 4.Y.Z

  • What could happen then is:

    • CS doesn't requested image in its DB because not reconciled yet; CS returns the error above
    • The controller requeues on that for the call to be retried later
    • Eventually (in 5minutes) cs discovers the new image the call is accepted

    How does that sound with you?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I can see that for cluster create, but for an automatic z-stream upgrade don't we always run the risk of trying to upgrade before CS has discovered the new image?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Z-stream upgrade triggers are also retriable in the same sense. When a new x.y.z has been computed; a call is made. If CS errors out - because an upgrade graph is missing on CS' database, it'll be retried.


installVersion, hasUpgradePath, err := framework.GetInstallVersionForZStreamUpgrade(ctx, "candidate", version)
if err != nil {
if cincinatti.IsCincinnatiVersionNotFoundError(err) {
Expand Down
Loading