gardener / etcd-druid

An etcd operator to configure, provision, reconcile and monitor etcd clusters.
https://gardener.github.io/etcd-druid/
Apache License 2.0
77 stars 50 forks source link

☂️ Enhance and Stabilise Druid E2E tests #782

Open unmarshall opened 8 months ago

unmarshall commented 8 months ago

What you would like to be added:

e2e tests for etcd-druid should only test etcd-druid and not etcd-backup-restore. Eventually remove all backup-restore or etcd specific tests. These should be done in etcd-backup-restore and etcd-wrapper repositories respectively.

Motivation (Why is this needed?): E2E tests should be simple, comprehensive, fast and stable.

shreyas-s-rao commented 5 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:

Ex: list of manual tests executed before merging #777 | TEST NAME | Druid Auto-Reconcile | Single/Multi Node | Backups (provider) | Etcd Client TLS | Etcd Peer TLS | EtcdBR TLS | TEST RESULT | | ------------------------------------------------------------------------------------------------------- | -------------------- | ----------------- | ------------------ | --------------- | ------------- | ---------- | ----------- | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Single | NA | FALSE | FALSE | FALSE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Single | NA | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Single | AWS | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | NA | FALSE | FALSE | FALSE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | NA | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | AWS | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | GCP | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | Azure | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | Openstack | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | FALSE | Multi | Local | TRUE | TRUE | TRUE | TRUE | | Perform etcd spec changes, check if reconciliation triggered | FALSE | Multi | GCP | TRUE | TRUE | TRUE | TRUE | | Scale-up etcd from single-node non-TLS to multi-node non-TLS, hibernate, unhibernate | FALSE | Single | GCP | FALSE | FALSE | FALSE | TRUE | | Scale-up etcd from single-node non-TLS to multi-node TLS, hibernate, unhibernate | FALSE | Single | GCP | FALSE | FALSE | FALSE | TRUE | | Scale-up etcd from single-node TLS to multi-node TLS, hibernate, unhibernate | FALSE | Single | NA | TRUE | TRUE | TRUE | TRUE | | Upgrade druid from master to #777, check status updates, add reconcile annotation, check reconciliation | FALSE | Multi | GCP | TRUE | TRUE | TRUE | TRUE | | Deploy etcdcopybackupstask, check success | FALSE | Multi | Local | TRUE | TRUE | TRUE | TRUE | | Configure compaction with low threshold, populate etcd, check if compaction jobs are triggered and run | FALSE | Single | AWS | TRUE | TRUE | TRUE | TRUE | | Deploy etcd, check reconciliation, hibernate, unhibernate, delete etcd | TRUE | Multi | GCP | TRUE | TRUE | TRUE | TRUE | | Perform etcd spec changes, check if reconciliation triggered | TRUE | Multi | GCP | TRUE | TRUE | TRUE | TRUE |
unmarshall commented 3 months ago

https://github.com/gardener/etcd-druid/pull/833 introduced namespace separation but this will be completely re-written.