giantswarm / roadmap

Giant Swarm Product Roadmap
https://github.com/orgs/giantswarm/projects/273
Apache License 2.0
3 stars 0 forks source link

Expand mc-bootstrap tests to validate installed apps #2930

Closed yulianedyalkova closed 3 weeks ago

yulianedyalkova commented 1 year ago

Currently we only ensure that mc-bootstrap runs successfully but we have no further validation of what happens with the apps installed after.

Acceptance criteria:

Task:

AverageMarcus commented 2 months ago

Ok, I've been able to think about this and have a rough idea what it might look like...

Some considerations

  1. This shouldn't be directly tied to the current mc-bootstrap setup as there is work being done to replace it with a CLI, instead this should be complementary and not rely on either the current or new implementation of mc-bootstrap
  2. It should be possible to use these tests to validate production MCs as well as the ephemeral test MCs (likely with less tests run against prod)
  3. The tests need to be runnable from both Tekton CI and from local dev laptops.

Approach

ericgraf commented 2 months ago

Here is an example on how the pipeline could be created. I put this together last Nov. https://github.com/giantswarm/mc-bootstrap/pull/721

AverageMarcus commented 1 month ago

Relevant from on-site discussion (taken from Slack thread):

To summarise: We create a new management-cluster-test-suites that runs the cluster-wide “validation” / integration tests against an MC created by mc-bootstrap. The kubeconfig will be passed through from mc-bootstrap and just run as part of the current pipeline before the teardown task. For individual app testing we have a pool of (let’s say) 10 ephemeral MCs pre-configured that we can make use for with app test suites. We then have automation that ensures at least 1 MC is “pre-warmed” at start of business day that the first run of app tests can use. When an app test is triggered we (in the background) launch the next MC in the pool so it’s ready for the next tests. Because we have a limited number of available MCs to use we’d need to use a queue in case there are more than 10 test ru

AverageMarcus commented 3 weeks ago

I'm going to consider this initial issue completed and close this.

There's still some extra work to do after this issue (add all providers, fix failing tests) but I'm going to create individual issues to track those.

@yulianedyalkova do we have an issue for individual app tests on MCs yet?

AverageMarcus commented 3 weeks ago

Test failures:

Enforce tests once above are resolved: https://github.com/giantswarm/giantswarm/issues/31820

yulianedyalkova commented 3 weeks ago

@AverageMarcus we do now - https://github.com/giantswarm/roadmap/issues/3708. I've already added our decisions in it.

AverageMarcus commented 3 weeks ago

Perfect!

Thank you :)

QuentinBisson commented 2 weeks ago

Amazing work