Skip to content

E2e test planning #69

Open
Open

Description

@alicefr

Let's discuss about the test planning. Currently, we only test the happy path for the reboot

Ideas about follow-up tests:

  1. Extend the test TestUpdateReboot by rolling back to the previous image
  2. Pause the rollout and check that the resuming continue correctly
  3. Try to upgrade to no-existing image, the node should go in degraded state and the rollout should be paused
  4. Shutdown (manually) a node after the reboot to simulate a faulty node, after the upgrade. It should be reported as degraded
  5. Try to kill the controller/daemon during a roll-out. They should recover and the rollout should progress and terminate successfully
  6. Testing the happy path with the digests (once supported)
  7. Upgrade to an image protected by a pull secret (once supported)
  8. Try to switch to a completely different image e.g fedora to centos stream
  9. Test upgrades for the operator

Activity

  1. added this to the v0.1 milestone on Jun 25, 2026
  2. jlebon commented on Jun 29, 2026

    @jlebon
    Collaborator

    One general note: since each test spawns a separate worker node, which takes time, I would bundle these subtests into tests where it makes sense. E.g. error conditions/recovery tests could all be checked together in one test for example.

  3. jlebon commented on Jun 29, 2026

    @jlebon
    Collaborator

    Try to switch to a completely different image e.g fedora to centos stream

    Is the more general thing we're testing here that the node degrades successfully if rebooting into an image which doesn't actually have e.g. the kubelet?

    Test upgrades for the operator

    This relates to #14.

  4. jlebon commented on Jul 23, 2026

    @jlebon
    Collaborator

    @ptalgulk01 Another useful test here is: you start a rollout for a certain image, and then change the target image during the rollout. We should still see all the nodes eventually converge to the updated target image (even if some might've already rebooted into the old one by then). This is important because it verifies that the state machines of the controller and daemon can't deadlock each other during corner cases.

  5. ptalgulk01 commented on Jul 27, 2026

    @ptalgulk01
    Collaborator

    @ptalgulk01 Another useful test here is: you start a rollout for a certain image, and then change the target image during the rollout. We should still see all the nodes eventually converge to the updated target image (even if some might've already rebooted into the old one by then). This is important because it verifies that the state machines of the controller and daemon can't deadlock each other during corner cases.

    thank you, I have added the test scenario here https://github.com/bootc-dev/bootc-operator/pull/115/changes#diff-f653b9b9559a51ff5f52f509882107638c85311fb6074afffc018e1b4ef9fbc0R404

  6. cheesesashimi commented on Sep 2, 2026

    @cheesesashimi
    Collaborator

    There could be a possible intersection between this and #108

  7. removed this from the v0.1 milestone on Sep 23, 2026
  8. alicefr commented on Oct 20, 2026

    @alicefr
    CollaboratorAuthor

    @ptalgulk01 I think we can close this. A part from the test number 8, we have already include all of them. The eightth test I would say we skip it for now, since it requires some implementation in bink

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions