Open unmarshall opened 8 months ago
Manual tests that I generally run before merging large PRs, cover different combinations of druid auto-reconcile enabled, single/multi node etcds, backups disabled/enabled (with different providers), TLS disabled/enabled, etc, for various scenarios like:
https://github.com/gardener/etcd-druid/pull/833 introduced namespace separation but this will be completely re-written.
What you would like to be added:
[x] Use
KO
to build images so that these are faster.[ ] Generate all PKI artifacts to be used for e2e tests. This utility should be re-used for any tests (other than e2e tests) that require PKI artifacts.
[ ] Use local provider instead of emulators for etcd-druid e2e tests.
hostPath
can be configured when creating the backup-secret. Kind already comes bundled with rancher's local-path-provisioner making it possible to use local store as backup-bucket. As a consequence we removehack/e2e-test/infrastructure
. This also considerably simplifies our e2e setup and the time it takes to do the setup also reduces. (Do we need to test with(out) a backup-bucket?) - This needs to be decided.[ ] Use separate
namespace
for running e2e tests concurrently (using go-native tests)[ ] In skaffold.yaml change the image to just
etcd-druid
. When you invokekind-up
then it will setup a KIND cluster and a local registry. It will also automatically integrate with this registry. This avoids explicit loading of images viakind load
and completely removes the need to push dev images to gcr container registry.[ ] Remove ginkgo with native golang tests. We are removing ginkgo usage from druid. A lot of unit and some IT tests have already been migrated and will be merged with #777 .
[ ] For tests that have failed, preserve their namespaces so that developers can debug. For tests that have passed cleanup the respective namespaces.
[ ] Do not stop the kind cluster at the end of the test run. Or at least have an option to not do that. For concourse pipeline mandatory cleanup is required but for local runs where an ability to analyse failure is required there we can switch it off.
[ ] Need to add proper compaction and copy-backups-task testing to the e2e test suite. (https://github.com/gardener/etcd-druid/issues/705)
[ ] https://github.com/gardener/etcd-druid/issues/706
[ ] #807
[ ] Test backward compatibility to previous druid version (support for downgrade)
[ ] Test reconciliation after error in previous reconciliation which had caused the etcd cluster to be unready. This test would catch cases such as the one described in #818
[ ] Enable etcd-components webhook and run the e2e tests to check the functionality offered by this webhoook.
[ ] (Performance/Benchmark): Record and publish (as logs) startup times for etcd clusters. Ideally these should be recorded as metrics for all clusters managed by druid on dev/staging/canary/live landscapes. This will help understand any deterioration in the startup times across releases.
[ ] Have capability to put breakpoint to any test and enable debugging from the IDE.
[ ] Should be able to do fast iterations with quasi hot deploy (golang unfortunately does not support real hot-deploy).
Motivation (Why is this needed?): E2E tests should be simple, comprehensive, fast and stable.