Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update golang version to 1.22 and adapt loop var improvements #826

Merged
merged 3 commits into from
Jul 3, 2024
Merged

Update golang version to 1.22 and adapt loop var improvements #826

merged 3 commits into from
Jul 3, 2024

Conversation

unmarshall
Copy link
Contributor

How to categorize this PR?

/area dev-productivity
/area quality
/kind enhancement

What this PR does / why we need it:

This PR makes the following changes:

  1. Upgrades golang to version 1.22 (CI Pipeline definition is changed to use 1.22.4)
  2. Removes the need to re-initialize loop variables. See redefining loop variables and release-notes for additional context.

Which issue(s) this PR fixes:
Fixes #778

Special notes for your reviewer:

Release note:

Upgrades to golang version 1.22.4

@unmarshall unmarshall requested a review from a team as a code owner July 3, 2024 07:25
@gardener-robot gardener-robot added area/dev-productivity Developer productivity related (how to improve development) area/quality Output qualification (tests, checks, scans, automation in general, etc.) related kind/enhancement Enhancement, improvement, extension needs/review Needs review size/xs Size of pull request is tiny (see gardener-robot robot/bots/size.py) labels Jul 3, 2024
@gardener-robot-ci-1 gardener-robot-ci-1 added the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Jul 3, 2024
@gardener-robot-ci-2 gardener-robot-ci-2 added needs/ok-to-test Needs approval for testing (check PR in detail before setting this label because PR is run on CI/CD) and removed reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) labels Jul 3, 2024
@seshachalam-yv
Copy link
Contributor

/assign

Copy link
Contributor

@seshachalam-yv seshachalam-yv left a comment

Choose a reason for hiding this comment

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

/lgtm
Thank you, @unmarshall, for updating the Go version to 1.22. However, it appears that this update is causing Concourse jobs to fail on this branch, make test runs successfully when executed locally.

make test
(⎈|kind-etcd-druid-e2e:N/A)➜  etcd-druid git:(goversion) ✗ make test
# run ginkgo unit tests. These will be ported to golang native tests over a period of time.
> Ginkgo tests
[1719992251] Controller Utils suite - 8/8 specs •••••••• SUCCESS! 440.041µs PASS
[1719992251] Secret Controller Suite - 10/10 specs •••••••••• SUCCESS! 2.625292ms PASS
[1719992251] Metrics Suite - 4/4 specs •••• SUCCESS! 364µs PASS
[1719992251] Mapper Suite - 2/2 specs •• SUCCESS! 321.5µs PASS
[1719992251] EtcdCopyBackupsTask Controller Suite - 59/59 specs ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• SUCCESS! 6.412375ms PASS

Ginkgo ran 5 suites in 36.378975125s
Test Suite Passed
# run the golang native unit tests.
> Go tests
📦 github.com/gardener/etcd-druid/api/v1alpha1 (5.2% coverage)
  ✅ TestAreManagedResourcesProtected (0s)
  ✅ TestAreManagedResourcesProtected/DisableEtcdComponentProtectionAnnotation_is_set (0s)
  ✅ TestAreManagedResourcesProtected/No_DisableEtcdComponentProtectionAnnotation_annotation_is_set (0s)
  ✅ TestGetAsOwnerReference (0s)
  ✅ TestGetClientServiceName (0s)
  ✅ TestGetCompactionJobName (0s)
  ✅ TestGetConfigMapName (0s)
  ✅ TestGetDefaultLabels (0s)
  ✅ TestGetDeltaSnapshotLeaseName (0s)
  ✅ TestGetFullSnapshotLeaseName (0s)
  ✅ TestGetMemberLeaseNames (0s)
  ✅ TestGetNamespaceName (0s)
  ✅ TestGetOrdinalPodName (0s)
  ✅ TestGetPeerServiceName (0s)
  ✅ TestGetPodDisruptionBudgetName (0s)
  ✅ TestGetRoleBindingName (0s)
  ✅ TestGetRoleName (0s)
  ✅ TestGetServiceAccountName (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/Both_annotations_(SuspendEtcdSpecReconcileAnnotation_and_IgnoreReconciliationAnnotation)_are_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/IgnoreReconciliationAnnotation_is_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/No_annotation_is_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/SuspendEtcdSpecReconcileAnnotation_is_set (0s)
  ✅ TestIsBackupStoreEnabled (0s)
  ✅ TestIsBackupStoreEnabled/when_backup_is_enabled (0s)
  ✅ TestIsBackupStoreEnabled/when_backup_is_not_enabled (0s)
  ✅ TestIsEtcdMarkedForDeletion (0s)
  ✅ TestIsEtcdMarkedForDeletion/Etcd_marked_for_deletion (0s)
  ✅ TestIsEtcdMarkedForDeletion/Etcd_not_marked_for_deletion (0s)
  ✅ TestIsReconciliationInProgress (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_does_not_have_lastOperation_set (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Error (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Processing (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Succeeded (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_create (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_delete (0s)

📦 github.com/gardener/etcd-druid/api/validation (87.7% coverage)
  ✅ TestValidation (0s)
Running Suite: Etcd Validation Suite - /Users/i568019/Desktop/review/etcd-druid/api/validation
==============================================================================================
Random Seed: 1719992292

Will run 13 of 13 specs
•••••••••••••

Ran 13 of 13 Specs in 0.001 seconds
SUCCESS! -- 13 Passed | 0 Failed | 0 Pending | 0 Skipped

📦 github.com/gardener/etcd-druid/internal/component
	github.com/gardener/etcd-druid/internal/component		coverage: 0.0% of statements

📦 github.com/gardener/etcd-druid/internal/component/clientservice (84.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
  ✅ TestSyncWhenNoServiceExists (0s)
  ✅ TestSyncWhenNoServiceExists/create_client_service_with_custom_ports (0s)
  ✅ TestSyncWhenNoServiceExists/create_client_service_with_default_ports (0s)
  ✅ TestSyncWhenNoServiceExists/create_fails_when_there_is_a_create_error (0s)
  ✅ TestSyncWhenServiceExists (0s)
  ✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
  ✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_client_service_does_not_exist (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_client_service (0s)

📦 github.com/gardener/etcd-druid/internal/component/configmap (87.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_no_configmap_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_configmap_name (0s)
  ✅ TestPrepareInitialCluster (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_multi_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_disabled (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
  ✅ TestSyncWhenConfigMapExists (0s)
  ✅ TestSyncWhenConfigMapExists/returns_error_when_patch_client_request_fails (0s)
  ✅ TestSyncWhenConfigMapExists/update_configmap_when_peer_TLS_communication_is_enabled (0s)
  ✅ TestSyncWhenNoConfigMapExists (0s)
  ✅ TestSyncWhenNoConfigMapExists/return_error_when_create_client_request_fails (0s)
  ✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_multi-node_etcd_cluster (0s)
  ✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_single_node_etcd_cluster (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_configmap_does_not_exist (0s)
  ✅ TestTriggerDelete/return_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_configmap (0s)

📦 github.com/gardener/etcd-druid/internal/component/memberlease (86.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/2_of_3_leases_exist_for_a_3_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/all_leases_exist_for_a_3_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/lease_exists_for_a_single_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/should_return_an_empty_slice_when_no_member_leases_are_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_list_fails (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_member_leases_for_a_single_node_etcd_cluster (0s)
  ✅ TestSync/creates_member_leases_when_etcd_replicas_is_changes_from_1_->_3 (0s)
  ✅ TestSync/should_return_error_when_client_create_fails (0s)
  ✅ TestSync/should_return_error_when_client_get_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_no_member_lease_exists (0s)
  ✅ TestTriggerDelete/only_delete_member_leases_and_not_snapshot_leases (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_deletes_all_member_leases (0s)
  ✅ TestTriggerDelete/successfully_deletes_remainder_member_leases (0s)

📦 github.com/gardener/etcd-druid/internal/component/peerservice (82.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
  ✅ TestPeerServiceTriggerDelete (0s)
  ✅ TestPeerServiceTriggerDelete/no-op_and_no_error_if_peer_service_not_found (0s)
  ✅ TestPeerServiceTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestPeerServiceTriggerDelete/successfully_deletes_an_existing_peer_service (0s)
  ✅ TestSyncWhenNoServiceExists (0s)
  ✅ TestSyncWhenNoServiceExists/create_peer_service_with_default_ports_when_none_exists (0s)
  ✅ TestSyncWhenNoServiceExists/create_service_when_none_exists_with_custom_ports (0s)
  ✅ TestSyncWhenNoServiceExists/returns_error_when_client_create_fails (0s)
  ✅ TestSyncWhenServiceExists (0s)
  ✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
  ✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)

📦 github.com/gardener/etcd-druid/internal/component/poddistruptionbudget (84.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_PDB_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_PDB (0s)
  ✅ TestSyncWhenNoPDBExists (0s)
  ✅ TestSyncWhenNoPDBExists/create_PDB_for_multi_node_etcd_cluster_when_none_exists (0s)
  ✅ TestSyncWhenNoPDBExists/create_PDB_for_single_node_etcd_cluster_when_none_exists (0s)
  ✅ TestSyncWhenNoPDBExists/returns_error_when_client_create_fails (0s)
  ✅ TestSyncWhenPDBExists (0s)
  ✅ TestSyncWhenPDBExists/returns_error_when_client_patch_fails (0s)
  ✅ TestSyncWhenPDBExists/successfully_update_PDB_when_etcd_cluster_replicas_changed_from_1_->_3 (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_and_no_error_if_the_pdb_is_not_found (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_deletes_existing_pdb (0s)

📦 github.com/gardener/etcd-druid/internal/component/role (84.4% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_role_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_role_fails_when_client_create_fails (0s)
  ✅ TestSync/create_role_when_none_exists (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
  ✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/rolebinding (84.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_binding_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_role_binding_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_role_fails_when_client_create_fails (0s)
  ✅ TestSync/create_role_when_none_exists (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
  ✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/serviceaccount (84.4% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice,_when_no_service_account_exists (0s)
  ✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_existing_service_account_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_service_account_when_none_exists (0s)
  ✅ TestSync/create_service_account_with_disabled_auto_mount (0s)
  ✅ TestSync/should_return_err_when_client_create_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_service_account_does_not_exist (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_service_account (0s)

📦 github.com/gardener/etcd-druid/internal/component/snapshotlease (87.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/no_snapshot_leases_created_when_backup_is_disabled (0s)
  ✅ TestGetExistingResourceNames/returns_error_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/successfully_returns_delta_and_full_snapshot_leases (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled/deletes_snapshot_leases_when_backup_has_been_disabled (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled/returns_error_when_client_delete_fails (0s)
  ✅ TestSyncWhenBackupIsEnabled (0s)
  ✅ TestSyncWhenBackupIsEnabled/create_snapshot_lease_when_backup_is_enabled (0s)
  ✅ TestSyncWhenBackupIsEnabled/returns_error_when_client_create_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_backup_is_not_enabled (0s)
  ✅ TestTriggerDelete/should_only_delete_snapshot_leases_when_backup_is_enabled (0s)
  ✅ TestTriggerDelete/should_return_error_when_client_delete-all_fails (0s)

📦 github.com/gardener/etcd-druid/internal/component/statefulset (58.6% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_an_empty_slice_if_no_sts_is_found (0s)
  ✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_existing_sts (0s)
  ✅ TestSyncWhenNoSTSExists (0s)
  ✅ TestSyncWhenNoSTSExists/creates_a_single_replica_sts_for_a_single_node_etcd_cluster (0s)
  ✅ TestSyncWhenNoSTSExists/creates_multiple_replica_sts_for_a_multi-node_etcd_cluster (0s)
  ✅ TestSyncWhenNoSTSExists/returns_error_when_client_create_fails (0s)

📦 github.com/gardener/etcd-druid/internal/controller/compaction (14.8% coverage)
  ✅ TestJobStatusChangedForUpdateEvents (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_and_status_is_changed (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_but_status_is_not_changed (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_not_a_job (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_and_holder_identity_is_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_but_holder_identity_is_not_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_and_holder_identity_is_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_but_holder_identity_is_not_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_not_a_lease_object (0s)
  ✅ TestSnapshotRevisionChangedForDeleteEvents (0s)
  ✅ TestSnapshotRevisionChangedForGenericEvents (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_and_holder_identity_is_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_but_holder_identity_is_not_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_and_holder_identity_is_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_but_holder_identity_is_not_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_not_a_lease_object (0s)

📦 github.com/gardener/etcd-druid/internal/controller/etcd (15.7% coverage)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_spec_has_changed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/neither_spec_nor_status_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_spec_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_status_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/both_spec_and_status_have_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/neither_spec_nor_status_has_changed (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_completed (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_errored (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_status_has_changed (0s)

📦 github.com/gardener/etcd-druid/internal/utils (68.5% coverage)
  ✅ TestContainsAllDesiredLabels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_a_key_with_a_different_value (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels_and_extra_labels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_is_missing_a_key (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_is_nil (0s)
  ✅ TestContainsAllDesiredLabels/both_maps_are_nil (0s)
  ✅ TestContainsAllDesiredLabels/desired_map_is_nil (0s)
  ✅ TestContainsLabel (0s)
  ✅ TestContainsLabel/labels_map_has_the_key_with_a_different_value (0s)
  ✅ TestContainsLabel/labels_map_has_the_key_with_the_desired_value (0s)
  ✅ TestContainsLabel/labels_map_is_missing_the_key (0s)
  ✅ TestContainsLabel/labels_map_is_nil (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_error_in_listing_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_no_warning_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_with_warning_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/error_in_listing_PVCs (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/no_PVCs_found (0s)
  ✅ TestGetEtcdImages (0s)
  ✅ TestGetEtcdImages/#00 (0s)
  ✅ TestGetEtcdImages/#01 (0s)
  ✅ TestGetEtcdImages/#02 (0s)
  ✅ TestGetEtcdImages/#03 (0s)
  ✅ TestGetEtcdImages/etcd_spec_defines_etcd_and_etcdBR_images (0s)
  ✅ TestGetEtcdImages/etcd_spec_has_no_image_defined_and_image_vector_has_etcd_and_etcdBR_images_set (0s)
  ✅ TestGetStatefulSet (0s)
  ✅ TestGetStatefulSet/no_sts_found (0s)
  ✅ TestGetStatefulSet/returns_error_when_client_get_fails (0s)
  ✅ TestGetStatefulSet/sts_found_and_owned_by_etcd (0s)
  ✅ TestGetStatefulSet/sts_found_but_not_owned_by_etcd (0s)
  ✅ TestHasPodReadyConditionTrue (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_True (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_not_True (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_no_Ready_condition (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_error_when_client_list_call_fails (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_none_of_the_members_have_peer_TLS_enabled (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_one_of_three_do_not_have_peer_TLS_enabled (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_true_when_all_members_have_peer_TLS_enabled (0s)
  ✅ TestIsStatefulSetReady (0s)
  ✅ TestIsStatefulSetReady/sts_has_equal_number_of_replicas_as_defined_in_etcd_but_observed_generation_is_outdated (0s)
  ✅ TestIsStatefulSetReady/sts_has_less_number_of_ready_replicas_as_compared_to_configured_etcd_replicas (0s)
  ✅ TestIsStatefulSetReady/sts_has_mismatching_current_and_update_revision (0s)
  ✅ TestIsStatefulSetReady/sts_has_mismatching_status_ready_and_updated_replicas (0s)
  ✅ TestIsStatefulSetReady/sts_is_completely_up-to-date (0s)
  ✅ TestMatchPodConditions (0s)
  ✅ TestMatchPodConditions/condition_type_and_status_are_not_present (0s)
  ✅ TestMatchPodConditions/condition_type_and_status_are_present (0s)
  ✅ TestMatchPodConditions/condition_type_is_not_present_but_status_is (0s)
  ✅ TestMatchPodConditions/condition_type_is_present_but_status_is_not (0s)
  ✅ TestRunConcurrentlyWithAllSuccessfulTasks (20ms)
  ✅ TestRunConcurrentlyWithOnePanickyTask (20ms)
  ✅ TestRunConcurrentlyWithPanickyAndErringTasks (50ms)

📦 github.com/gardener/etcd-druid/internal/webhook
	github.com/gardener/etcd-druid/internal/webhook		coverage: 0.0% of statements

📦 github.com/gardener/etcd-druid/internal/webhook/etcdcomponents (65.1% coverage)
  ✅ TestEtcdGetFailures (0s)
  ✅ TestEtcdGetFailures/TestEtcdGetFailures (0s)
  ✅ TestEtcdGetFailures/TestEtcdGetFailures#01 (0s)
  ✅ TestHandleCreateAndConnect (0s)
  ✅ TestHandleCreateAndConnect/allow_connect_operation_for_any_resource (0s)
  ✅ TestHandleCreateAndConnect/allow_create_operation_for_any_resource (0s)
  ✅ TestHandleDelete (0s)
  ✅ TestHandleDelete/Etcd_is_currently_being_deleted_by_druid,_and_request_is_from_druid (0s)
  ✅ TestHandleDelete/Etcd_is_currently_being_deleted_by_druid,_and_request_is_from_non-exempt_service_account (0s)
  ✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_druid (0s)
  ✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
  ✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_non-exempt_service_account (0s)
  ✅ TestHandleDelete/Etcd_is_not_currently_being_deleted_by_druid,_and_request_is_from_exempt_service_account (0s)
  ✅ TestHandleDelete/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
  ✅ TestHandleDelete/Etcd_is_not_currently_being_reconciled_or_deleted_by_druid,_and_request_is_from_non-exempt_service_account (0s)
  ✅ TestHandleDelete/disable_resource_protection_annotation_set (0s)
  ✅ TestHandleLeaseUpdate (0s)
  ✅ TestHandleLeaseUpdate/request_is_from_Etcd_service_account (0s)
  ✅ TestHandleLeaseUpdate/request_is_not_from_Etcd_service_account (0s)
  ✅ TestHandleUnmanagedStatefulSetScaleSubresourceUpdate (0s)
  ✅ TestHandleUpdate (0s)
  ✅ TestHandleUpdate/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
  ✅ TestHandleUpdate/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_non-exempt_service_account (0s)
  ✅ TestHandleUpdate/disable_resource_protection_annotation_set (0s)
  ✅ TestHandleUpdate/druid_makes_a_request_during_its_reconciliation_run (0s)
  ✅ TestHandleUpdate/operator_makes_a_request_when_Etcd_is_being_reconciled_by_druid (0s)
  ✅ TestHandleWithInvalidRequestObject (0s)
  ✅ TestHandleWithInvalidRequestObject/empty_request_object (0s)
  ✅ TestHandleWithInvalidRequestObject/empty_request_object#01 (0s)
  ✅ TestHandleWithInvalidRequestObject/malformed_request_object (0s)
  ✅ TestHandleWithInvalidRequestObject/malformed_request_object#01 (0s)
  ✅ TestMissingManagedByLabel (0s)
  ✅ TestMissingResourcePartOfLabel (0s)
  ✅ TestUnexpectedResourceType (0s)

📦 github.com/gardener/etcd-druid/internal/webhook/sentinel
testing: warning: no tests to run
ok  	github.com/gardener/etcd-druid/internal/webhook/sentinel	2.762s	coverage: [no statements] [no tests to run]

📦 github.com/gardener/etcd-druid/internal/webhook/util
	github.com/gardener/etcd-druid/internal/webhook/util		coverage: 0.0% of statements

@gardener-robot gardener-robot added reviewed/lgtm Has approval for merging and removed needs/review Needs review labels Jul 3, 2024
@gardener-robot-ci-3 gardener-robot-ci-3 added reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) and removed reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) labels Jul 3, 2024
@renormalize
Copy link
Member

renormalize commented Jul 3, 2024

@seshachalam-yv How do the test output logs have the word sentinel in them when the webhook had been renamed before merging? I'm somewhat confused.

@unmarshall
Copy link
Contributor Author

unmarshall commented Jul 3, 2024

@renormalize when i run the make test locally i get the following output:

NOTE i do not see sentinel. So maybe its some issue with the local setup with @seshachalam-yv

make test # run ginkgo unit tests. These will be ported to golang native tests over a period of time. > Ginkgo tests [1719996015] Secret Controller Suite - 10/10 specs •••••••••• SUCCESS! 1.921459ms PASS [1719996015] Controller Utils suite - 8/8 specs •••••••• SUCCESS! 926.208µs PASS [1719996015] Metrics Suite - 4/4 specs •••• SUCCESS! 373.291µs PASS [1719996015] Mapper Suite - 2/2 specs •• SUCCESS! 286.042µs PASS [1719996015] EtcdCopyBackupsTask Controller Suite - 59/59 specs ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• SUCCESS! 6.356958ms PASS

Ginkgo ran 5 suites in 24.59923625s
Test Suite Passed

run the golang native unit tests.

Go tests
📦 github.com/gardener/etcd-druid/api/v1alpha1 (5.2% coverage)
✅ TestAreManagedResourcesProtected (0s)
✅ TestAreManagedResourcesProtected/DisableEtcdComponentProtectionAnnotation_is_set (0s)
✅ TestAreManagedResourcesProtected/No_DisableEtcdComponentProtectionAnnotation_annotation_is_set (0s)
✅ TestGetAsOwnerReference (0s)
✅ TestGetClientServiceName (0s)
✅ TestGetCompactionJobName (0s)
✅ TestGetConfigMapName (0s)
✅ TestGetDefaultLabels (0s)
✅ TestGetDeltaSnapshotLeaseName (0s)
✅ TestGetFullSnapshotLeaseName (0s)
✅ TestGetMemberLeaseNames (0s)
✅ TestGetNamespaceName (0s)
✅ TestGetOrdinalPodName (0s)
✅ TestGetPeerServiceName (0s)
✅ TestGetPodDisruptionBudgetName (0s)
✅ TestGetRoleBindingName (0s)
✅ TestGetRoleName (0s)
✅ TestGetServiceAccountName (0s)
✅ TestGetSuspendEtcdSpecReconcileAnnotationKey (0s)
✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/Both_annotations_(SuspendEtcdSpecReconcileAnnotation_and_IgnoreReconciliationAnnotation)_are_set (0s)
✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/IgnoreReconciliationAnnotation_is_set (0s)
✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/No_annotation_is_set (0s)
✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/SuspendEtcdSpecReconcileAnnotation_is_set (0s)
✅ TestIsBackupStoreEnabled (0s)
✅ TestIsBackupStoreEnabled/when_backup_is_enabled (0s)
✅ TestIsBackupStoreEnabled/when_backup_is_not_enabled (0s)
✅ TestIsEtcdMarkedForDeletion (0s)
✅ TestIsEtcdMarkedForDeletion/Etcd_marked_for_deletion (0s)
✅ TestIsEtcdMarkedForDeletion/Etcd_not_marked_for_deletion (0s)
✅ TestIsReconciliationInProgress (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_does_not_have_lastOperation_set (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Error (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Processing (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Succeeded (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_create (0s)
✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_delete (0s)

📦 github.com/gardener/etcd-druid/api/validation (87.7% coverage)
✅ TestValidation (0s)
Running Suite: Etcd Validation Suite - /Users/i062009/go/src/github.com/unmarshall/etcd-druid/api/validation

Random Seed: 1719996043

Will run 13 of 13 specs
•••••••••••••

Ran 13 of 13 Specs in 0.001 seconds
SUCCESS! -- 13 Passed | 0 Failed | 0 Pending | 0 Skipped

📦 github.com/gardener/etcd-druid/internal/component
github.com/gardener/etcd-druid/internal/component coverage: 0.0% of statements

📦 github.com/gardener/etcd-druid/internal/component/clientservice (84.7% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
✅ TestSyncWhenNoServiceExists (0s)
✅ TestSyncWhenNoServiceExists/create_client_service_with_custom_ports (0s)
✅ TestSyncWhenNoServiceExists/create_client_service_with_default_ports (0s)
✅ TestSyncWhenNoServiceExists/create_fails_when_there_is_a_create_error (0s)
✅ TestSyncWhenServiceExists (0s)
✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_when_client_service_does_not_exist (0s)
✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
✅ TestTriggerDelete/successfully_delete_existing_client_service (0s)

📦 github.com/gardener/etcd-druid/internal/component/configmap (87.8% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_no_configmap_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_client_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_configmap_name (0s)
✅ TestPrepareInitialCluster (0s)
✅ TestPrepareInitialCluster/should_create_initial_cluster_for_multi_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_disabled (0s)
✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
✅ TestSyncWhenConfigMapExists (0s)
✅ TestSyncWhenConfigMapExists/returns_error_when_patch_client_request_fails (0s)
✅ TestSyncWhenConfigMapExists/update_configmap_when_peer_TLS_communication_is_enabled (0s)
✅ TestSyncWhenNoConfigMapExists (0s)
✅ TestSyncWhenNoConfigMapExists/return_error_when_create_client_request_fails (0s)
✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_multi-node_etcd_cluster (0s)
✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_single_node_etcd_cluster (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_when_configmap_does_not_exist (0s)
✅ TestTriggerDelete/return_error_when_client_delete_fails (0s)
✅ TestTriggerDelete/successfully_delete_existing_configmap (0s)

📦 github.com/gardener/etcd-druid/internal/component/memberlease (86.8% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/2_of_3_leases_exist_for_a_3_node_etcd_cluster (0s)
✅ TestGetExistingResourceNames/all_leases_exist_for_a_3_node_etcd_cluster (0s)
✅ TestGetExistingResourceNames/lease_exists_for_a_single_node_etcd_cluster (0s)
✅ TestGetExistingResourceNames/should_return_an_empty_slice_when_no_member_leases_are_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_list_fails (0s)
✅ TestSync (0s)
✅ TestSync/create_member_leases_for_a_single_node_etcd_cluster (0s)
✅ TestSync/creates_member_leases_when_etcd_replicas_is_changes_from_1_->_3 (0s)
✅ TestSync/should_return_error_when_client_create_fails (0s)
✅ TestSync/should_return_error_when_client_get_fails (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_when_no_member_lease_exists (0s)
✅ TestTriggerDelete/only_delete_member_leases_and_not_snapshot_leases (0s)
✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
✅ TestTriggerDelete/successfully_deletes_all_member_leases (0s)
✅ TestTriggerDelete/successfully_deletes_remainder_member_leases (0s)

📦 github.com/gardener/etcd-druid/internal/component/peerservice (82.7% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
✅ TestPeerServiceTriggerDelete (0s)
✅ TestPeerServiceTriggerDelete/no-op_and_no_error_if_peer_service_not_found (0s)
✅ TestPeerServiceTriggerDelete/returns_error_when_client_delete_fails (0s)
✅ TestPeerServiceTriggerDelete/successfully_deletes_an_existing_peer_service (0s)
✅ TestSyncWhenNoServiceExists (0s)
✅ TestSyncWhenNoServiceExists/create_peer_service_with_default_ports_when_none_exists (0s)
✅ TestSyncWhenNoServiceExists/create_service_when_none_exists_with_custom_ports (0s)
✅ TestSyncWhenNoServiceExists/returns_error_when_client_create_fails (0s)
✅ TestSyncWhenServiceExists (0s)
✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)

📦 github.com/gardener/etcd-druid/internal/component/poddistruptionbudget (84.8% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_PDB_is_not_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_PDB (0s)
✅ TestSyncWhenNoPDBExists (0s)
✅ TestSyncWhenNoPDBExists/create_PDB_for_multi_node_etcd_cluster_when_none_exists (0s)
✅ TestSyncWhenNoPDBExists/create_PDB_for_single_node_etcd_cluster_when_none_exists (0s)
✅ TestSyncWhenNoPDBExists/returns_error_when_client_create_fails (0s)
✅ TestSyncWhenPDBExists (0s)
✅ TestSyncWhenPDBExists/returns_error_when_client_patch_fails (0s)
✅ TestSyncWhenPDBExists/successfully_update_PDB_when_etcd_cluster_replicas_changed_from_1_->_3 (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_and_no_error_if_the_pdb_is_not_found (0s)
✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
✅ TestTriggerDelete/successfully_deletes_existing_pdb (0s)

📦 github.com/gardener/etcd-druid/internal/component/role (84.4% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_is_not_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_role_name (0s)
✅ TestSync (0s)
✅ TestSync/create_role_fails_when_client_create_fails (0s)
✅ TestSync/create_role_when_none_exists (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/rolebinding (84.8% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_binding_is_not_found (0s)
✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_the_existing_role_binding_name (0s)
✅ TestSync (0s)
✅ TestSync/create_role_fails_when_client_create_fails (0s)
✅ TestSync/create_role_when_none_exists (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/serviceaccount (84.4% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_empty_slice,_when_no_service_account_exists (0s)
✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_existing_service_account_name (0s)
✅ TestSync (0s)
✅ TestSync/create_service_account_when_none_exists (0s)
✅ TestSync/create_service_account_with_disabled_auto_mount (0s)
✅ TestSync/should_return_err_when_client_create_fails (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_when_service_account_does_not_exist (0s)
✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
✅ TestTriggerDelete/successfully_delete_service_account (0s)

📦 github.com/gardener/etcd-druid/internal/component/snapshotlease (87.7% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/no_snapshot_leases_created_when_backup_is_disabled (0s)
✅ TestGetExistingResourceNames/returns_error_when_client_get_fails (0s)
✅ TestGetExistingResourceNames/successfully_returns_delta_and_full_snapshot_leases (0s)
✅ TestSyncWhenBackupHasBeenDisabled (0s)
✅ TestSyncWhenBackupHasBeenDisabled/deletes_snapshot_leases_when_backup_has_been_disabled (0s)
✅ TestSyncWhenBackupHasBeenDisabled/returns_error_when_client_delete_fails (0s)
✅ TestSyncWhenBackupIsEnabled (0s)
✅ TestSyncWhenBackupIsEnabled/create_snapshot_lease_when_backup_is_enabled (0s)
✅ TestSyncWhenBackupIsEnabled/returns_error_when_client_create_fails (0s)
✅ TestTriggerDelete (0s)
✅ TestTriggerDelete/no-op_when_backup_is_not_enabled (0s)
✅ TestTriggerDelete/should_only_delete_snapshot_leases_when_backup_is_enabled (0s)
✅ TestTriggerDelete/should_return_error_when_client_delete-all_fails (0s)

📦 github.com/gardener/etcd-druid/internal/component/statefulset (58.6% coverage)
✅ TestGetExistingResourceNames (0s)
✅ TestGetExistingResourceNames/should_return_an_empty_slice_if_no_sts_is_found (0s)
✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
✅ TestGetExistingResourceNames/should_return_existing_sts (0s)
✅ TestSyncWhenNoSTSExists (0s)
✅ TestSyncWhenNoSTSExists/creates_a_single_replica_sts_for_a_single_node_etcd_cluster (0s)
✅ TestSyncWhenNoSTSExists/creates_multiple_replica_sts_for_a_multi-node_etcd_cluster (0s)
✅ TestSyncWhenNoSTSExists/returns_error_when_client_create_fails (0s)

📦 github.com/gardener/etcd-druid/internal/controller/compaction (14.8% coverage)
✅ TestJobStatusChangedForUpdateEvents (0s)
✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_and_status_is_changed (0s)
✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_but_status_is_not_changed (0s)
✅ TestJobStatusChangedForUpdateEvents/object_is_not_a_job (0s)
✅ TestSnapshotRevisionChangedForCreateEvents (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_and_holder_identity_is_set (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_but_holder_identity_is_not_set (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_and_holder_identity_is_set (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_but_holder_identity_is_not_set (0s)
✅ TestSnapshotRevisionChangedForCreateEvents/object_is_not_a_lease_object (0s)
✅ TestSnapshotRevisionChangedForDeleteEvents (0s)
✅ TestSnapshotRevisionChangedForGenericEvents (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_and_holder_identity_is_changed (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_but_holder_identity_is_not_changed (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_and_holder_identity_is_changed (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_but_holder_identity_is_not_changed (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_not_a_lease_object (0s)

📦 github.com/gardener/etcd-druid/internal/controller/etcd (15.7% coverage)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/both_spec_and_status_have_changed (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_spec_has_changed (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot (0s)
✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/both_spec_and_status_have_changed (0s)
✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/neither_spec_nor_status_has_changed (0s)
✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_spec_has_changed (0s)
✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_status_has_changed (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/both_spec_and_status_have_changed (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_completed (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/both_spec_and_status_have_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/neither_spec_nor_status_has_changed (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_completed (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_errored (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_status_has_changed (0s)

📦 github.com/gardener/etcd-druid/internal/utils (68.5% coverage)
✅ TestContainsAllDesiredLabels (0s)
✅ TestContainsAllDesiredLabels/actual_map_has_a_key_with_a_different_value (0s)
✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels (0s)
✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels_and_extra_labels (0s)
✅ TestContainsAllDesiredLabels/actual_map_is_missing_a_key (0s)
✅ TestContainsAllDesiredLabels/actual_map_is_nil (0s)
✅ TestContainsAllDesiredLabels/both_maps_are_nil (0s)
✅ TestContainsAllDesiredLabels/desired_map_is_nil (0s)
✅ TestContainsLabel (0s)
✅ TestContainsLabel/labels_map_has_the_key_with_a_different_value (0s)
✅ TestContainsLabel/labels_map_has_the_key_with_the_desired_value (0s)
✅ TestContainsLabel/labels_map_is_missing_the_key (0s)
✅ TestContainsLabel/labels_map_is_nil (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_error_in_listing_events (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_no_warning_events (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_with_warning_events (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet/error_in_listing_PVCs (0s)
✅ TestFetchPVCWarningMessagesForStatefulSet/no_PVCs_found (0s)
✅ TestGetEtcdImages (0s)
✅ TestGetEtcdImages/#00 (0s)
✅ TestGetEtcdImages/#1 (0s)
✅ TestGetEtcdImages/#2 (0s)
✅ TestGetEtcdImages/#3 (0s)
✅ TestGetEtcdImages/etcd_spec_defines_etcd_and_etcdBR_images (0s)
✅ TestGetEtcdImages/etcd_spec_has_no_image_defined_and_image_vector_has_etcd_and_etcdBR_images_set (0s)
✅ TestGetStatefulSet (0s)
✅ TestGetStatefulSet/no_sts_found (0s)
✅ TestGetStatefulSet/returns_error_when_client_get_fails (0s)
✅ TestGetStatefulSet/sts_found_and_owned_by_etcd (0s)
✅ TestGetStatefulSet/sts_found_but_not_owned_by_etcd (0s)
✅ TestHasPodReadyConditionTrue (0s)
✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_True (0s)
✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_not_True (0s)
✅ TestHasPodReadyConditionTrue/pod_has_no_Ready_condition (0s)
✅ TestIsPeerURLTLSEnabledForAllMembers (0s)
✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_error_when_client_list_call_fails (0s)
✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_none_of_the_members_have_peer_TLS_enabled (0s)
✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_one_of_three_do_not_have_peer_TLS_enabled (0s)
✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_true_when_all_members_have_peer_TLS_enabled (0s)
✅ TestIsStatefulSetReady (0s)
✅ TestIsStatefulSetReady/sts_has_equal_number_of_replicas_as_defined_in_etcd_but_observed_generation_is_outdated (0s)
✅ TestIsStatefulSetReady/sts_has_less_number_of_ready_replicas_as_compared_to_configured_etcd_replicas (0s)
✅ TestIsStatefulSetReady/sts_has_mismatching_current_and_update_revision (0s)
✅ TestIsStatefulSetReady/sts_has_mismatching_status_ready_and_updated_replicas (0s)
✅ TestIsStatefulSetReady/sts_is_completely_up-to-date (0s)
✅ TestMatchPodConditions (0s)
✅ TestMatchPodConditions/condition_type_and_status_are_not_present (0s)
✅ TestMatchPodConditions/condition_type_and_status_are_present (0s)
✅ TestMatchPodConditions/condition_type_is_not_present_but_status_is (0s)
✅ TestMatchPodConditions/condition_type_is_present_but_status_is_not (0s)
✅ TestRunConcurrentlyWithAllSuccessfulTasks (20ms)
✅ TestRunConcurrentlyWithOnePanickyTask (20ms)
✅ TestRunConcurrentlyWithPanickyAndErringTasks (50ms)

📦 github.com/gardener/etcd-druid/internal/webhook
github.com/gardener/etcd-druid/internal/webhook coverage: 0.0% of statements

📦 github.com/gardener/etcd-druid/internal/webhook/etcdcomponents (65.1% coverage)
✅ TestEtcdGetFailures (0s)
✅ TestEtcdGetFailures/TestEtcdGetFailures (0s)
✅ TestEtcdGetFailures/TestEtcdGetFailures#01 (0s)
✅ TestHandleCreateAndConnect (0s)
✅ TestHandleCreateAndConnect/allow_connect_operation_for_any_resource (0s)
✅ TestHandleCreateAndConnect/allow_create_operation_for_any_resource (0s)
✅ TestHandleDelete (0s)
✅ TestHandleDelete/Etcd_is_currently_being_deleted_by_druid,_and_request_is_from_druid (0s)
✅ TestHandleDelete/Etcd_is_currently_being_deleted_by_druid,_and_request_is_from_non-exempt_service_account (0s)
✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_druid (0s)
✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
✅ TestHandleDelete/Etcd_is_currently_being_reconciled_by_druid,_and_request_is_from_non-exempt_service_account (0s)
✅ TestHandleDelete/Etcd_is_not_currently_being_deleted_by_druid,_and_request_is_from_exempt_service_account (0s)
✅ TestHandleDelete/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
✅ TestHandleDelete/Etcd_is_not_currently_being_reconciled_or_deleted_by_druid,_and_request_is_from_non-exempt_service_account (0s)
✅ TestHandleDelete/disable_resource_protection_annotation_set (0s)
✅ TestHandleLeaseUpdate (0s)
✅ TestHandleLeaseUpdate/request_is_from_Etcd_service_account (0s)
✅ TestHandleLeaseUpdate/request_is_not_from_Etcd_service_account (0s)
✅ TestHandleUnmanagedStatefulSetScaleSubresourceUpdate (0s)
✅ TestHandleUpdate (0s)
✅ TestHandleUpdate/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_exempt_service_account (0s)
✅ TestHandleUpdate/Etcd_is_not_currently_being_reconciled_by_druid,_and_request_is_from_non-exempt_service_account (0s)
✅ TestHandleUpdate/disable_resource_protection_annotation_set (0s)
✅ TestHandleUpdate/druid_makes_a_request_during_its_reconciliation_run (0s)
✅ TestHandleUpdate/operator_makes_a_request_when_Etcd_is_being_reconciled_by_druid (0s)
✅ TestHandleWithInvalidRequestObject (0s)
✅ TestHandleWithInvalidRequestObject/empty_request_object (0s)
✅ TestHandleWithInvalidRequestObject/empty_request_object#01 (0s)
✅ TestHandleWithInvalidRequestObject/malformed_request_object (0s)
✅ TestHandleWithInvalidRequestObject/malformed_request_object#01 (0s)
✅ TestMissingManagedByLabel (0s)
✅ TestMissingResourcePartOfLabel (0s)
✅ TestUnexpectedResourceType (0s)

📦 github.com/gardener/etcd-druid/internal/webhook/util
github.com/gardener/etcd-druid/internal/webhook/util coverage: 0.0% of statements

I would suggest you can perhaps run them locally yourself.

@renormalize
Copy link
Member

@unmarshall Yeah, I'd run it locally myself and did not see it.
Was just confused how @seshachalam-yv was seeing it during his run.

Copy link
Member

@renormalize renormalize left a comment

Choose a reason for hiding this comment

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

Might as well use the latest.

.ci/pipeline_definitions Show resolved Hide resolved
.ci/pipeline_definitions Show resolved Hide resolved
.ci/pipeline_definitions Show resolved Hide resolved
.ci/pipeline_definitions Show resolved Hide resolved
Dockerfile Show resolved Hide resolved
@renormalize renormalize self-assigned this Jul 3, 2024
Copy link
Member

@renormalize renormalize left a comment

Choose a reason for hiding this comment

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

make test passes.
➜  etcd-druid git:(goversion) ✗ make test 
# run ginkgo unit tests. These will be ported to golang native tests over a period of time.
> Ginkgo tests
[1719996760] Mapper Suite - 2/2 specs •• SUCCESS! 286.584µs PASS
[1719996760] Controller Utils suite - 8/8 specs •••••••• SUCCESS! 334µs PASS
[1719996760] Metrics Suite - 4/4 specs •••• SUCCESS! 269.292µs PASS
[1719996760] Secret Controller Suite - 10/10 specs •••••••••• SUCCESS! 1.862917ms PASS
[1719996760] EtcdCopyBackupsTask Controller Suite - 59/59 specs ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• SUCCESS! 6.661917ms PASS

Ginkgo ran 5 suites in 20.2647085s
Test Suite Passed
# run the golang native unit tests.
> Go tests
📦 github.com/gardener/etcd-druid/api/v1alpha1 (5.2% coverage)
  ✅ TestAreManagedResourcesProtected (0s)
  ✅ TestAreManagedResourcesProtected/DisableEtcdComponentProtectionAnnotation_is_set (0s)
  ✅ TestAreManagedResourcesProtected/No_DisableEtcdComponentProtectionAnnotation_annotation_is_set (0s)
  ✅ TestGetAsOwnerReference (0s)
  ✅ TestGetClientServiceName (0s)
  ✅ TestGetCompactionJobName (0s)
  ✅ TestGetConfigMapName (0s)
  ✅ TestGetDefaultLabels (0s)
  ✅ TestGetDeltaSnapshotLeaseName (0s)
  ✅ TestGetFullSnapshotLeaseName (0s)
  ✅ TestGetMemberLeaseNames (0s)
  ✅ TestGetNamespaceName (0s)
  ✅ TestGetOrdinalPodName (0s)
  ✅ TestGetPeerServiceName (0s)
  ✅ TestGetPodDisruptionBudgetName (0s)
  ✅ TestGetRoleBindingName (0s)
  ✅ TestGetRoleName (0s)
  ✅ TestGetServiceAccountName (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/Both_annotations_(SuspendEtcdSpecReconcileAnnotation_and_IgnoreReconciliationAnnotation)_are_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/IgnoreReconciliationAnnotation_is_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/No_annotation_is_set (0s)
  ✅ TestGetSuspendEtcdSpecReconcileAnnotationKey/SuspendEtcdSpecReconcileAnnotation_is_set (0s)
  ✅ TestIsBackupStoreEnabled (0s)
  ✅ TestIsBackupStoreEnabled/when_backup_is_enabled (0s)
  ✅ TestIsBackupStoreEnabled/when_backup_is_not_enabled (0s)
  ✅ TestIsEtcdMarkedForDeletion (0s)
  ✅ TestIsEtcdMarkedForDeletion/Etcd_marked_for_deletion (0s)
  ✅ TestIsEtcdMarkedForDeletion/Etcd_not_marked_for_deletion (0s)
  ✅ TestIsReconciliationInProgress (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_does_not_have_lastOperation_set (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Error (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Processing (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_state_is_Succeeded (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_create (0s)
  ✅ TestIsReconciliationInProgress/when_etcd_status_has_lastOperation_set_and_its_type_is_delete (0s)

📦 github.com/gardener/etcd-druid/api/validation (87.7% coverage)
  ✅ TestValidation (0s)
Running Suite: Etcd Validation Suite - /Users/i585850/go/src/github.com/gardener/etcd-druid/api/validation
==========================================================================================================
Random Seed: 1719996783

Will run 13 of 13 specs
•••••••••••••

Ran 13 of 13 Specs in 0.001 seconds
SUCCESS! -- 13 Passed | 0 Failed | 0 Pending | 0 Skipped

📦 github.com/gardener/etcd-druid/internal/component
	github.com/gardener/etcd-druid/internal/component		coverage: 0.0% of statements

📦 github.com/gardener/etcd-druid/internal/component/clientservice (84.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
  ✅ TestSyncWhenNoServiceExists (0s)
  ✅ TestSyncWhenNoServiceExists/create_client_service_with_custom_ports (0s)
  ✅ TestSyncWhenNoServiceExists/create_client_service_with_default_ports (0s)
  ✅ TestSyncWhenNoServiceExists/create_fails_when_there_is_a_create_error (0s)
  ✅ TestSyncWhenServiceExists (0s)
  ✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
  ✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_client_service_does_not_exist (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_client_service (0s)

📦 github.com/gardener/etcd-druid/internal/component/configmap (87.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_no_configmap_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_configmap_name (0s)
  ✅ TestPrepareInitialCluster (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_multi_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_disabled (0s)
  ✅ TestPrepareInitialCluster/should_create_initial_cluster_for_single_node_etcd_cluster_when_peer_TLS_is_enabled (0s)
  ✅ TestSyncWhenConfigMapExists (0s)
  ✅ TestSyncWhenConfigMapExists/returns_error_when_patch_client_request_fails (0s)
  ✅ TestSyncWhenConfigMapExists/update_configmap_when_peer_TLS_communication_is_enabled (0s)
  ✅ TestSyncWhenNoConfigMapExists (0s)
  ✅ TestSyncWhenNoConfigMapExists/return_error_when_create_client_request_fails (0s)
  ✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_multi-node_etcd_cluster (0s)
  ✅ TestSyncWhenNoConfigMapExists/should_create_when_no_configmap_exists_for_single_node_etcd_cluster (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_configmap_does_not_exist (0s)
  ✅ TestTriggerDelete/return_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_configmap (0s)

📦 github.com/gardener/etcd-druid/internal/component/memberlease (86.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/2_of_3_leases_exist_for_a_3_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/all_leases_exist_for_a_3_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/lease_exists_for_a_single_node_etcd_cluster (0s)
  ✅ TestGetExistingResourceNames/should_return_an_empty_slice_when_no_member_leases_are_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_list_fails (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_member_leases_for_a_single_node_etcd_cluster (0s)
  ✅ TestSync/creates_member_leases_when_etcd_replicas_is_changes_from_1_->_3 (0s)
  ✅ TestSync/should_return_error_when_client_create_fails (0s)
  ✅ TestSync/should_return_error_when_client_get_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_no_member_lease_exists (0s)
  ✅ TestTriggerDelete/only_delete_member_leases_and_not_snapshot_leases (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_deletes_all_member_leases (0s)
  ✅ TestTriggerDelete/successfully_deletes_remainder_member_leases (0s)

📦 github.com/gardener/etcd-druid/internal/component/peerservice (82.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_service_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_service_name (0s)
  ✅ TestPeerServiceTriggerDelete (0s)
  ✅ TestPeerServiceTriggerDelete/no-op_and_no_error_if_peer_service_not_found (0s)
  ✅ TestPeerServiceTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestPeerServiceTriggerDelete/successfully_deletes_an_existing_peer_service (0s)
  ✅ TestSyncWhenNoServiceExists (0s)
  ✅ TestSyncWhenNoServiceExists/create_peer_service_with_default_ports_when_none_exists (0s)
  ✅ TestSyncWhenNoServiceExists/create_service_when_none_exists_with_custom_ports (0s)
  ✅ TestSyncWhenNoServiceExists/returns_error_when_client_create_fails (0s)
  ✅ TestSyncWhenServiceExists (0s)
  ✅ TestSyncWhenServiceExists/update_fails_when_there_is_a_patch_error (0s)
  ✅ TestSyncWhenServiceExists/update_peer_service_with_new_server_port (0s)

📦 github.com/gardener/etcd-druid/internal/component/poddistruptionbudget (84.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_PDB_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_PDB (0s)
  ✅ TestSyncWhenNoPDBExists (0s)
  ✅ TestSyncWhenNoPDBExists/create_PDB_for_multi_node_etcd_cluster_when_none_exists (0s)
  ✅ TestSyncWhenNoPDBExists/create_PDB_for_single_node_etcd_cluster_when_none_exists (0s)
  ✅ TestSyncWhenNoPDBExists/returns_error_when_client_create_fails (0s)
  ✅ TestSyncWhenPDBExists (0s)
  ✅ TestSyncWhenPDBExists/returns_error_when_client_patch_fails (0s)
  ✅ TestSyncWhenPDBExists/successfully_update_PDB_when_etcd_cluster_replicas_changed_from_1_->_3 (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_and_no_error_if_the_pdb_is_not_found (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_deletes_existing_pdb (0s)

📦 github.com/gardener/etcd-druid/internal/component/role (84.4% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_role_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_role_fails_when_client_create_fails (0s)
  ✅ TestSync/create_role_when_none_exists (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
  ✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/rolebinding (84.8% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice_when_role_binding_is_not_found (0s)
  ✅ TestGetExistingResourceNames/should_return_error_when_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_the_existing_role_binding_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_role_fails_when_client_create_fails (0s)
  ✅ TestSync/create_role_when_none_exists (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/delete_fails_due_to_failing_client_delete (0s)
  ✅ TestTriggerDelete/delete_is_a_no-op_if_role_does_not_exist (0s)
  ✅ TestTriggerDelete/successfully_delete_existing_role (0s)

📦 github.com/gardener/etcd-druid/internal/component/serviceaccount (84.4% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_empty_slice,_when_no_service_account_exists (0s)
  ✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_existing_service_account_name (0s)
  ✅ TestSync (0s)
  ✅ TestSync/create_service_account_when_none_exists (0s)
  ✅ TestSync/create_service_account_with_disabled_auto_mount (0s)
  ✅ TestSync/should_return_err_when_client_create_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_service_account_does_not_exist (0s)
  ✅ TestTriggerDelete/returns_error_when_client_delete_fails (0s)
  ✅ TestTriggerDelete/successfully_delete_service_account (0s)

📦 github.com/gardener/etcd-druid/internal/component/snapshotlease (87.7% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/no_snapshot_leases_created_when_backup_is_disabled (0s)
  ✅ TestGetExistingResourceNames/returns_error_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/successfully_returns_delta_and_full_snapshot_leases (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled/deletes_snapshot_leases_when_backup_has_been_disabled (0s)
  ✅ TestSyncWhenBackupHasBeenDisabled/returns_error_when_client_delete_fails (0s)
  ✅ TestSyncWhenBackupIsEnabled (0s)
  ✅ TestSyncWhenBackupIsEnabled/create_snapshot_lease_when_backup_is_enabled (0s)
  ✅ TestSyncWhenBackupIsEnabled/returns_error_when_client_create_fails (0s)
  ✅ TestTriggerDelete (0s)
  ✅ TestTriggerDelete/no-op_when_backup_is_not_enabled (0s)
  ✅ TestTriggerDelete/should_only_delete_snapshot_leases_when_backup_is_enabled (0s)
  ✅ TestTriggerDelete/should_return_error_when_client_delete-all_fails (0s)

📦 github.com/gardener/etcd-druid/internal/component/statefulset (58.6% coverage)
  ✅ TestGetExistingResourceNames (0s)
  ✅ TestGetExistingResourceNames/should_return_an_empty_slice_if_no_sts_is_found (0s)
  ✅ TestGetExistingResourceNames/should_return_err_when_client_get_fails (0s)
  ✅ TestGetExistingResourceNames/should_return_existing_sts (0s)
  ✅ TestSyncWhenNoSTSExists (0s)
  ✅ TestSyncWhenNoSTSExists/creates_a_single_replica_sts_for_a_single_node_etcd_cluster (0s)
  ✅ TestSyncWhenNoSTSExists/creates_multiple_replica_sts_for_a_multi-node_etcd_cluster (0s)
  ✅ TestSyncWhenNoSTSExists/returns_error_when_client_create_fails (0s)

📦 github.com/gardener/etcd-druid/internal/controller/compaction (14.8% coverage)
  ✅ TestJobStatusChangedForUpdateEvents (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_and_status_is_changed (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_a_job,_but_status_is_not_changed (0s)
  ✅ TestJobStatusChangedForUpdateEvents/object_is_not_a_job (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_and_holder_identity_is_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_delta-snapshot_lease,_but_holder_identity_is_not_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_and_holder_identity_is_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_a_new_full-snapshot_lease,_but_holder_identity_is_not_set (0s)
  ✅ TestSnapshotRevisionChangedForCreateEvents/object_is_not_a_lease_object (0s)
  ✅ TestSnapshotRevisionChangedForDeleteEvents (0s)
  ✅ TestSnapshotRevisionChangedForGenericEvents (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_and_holder_identity_is_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_delta-snapshot_lease,_but_holder_identity_is_not_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_and_holder_identity_is_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_full-snapshot_lease,_but_holder_identity_is_not_changed (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_a_lease_object,_but_not_a_snapshot_lease (0s)
  ✅ TestSnapshotRevisionChangedForUpdateEvents/object_is_not_a_lease_object (0s)

📦 github.com/gardener/etcd-druid/internal/controller/etcd (15.7% coverage)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_spec_has_changed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithAutoReconcileAndReconcileAnnotSet/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/neither_spec_nor_status_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_spec_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileAndNoReconcileAnnot/only_status_has_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/both_spec_and_status_have_changed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/neither_spec_nor_status_has_changed_and_previous_reconciliation_is_in_error (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_completed (0s)
  ✅ TestBuildPredicateWithNoAutoReconcileButReconcileAnnotPresent/only_status_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/both_spec_and_status_have_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/neither_spec_nor_status_has_changed (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_completed (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_has_errored (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_spec_has_changed_and_previous_reconciliation_is_in_progress (0s)
  ✅ TestBuildPredicateWithOnlyAutoReconcileEnabled/only_status_has_changed (0s)

📦 github.com/gardener/etcd-druid/internal/utils (68.5% coverage)
  ✅ TestContainsAllDesiredLabels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_a_key_with_a_different_value (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_has_all_desired_labels_and_extra_labels (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_is_missing_a_key (0s)
  ✅ TestContainsAllDesiredLabels/actual_map_is_nil (0s)
  ✅ TestContainsAllDesiredLabels/both_maps_are_nil (0s)
  ✅ TestContainsAllDesiredLabels/desired_map_is_nil (0s)
  ✅ TestContainsLabel (0s)
  ✅ TestContainsLabel/labels_map_has_the_key_with_a_different_value (0s)
  ✅ TestContainsLabel/labels_map_has_the_key_with_the_desired_value (0s)
  ✅ TestContainsLabel/labels_map_is_missing_the_key (0s)
  ✅ TestContainsLabel/labels_map_is_nil (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_error_in_listing_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_but_no_warning_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/PVCs_found_with_warning_events (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/error_in_listing_PVCs (0s)
  ✅ TestFetchPVCWarningMessagesForStatefulSet/no_PVCs_found (0s)
  ✅ TestGetEtcdImages (0s)
  ✅ TestGetEtcdImages/#00 (0s)
  ✅ TestGetEtcdImages/#01 (0s)
  ✅ TestGetEtcdImages/#02 (0s)
  ✅ TestGetEtcdImages/#03 (0s)
  ✅ TestGetEtcdImages/etcd_spec_defines_etcd_and_etcdBR_images (0s)
  ✅ TestGetEtcdImages/etcd_spec_has_no_image_defined_and_image_vector_has_etcd_and_etcdBR_images_set (0s)
  ✅ TestGetStatefulSet (0s)
  ✅ TestGetStatefulSet/no_sts_found (0s)
  ✅ TestGetStatefulSet/returns_error_when_client_get_fails (0s)
  ✅ TestGetStatefulSet/sts_found_and_owned_by_etcd (0s)
  ✅ TestGetStatefulSet/sts_found_but_not_owned_by_etcd (0s)
  ✅ TestHasPodReadyConditionTrue (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_True (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_Ready_condition_with_status_not_True (0s)
  ✅ TestHasPodReadyConditionTrue/pod_has_no_Ready_condition (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_error_when_client_list_call_fails (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_none_of_the_members_have_peer_TLS_enabled (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_false_when_one_of_three_do_not_have_peer_TLS_enabled (0s)
  ✅ TestIsPeerURLTLSEnabledForAllMembers/should_return_true_when_all_members_have_peer_TLS_enabled (0s)
  ✅ TestIsStatefulSetReady (0s)
  ✅ TestIsStatefulSetReady/sts_has_equal_number_of_replicas_as_defined_in_etcd_but_observed_generation_is_outdated (0s)
  ✅ TestIsStatefulSetReady/sts_has_less_number_of_ready_replicas_as_compared_to_configured_etcd_replicas (0s)
  ✅ TestIsStatefulSetReady/sts_has_mismatching_current_and_update_revision (0s)
  ✅ TestIsStatefulSetReady/sts_has_mismatching_status_ready_and_updated_replicas (0s)
  ✅ TestIsStatefulSetReady/sts_is_completely_up-to-date (0s)
  ✅ TestMatchPodConditions (0s)
  ✅ TestMatchPodConditions/condition_type_and_status_are_not_present (0s)
  ✅ TestMatchPodConditions/condition_type_and_status_are_present (0s)
  ✅ TestMatchPodConditions/condition_type_is_not_present_but_status_is (0s)
  ✅ TestMatchPodConditions/condition_type_is_present_but_status_is_not (0s)
make integration-test passes.
➜  etcd-druid git:(goversion) ✗ make test-integration
go build -o /Users/i585850/go/src/github.com/gardener/etcd-druid/hack/tools/bin/setup-envtest sigs.k8s.io/controller-runtime/tools/setup-envtest
> Installing envtest [email protected] with setup-envtest
using envtest tools installed at '/Users/i585850/Library/Application Support/io.kubebuilder.envtest/k8s/1.22.1-darwin-amd64'
> Ginkgo tests
[1719998155] Compaction Controller Suite - 10/10 specs •••••••••• SUCCESS! 44.838268458s PASS
[1719998155] Secret Controller Suite - 1/1 specs • SUCCESS! 7.34846725s PASS
[1719998155] EtcdCopyBackupsTask Controller Suite - 8/8 specs •••••••• SUCCESS! 1m11.779069542s PASS

Ginkgo ran 3 suites in 2m11.460426708s
Test Suite Passed
> Installing envtest [email protected] with setup-envtest
using envtest tools installed at '/Users/i585850/Library/Application Support/io.kubebuilder.envtest/k8s/1.22.1-darwin-amd64'
> Go tests
📦 github.com/gardener/etcd-druid/test/it/controller/etcd
  ✅ TestEtcdDeletion (13.74s)
  ✅ TestEtcdDeletion/test_deletion_of_all_etcd_resources_when_etcd_marked_for_deletion (2.24s)
    helper.go:77: successfully registered etcd reconciler with manager and started manager
    reconciler_test.go:285: successfully create namespace: etcd-reconciler-test--ec9f8bdd to run test => 'TestEtcdDeletion/test_deletion_of_all_etcd_resources_when_etcd_marked_for_deletion'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--ec9f8bdd}, waiting for resources to be created...
    assertions.go:136: ConfigMap: [etcd-bootstrap-09100c] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--ec9f8bdd}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--ec9f8bdd}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--ec9f8bdd}
    reconciler_test.go:302: successfully marked etcd instance for deletion: etcd-test, waiting for resources to be removed...
    assertions.go:136: MemberLease: [] does not exist
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: ClientService: [] does not exist
    assertions.go:136: PeerService: [] does not exist
    assertions.go:136: ConfigMap: [] does not exist
    assertions.go:136: PodDisruptionBudget: [] does not exist
    assertions.go:136: ServiceAccount: [] does not exist
    assertions.go:136: Role: [] does not exist
    assertions.go:136: RoleBinding: [] does not exist
    assertions.go:136: StatefulSet: [] does not exist
    reconciler_test.go:304: successfully deleted all resources for etcd instance: etcd-test, waiting for finalizer to be removed from etcd...
    assertions.go:331: finalizer removed
  ✅ TestEtcdDeletion/test_partial_deletion_failure_of_etcd_resources_when_etcd_marked_for_deletion (11.49s)
    helper.go:77: successfully registered etcd reconciler with manager and started manager
    reconciler_test.go:337: successfully create namespace: etcd-reconciler-test--cd743aea to run test => 'TestEtcdDeletion/test_partial_deletion_failure_of_etcd_resources_when_etcd_marked_for_deletion'
    reconciler_test.go:348: successfully created backup secrets for etcd instance: etcd-test
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--cd743aea}, waiting for resources to be created...
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: SnapshotLease: [etcd-test-delta-snap etcd-test-full-snap] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-9a5736] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--cd743aea}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--cd743aea}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--cd743aea}
    reconciler_test.go:355: successfully marked etcd instance for deletion: etcd-test, waiting for resources to be removed...
    assertions.go:136: MemberLease: [] does not exist
    assertions.go:136: PeerService: [] does not exist
    assertions.go:136: ConfigMap: [] does not exist
    assertions.go:136: PodDisruptionBudget: [] does not exist
    assertions.go:136: ServiceAccount: [] does not exist
    assertions.go:136: Role: [] does not exist
    assertions.go:136: RoleBinding: [] does not exist
    assertions.go:136: StatefulSet: [] does not exist
    assertions.go:136: SnapshotLease: [etcd-test-delta-snap etcd-test-full-snap] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:331: finalizer present
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile (15.31s)
    helper.go:77: successfully registered etcd reconciler with manager and started manager
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_add_finalizer_to_etcd_when_etcd_resource_is_created (4.05s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--29f6e146 to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_add_finalizer_to_etcd_when_etcd_resource_is_created'
    assertions.go:331: finalizer present
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_create_all_managed_resources_when_etcd_resource_is_created (2.12s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--2d40a8b1 to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_create_all_managed_resources_when_etcd_resource_is_created'
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-cc90ad] exists
    assertions.go:136: SnapshotLease: [etcd-test-delta-snap etcd-test-full-snap] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:237: observedGeneration correctly set to 1
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:289: reconcile operation annotation removed
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_not_reconcile_spec_when_reconciliation_is_suspended (2.03s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--bbf37545 to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_not_reconcile_spec_when_reconciliation_is_suspended'
    assertions.go:136: MemberLease: [] does not exist
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: ClientService: [] does not exist
    assertions.go:136: PeerService: [] does not exist
    assertions.go:136: ConfigMap: [] does not exist
    assertions.go:136: PodDisruptionBudget: [] does not exist
    assertions.go:136: ServiceAccount: [] does not exist
    assertions.go:136: Role: [] does not exist
    assertions.go:136: RoleBinding: [] does not exist
    assertions.go:136: StatefulSet: [] does not exist
    assertions.go:237: observedGeneration correctly set to <nil>
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:289: reconcile operation annotation present
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_not_reconcile_upon_etcd_spec_updation_when_no_reconcile_operation_annotation_is_set (2.06s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--43b7fd6e to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_not_reconcile_upon_etcd_spec_updation_when_no_reconcile_operation_annotation_is_set'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--43b7fd6e}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-cfe7a2] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--43b7fd6e}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--43b7fd6e}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--43b7fd6e}
    assertions.go:237: observedGeneration correctly set to 1
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:289: reconcile operation annotation removed
    helper.go:182: successfully reconciled status of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--43b7fd6e}
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-cfe7a2] exists
    assertions.go:237: observedGeneration correctly set to 1
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_reconcile_upon_etcd_spec_update_when_reconcile_operation_annotation_is_set (3.03s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--03180d6f to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_reconcile_upon_etcd_spec_update_when_reconcile_operation_annotation_is_set'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--03180d6f}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-487410] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--03180d6f}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--03180d6f}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--03180d6f}
    assertions.go:237: observedGeneration correctly set to 1
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:289: reconcile operation annotation removed
    helper.go:182: successfully reconciled status of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--03180d6f}
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-487410] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:237: observedGeneration correctly set to 2
    assertions.go:271: lastOperation and lastErrors updated successfully
    assertions.go:289: reconcile operation annotation removed
  ✅ TestEtcdReconcileSpecWithNoAutoReconcile/should_succeed_only_in_creation_of_some_resources_and_not_all_and_should_record_error_in_lastErrors_and_lastOperation (2.02s)
    reconciler_test.go:69: successfully create namespace: etcd-reconciler-test--44ae4348 to run test => 'TestEtcdReconcileSpecWithNoAutoReconcile/should_succeed_only_in_creation_of_some_resources_and_not_all_and_should_record_error_in_lastErrors_and_lastOperation'
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: ClientService: [] does not exist
    assertions.go:136: PeerService: [] does not exist
    assertions.go:136: ConfigMap: [] does not exist
    assertions.go:136: PodDisruptionBudget: [] does not exist
    assertions.go:136: ServiceAccount: [] does not exist
    assertions.go:136: Role: [] does not exist
    assertions.go:136: RoleBinding: [] does not exist
    assertions.go:136: StatefulSet: [] does not exist
    assertions.go:237: observedGeneration correctly set to <nil>
    assertions.go:271: lastOperation and lastErrors updated successfully
  ✅ TestEtcdStatusReconciliation (20.23s)
    helper.go:77: successfully registered etcd reconciler with manager and started manager
  ✅ TestEtcdStatusReconciliation/assert_that_data_volume_condition_reflects_pvc_error_event (4.04s)
    reconciler_test.go:405: successfully create namespace: etcd-reconciler-test--2e61774b to run test => 'TestEtcdStatusReconciliation/assert_that_data_volume_condition_reflects_pvc_error_event'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2e61774b}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-321b78] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2e61774b}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2e61774b}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2e61774b}
    helper.go:226: successfully created pvc: etcd-test-etcd-test-0
    helper.go:226: successfully created pvc: etcd-test-etcd-test-1
    helper.go:226: successfully created pvc: etcd-test-etcd-test-2
    helper.go:249: successfully created warning event for pvc: etcd-test-etcd-test-0
    assertions.go:378: not all conditions matched: for condition type: DataVolumesReady, expected status to be False, found True. will retry matching all expected conditions
    assertions.go:374: found condition with [type:DataVolumesReady, status:False] matches expected condition
    assertions.go:383: asserted that etcd status conditions matches expected conditions: [{DataVolumesReady False 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC FailedAttachVolume Multi-Attach error for volume pv-50bc2db37a2ea5127da3100e16ef57e1. Volume is already exclusively attached to one node and can't be attached to another}]
  ✅ TestEtcdStatusReconciliation/check_assertions_when_all_member_leases_are_active (4.04s)
    reconciler_test.go:405: successfully create namespace: etcd-reconciler-test--aba01cb6 to run test => 'TestEtcdStatusReconciliation/check_assertions_when_all_member_leases_are_active'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--aba01cb6}, waiting for resources to be created...
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-9834f0] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: PeerService: [etcd-test-peer] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--aba01cb6}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--aba01cb6}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--aba01cb6}
    helper.go:201: successfully updated member lease etcd-test-0 with holderIdentity: e668db5fb050d774:Member
    helper.go:201: successfully updated member lease etcd-test-1 with holderIdentity: b6209f66010b0b37:Leader
    helper.go:201: successfully updated member lease etcd-test-2 with holderIdentity: 1f08c26b95359540:Member
    assertions.go:374: found condition with [type:DataVolumesReady, status:True] matches expected condition
    assertions.go:378: not all conditions matched: for condition type: Ready, expected status to be True, found Unknown
        for condition type: AllMembersReady, expected status to be True, found Unknown. will retry matching all expected conditions
    assertions.go:374: found condition with [type:Ready, status:True] matches expected condition
    assertions.go:374: found condition with [type:AllMembersReady, status:True] matches expected condition
    assertions.go:374: found condition with [type:DataVolumesReady, status:True] matches expected condition
    assertions.go:383: asserted that etcd status conditions matches expected conditions: [{Ready True 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC  } {AllMembersReady True 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC  } {DataVolumesReady True 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC  }]
    assertions.go:351: member with [id:e668db5fb050d774, name:etcd-test-0, role:Member, status:Ready] matches expected member
    assertions.go:351: member with [id:b6209f66010b0b37, name:etcd-test-1, role:Leader, status:Ready] matches expected member
    assertions.go:351: member with [id:1f08c26b95359540, name:etcd-test-2, role:Member, status:Ready] matches expected member
    assertions.go:357: asserted that etcd member statuses matches expected members: [{etcd-test-0 0x14000b899d0 0x1400060e910 Ready  0001-01-01 00:00:00 +0000 UTC} {etcd-test-1 0x14000b899e0 0x1400060e948 Ready  0001-01-01 00:00:00 +0000 UTC} {etcd-test-2 0x14000b899f0 0x1400060e980 Ready  0001-01-01 00:00:00 +0000 UTC}]
  ✅ TestEtcdStatusReconciliation/test_when_all_sts_replicas_are_ready (4.03s)
    reconciler_test.go:405: successfully create namespace: etcd-reconciler-test--6ed43930 to run test => 'TestEtcdStatusReconciliation/test_when_all_sts_replicas_are_ready'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--6ed43930}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: ConfigMap: [etcd-bootstrap-01a7ae] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--6ed43930}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--6ed43930}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--6ed43930}
    assertions.go:412: asserted that etcd status fields are correctly derived from statefulset: etcd-test
  ✅ TestEtcdStatusReconciliation/test_when_not_all_sts_replicas_are_ready (4.05s)
    reconciler_test.go:405: successfully create namespace: etcd-reconciler-test--2aa1e42a to run test => 'TestEtcdStatusReconciliation/test_when_not_all_sts_replicas_are_ready'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2aa1e42a}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-4d9a2f] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2aa1e42a}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2aa1e42a}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--2aa1e42a}
    assertions.go:412: asserted that etcd status fields are correctly derived from statefulset: etcd-test
  ✅ TestEtcdStatusReconciliation/test_when_sts_current_revision_is_older_than_update_revision (4.06s)
    reconciler_test.go:405: successfully create namespace: etcd-reconciler-test--b1da0691 to run test => 'TestEtcdStatusReconciliation/test_when_sts_current_revision_is_older_than_update_revision'
    helper.go:89: trigggered creation of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--b1da0691}, waiting for resources to be created...
    assertions.go:136: SnapshotLease: [] does not exist
    assertions.go:136: ClientService: [etcd-test-client] exists
    assertions.go:136: MemberLease: [etcd-test-0 etcd-test-1 etcd-test-2] exists
    assertions.go:136: PeerService: [etcd-test-peer] exists
    assertions.go:136: ConfigMap: [etcd-bootstrap-75ab85] exists
    assertions.go:136: ServiceAccount: [etcd-test] exists
    assertions.go:136: RoleBinding: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: Role: [druid.gardener.cloud:etcd:etcd-test] exists
    assertions.go:136: PodDisruptionBudget: [etcd-test] exists
    assertions.go:136: StatefulSet: [etcd-test] exists
    helper.go:92: successfully created all resources for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--b1da0691}
    helper.go:99: successfully updated sts revision for etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--b1da0691}
    helper.go:157: successfully created pod: etcd-test-0
    helper.go:166: successfully updated status of pod: etcd-test-0 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-1
    helper.go:166: successfully updated status of pod: etcd-test-1 with ready-condition set to true
    helper.go:157: successfully created pod: etcd-test-2
    helper.go:166: successfully updated status of pod: etcd-test-2 with ready-condition set to true
    helper.go:101: successfully created pods for statefulset of etcd instance: {name: etcd-test, namespace: etcd-reconciler-test--b1da0691}
    assertions.go:412: asserted that etcd status fields are correctly derived from statefulset: etcd-test

make test-cov fails, but is being addressed #822.
➜  etcd-druid git:(goversion) ✗ make test-cov        
> Ginkgo tests
Will skip:
  ./test/e2e
=== RUN   TestGetExistingResourceNames
=== PAUSE TestGetExistingResourceNames
=== RUN   TestSyncWhenNoSTSExists
=== PAUSE TestSyncWhenNoSTSExists
=== CONT  TestGetExistingResourceNames
=== RUN   TestGetExistingResourceNames/should_return_an_empty_slice_if_no_sts_is_found
=== CONT  TestSyncWhenNoSTSExists
=== RUN   TestSyncWhenNoSTSExists/creates_a_single_replica_sts_for_a_single_node_etcd_cluster
=== RUN   TestGetExistingResourceNames/should_return_existing_sts
=== RUN   TestGetExistingResourceNames/should_return_err_when_client_get_fails
--- PASS: TestGetExistingResourceNames (0.00s)
    --- PASS: TestGetExistingResourceNames/should_return_an_empty_slice_if_no_sts_is_found (0.00s)
    --- PASS: TestGetExistingResourceNames/should_return_existing_sts (0.00s)
    --- PASS: TestGetExistingResourceNames/should_return_err_when_client_get_fails (0.00s)
=== RUN   TestSyncWhenNoSTSExists/creates_multiple_replica_sts_for_a_multi-node_etcd_cluster
=== RUN   TestSyncWhenNoSTSExists/returns_error_when_client_create_fails
--- PASS: TestSyncWhenNoSTSExists (0.00s)
    --- PASS: TestSyncWhenNoSTSExists/creates_a_single_replica_sts_for_a_single_node_etcd_cluster (0.00s)
    --- PASS: TestSyncWhenNoSTSExists/creates_multiple_replica_sts_for_a_multi-node_etcd_cluster (0.00s)
    --- PASS: TestSyncWhenNoSTSExists/returns_error_when_client_create_fails (0.00s)
PASS
coverage: 59.2% of statements
[1719998602] Status Suite - 1/1 specs 
------------------------------
• [FAILED] [0.001 seconds]
Check #Check [It] should correctly execute checks and fill status
/Users/i585850/go/src/github.com/gardener/etcd-druid/internal/health/status/check_test.go:31

  Timeline >>
  > Enter [It] should correctly execute checks and fill status @ 07/03/24 14:53:34.335
  [FAILED] in [It] - /Users/i585850/go/src/github.com/gardener/etcd-druid/internal/health/status/check_test.go:126 @ 07/03/24 14:53:34.335
  < Exit [It] should correctly execute checks and fill status @ 07/03/24 14:53:34.335 (1ms)
  << Timeline

  [FAILED] Expected
      <[]v1alpha1.Condition | len:4, cap:4>: [
          {
              Type: "AllMembersReady",
              Status: "True",
              LastTransitionTime: {
                  Time: 2021-06-01T00:00:00Z,
              },
              LastUpdateTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              Reason: "bar reason",
              Message: "bar message",
          },
          {
              Type: "BackupReady",
              Status: "Unknown",
              LastTransitionTime: {
                  Time: 2021-06-01T00:00:00Z,
              },
              LastUpdateTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              Reason: "foobar reason",
              Message: "foobar message",
          },
          {
              Type: "DataVolumesReady",
              Status: "Unknown",
              LastTransitionTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              LastUpdateTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              Reason: "foobar reason",
              Message: "foobar message",
          },
          {
              Type: "Ready",
              Status: "False",
              LastTransitionTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              LastUpdateTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              Reason: "FailedConditionCheck",
              Message: "check failed",
          },
      ]
  to consist of
      <[]*gstruct.FieldsMatcher | len:3, cap:3>: [
          {
              Fields: {
                  "LastTransitionTime": <*matchers.EqualMatcher | 0x1400015aa80>{
                      Expected: <v1.Time>{
                          Time: 2021-06-01T01:00:00Z,
                      },
                  },
                  "LastUpdateTime": <*matchers.EqualMatcher | 0x1400015aa90>{
                      Expected: <v1.Time>{
                          Time: 2021-06-01T01:00:00Z,
                      },
                  },
                  "Reason": <*matchers.EqualMatcher | 0x1400015aaa0>{
                      Expected: <string>"FailedConditionCheck",
                  },
                  "Message": <*matchers.EqualMatcher | 0x1400015aab0>{
                      Expected: <string>"check failed",
                  },
                  "Type": <*matchers.EqualMatcher | 0x1400015aa60>{
                      Expected: <v1alpha1.ConditionType>"Ready",
                  },
                  "Status": <*matchers.EqualMatcher | 0x1400015aa70>{
                      Expected: <v1alpha1.ConditionStatus>"False",
                  },
              },
              IgnoreExtras: true,
              IgnoreMissing: false,
              failures: nil,
          },
          {
              Fields: {
                  "LastTransitionTime": <*matchers.EqualMatcher | 0x1400015aae0>{
                      Expected: <v1.Time>{
                          Time: 2021-06-01T00:00:00Z,
                      },
                  },
                  "LastUpdateTime": <*matchers.EqualMatcher | 0x1400015aaf0>{
                      Expected: <v1.Time>{
                          Time: 2021-06-01T01:00:00Z,
                      },
                  },
                  "Reason": <*matchers.EqualMatcher | 0x1400015ab00>{
                      Expected: <string>"bar reason",
                  },
                  "Message": <*matchers.EqualMatcher | 0x1400015ab10>{
                      Expected: <string>"bar message",
                  },
                  "Type": <*matchers.EqualMatcher | 0x1400015aac0>{
                      Expected: <v1alpha1.ConditionType>"AllMembersReady",
                  },
                  "Status": <*matchers.EqualMatcher | 0x1400015aad0>{
                      Expected: <v1alpha1.ConditionStatus>"True",
                  },
              },
              IgnoreExtras: true,
              IgnoreMissing: false,
              failures: [
                  <*errors.NestedError | 0x14000880e80>{
                      Path: ".Type",
                      Err: <*errors.errorString | 0x140007a4b50>{
                          s: "Expected\n    <v1alpha1.ConditionType>: Ready\nto equal\n    <v1alpha1.ConditionType>: AllMembersReady",
                      },
                  },
                  <*errors.NestedError | 0x14000880ea0>{
                      Path: ".Status",
                      Err: <*errors.errorString | 0x140007a4c40>{
                          s: "Expected\n    <v1alpha1.ConditionStatus>: False\nto equal\n    <v1alpha1.ConditionStatus>: True",
                      },
                  },
                  <*errors.NestedError | 0x14000880ee0>{
                      Path: ".LastTransitionTime",
                      Err: <*errors.errorString | 0x140007a4da0>{
                          s: "Expected\n    <v1.Time>: {\n        Time: 2021-06-01T01:00:00Z,\n    }\nto equal\n    <v1.Time>: {\n        Time: 2021-06-01T00:00:00Z,\n    }",
                      },
                  },
                  <*errors.NestedError | 0x14000880f00>{
                      Path: ".Reason",
                      Err: <*errors.errorString | 0x140007a4ec0>{
                          s: "Expected\n    <string>: FailedConditionCheck\nto equal\n    <string>: bar reason",
                      },
                  },
                  <*errors.NestedError | 0x14000880f20>{
                      Path: ".Message",
                      Err: <*errors.errorString | 0x140007a4fe0>{
                          s: "Expected\n    <string>: check failed\nto equal\n    <string>: bar message",
                      },
                  },
              ],
          },
      ...

  Gomega truncated this representation as it exceeds 'format.MaxLength'.
  Consider having the object provide a custom 'GomegaStringer' representation
  or adjust the parameters in Gomega's 'format' package.

  Learn more here: https://onsi.github.io/gomega/#adjusting-output

  the extra elements were
      <[]v1alpha1.Condition | len:1, cap:1>: [
          {
              Type: "DataVolumesReady",
              Status: "Unknown",
              LastTransitionTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              LastUpdateTime: {
                  Time: 2021-06-01T01:00:00Z,
              },
              Reason: "foobar reason",
              Message: "foobar message",
          },
      ]
  In [It] at: /Users/i585850/go/src/github.com/gardener/etcd-druid/internal/health/status/check_test.go:126 @ 07/03/24 14:53:34.335
------------------------------

Summarizing 1 Failure:
  [FAIL] Check #Check [It] should correctly execute checks and fill status
  /Users/i585850/go/src/github.com/gardener/etcd-druid/internal/health/status/check_test.go:126

Ran 1 of 1 Specs in 0.001 seconds
FAIL! -- 0 Passed | 1 Failed | 0 Pending | 0 Skipped
--- FAIL: TestStatus (0.00s)
FAIL
coverage: 96.3% of statements
composite coverage: 61.1% of statements

Ginkgo ran 30 suites in 17.305683459s

There were failures detected in the following suites:
  status ./internal/health/status

Test Suite Failed
You're using deprecated Ginkgo functionality:
=============================================
  --outputdir is deprecated, use --output-dir instead
  Learn more at: https://onsi.github.io/ginkgo/MIGRATING_TO_V2#improved-profiling-support

To silence deprecations that can be silenced set the following environment variable:
  ACK_GINKGO_DEPRECATIONS=2.13.0

make: *** [test-cov] Error 1
make ci-e2e-kind passes.
➜  etcd-druid git:(goversion) ✗ make ci-e2e-kind
curl -L -o /Users/i585850/go/src/github.com/gardener/etcd-druid/hack/tools/bin/kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-darwin-arm64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    98  100    98    0     0    394      0 --:--:-- --:--:-- --:--:--   393
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 6209k  100 6209k    0     0  1825k      0  0:00:03  0:00:03 --:--:-- 4170k
chmod +x /Users/i585850/go/src/github.com/gardener/etcd-druid/hack/tools/bin/kind

📌 NOTE: To target the newly created KinD cluster, please run the following command:

    export KUBECONFIG=/Users/i585850/go/src/github.com/gardener/etcd-druid/hack/e2e-test/infrastructure/kind/kubeconfig

Creating cluster "etcd-druid-e2e" ...
 ✓ Ensuring node image (kindest/node:v1.29.2) 🖼
 ✓ Preparing nodes 📦  
 ✓ Writing configuration 📜 
 ✓ Starting control-plane 🕹️ 
 ✓ Installing CNI 🔌 
 ✓ Installing StorageClass 💾 
Set kubectl context to "kind-etcd-druid-e2e"
You can now use your cluster with:

kubectl cluster-info --context kind-etcd-druid-e2e

Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
node/etcd-druid-e2e-control-plane condition met
deployment.apps/localstack created
service/localstack created
Waiting for deployment "localstack" rollout to finish: 0 of 1 updated replicas are available...
deployment "localstack" successfully rolled out
pod/localstack-7f769fd7dc-cx98t condition met
namespace/e2e-test created
-------------------
Setting up environment
-------------------
namespace/e2e-test unchanged
No tags generated
Starting test...
Starting deploy...
Starting pre-deploy hooks...
Deleting previous job
No resources found
Completed pre-deploy hooks
Loading images into kind cluster nodes...
Images loaded in 167ns
 - configmap/aws-infra-common created
 - configmap/aws-run-script created
 - secret/aws-infra-secret created
 - job.batch/aws-infra-job created
Starting post-deploy hooks...
Wait until job is ready
job.batch/aws-infra-job condition met
Completed post-deploy hooks
You can also run [skaffold run --tail] to get the logs
There is a new version (2.12.0) of Skaffold available. Download it from:
  https://github.com/GoogleContainerTools/skaffold/releases/tag/v2.12.0

Help improve Skaffold with our 2-minute anonymous survey: run 'skaffold survey'
-------------------
Deploying Druid
-------------------
Generating tags...
 - europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid -> europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid:v0.22.0-16-g322f6b36-dirty
Checking cache...
 - europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid: Not found. Building
Starting build...
Found [kind-etcd-druid-e2e] context, using local docker daemon.
Building [europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid]...
Target platforms: [linux/arm64]
Using base gcr.io/distroless/static-debian11:nonroot@sha256:f41b84cda410b05cc690c2e33d1973a31c6165a2721e2b5343aab50fecb63441 for github.com/gardener/etcd-druid
Using build config europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid for github.com/gardener/etcd-druid
Building github.com/gardener/etcd-druid for linux/arm64/v8
Loading europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid:9a7220423c8c328a0cd4ee0c9dd7cc53e65bf381a9c534a4c4399d9ec5825d93
Loaded europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid:9a7220423c8c328a0cd4ee0c9dd7cc53e65bf381a9c534a4c4399d9ec5825d93
Adding tag v0.22.0-16-g322f6b36-dirty
Added tag v0.22.0-16-g322f6b36-dirty
Build [europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid] succeeded
Starting test...
Tags used in deployment:
 - europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid -> europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid:5d5f9c7535f0685df78fd921d56e821984d1b221b7be15e3d4108b016b0aa365
Starting deploy...
Loading images into kind cluster nodes...
 - europe-docker.pkg.dev/gardener-project/public/gardener/etcd-druid:5d5f9c7535f0685df78fd921d56e821984d1b221b7be15e3d4108b016b0aa365 -> Loaded
Images loaded in 1.558 second
Helm release etcd-druid not installed. Installing...
NAME: etcd-druid
LAST DEPLOYED: Wed Jul  3 15:06:39 2024
NAMESPACE: e2e-test
STATUS: deployed
REVISION: 1
TEST SUITE: None
Waiting for deployments to stabilize...
 - e2e-test:deployment/etcd-druid is ready.
Deployments stabilized in 2.062 seconds
You can also run [skaffold run --tail] to get the logs

-------------------
Running e2e tests
-------------------
=== RUN   TestIntegration
Running Suite: e2e Suite - /Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e
========================================================================================
Random Seed: 1719999414

Will run 7 of 7 specs
------------------------------
[BeforeSuite] 
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/suite_test.go:63
  > Enter [BeforeSuite] TOP-LEVEL @ 07/03/24 15:06:54.315
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"creating namespace","namespace":"shoot"}
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"creating secret","secret":{"name":"ca-etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"creating secret","secret":{"name":"etcd-server-cert-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"creating secret","secret":{"name":"etcd-client-tls-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"creating secret","secret":{"name":"etcd-backup-aws","namespace":"shoot"}}
  < Exit [BeforeSuite] TOP-LEVEL @ 07/03/24 15:06:54.369 (54ms)
[BeforeSuite] PASSED [0.054 seconds]
------------------------------
Etcd Backup when single-node etcd is configured with provider aws Should create, test backup and delete etcd with backup
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_backup_test.go:80
  > Enter [BeforeEach] Etcd Backup @ 07/03/24 15:06:54.369
  < Exit [BeforeEach] Etcd Backup @ 07/03/24 15:06:54.369 (0s)
  > Enter [BeforeEach] with provider aws @ 07/03/24 15:06:54.369
  STEP: Purge snapstore @ 07/03/24 15:06:54.369
  < Exit [BeforeEach] with provider aws @ 07/03/24 15:06:54.377 (7ms)
  > Enter [It] Should create, test backup and delete etcd with backup @ 07/03/24 15:06:54.377
  STEP: Create etcd @ 07/03/24 15:06:54.377
  {"level":"info","ts":"2024-07-03T15:06:54+05:30","msg":"Waiting for etcd to become ready","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:08:02+05:30","msg":"etcd is ready","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:08:02+05:30","msg":"Checking statefulset","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:08:02+05:30","msg":"Checking configmap","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:08:02+05:30","msg":"Checking client service","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Create debug pod @ 07/03/24 15:08:02.735
  STEP: Check initial snapshot is available @ 07/03/24 15:08:14.789
  STEP: Put keys into etcd @ 07/03/24 15:08:14.878
  {"level":"info","ts":"2024-07-03T15:08:14+05:30","msg":"populating etcd with sequential key-value pairs","fromKey":"foo-1","fromValue":"bar-1","toKey":"foo-10","toValue":"bar-10"}
  {"level":"info","ts":"2024-07-03T15:08:18+05:30","msg":"put key-value successful","key":"foo-1","value":"bar-1"}
  {"level":"info","ts":"2024-07-03T15:08:18+05:30","msg":"put key-value successful","key":"foo-2","value":"bar-2"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-3","value":"bar-3"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-4","value":"bar-4"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-5","value":"bar-5"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-6","value":"bar-6"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-7","value":"bar-7"}
  {"level":"info","ts":"2024-07-03T15:08:19+05:30","msg":"put key-value successful","key":"foo-8","value":"bar-8"}
  {"level":"info","ts":"2024-07-03T15:08:20+05:30","msg":"put key-value successful","key":"foo-9","value":"bar-9"}
  {"level":"info","ts":"2024-07-03T15:08:20+05:30","msg":"put key-value successful","key":"foo-10","value":"bar-10"}
  STEP: Check snapshot after putting data into etcd @ 07/03/24 15:08:20.362
  STEP: Trigger on-demand full snapshot @ 07/03/24 15:08:20.453
  STEP: Put additional data into etcd @ 07/03/24 15:08:20.52
  {"level":"info","ts":"2024-07-03T15:08:20+05:30","msg":"populating etcd with sequential key-value pairs","fromKey":"foo-11","fromValue":"bar-11","toKey":"foo-15","toValue":"bar-15"}
  {"level":"info","ts":"2024-07-03T15:08:23+05:30","msg":"put key-value successful","key":"foo-11","value":"bar-11"}
  {"level":"info","ts":"2024-07-03T15:08:23+05:30","msg":"put key-value successful","key":"foo-12","value":"bar-12"}
  {"level":"info","ts":"2024-07-03T15:08:23+05:30","msg":"put key-value successful","key":"foo-13","value":"bar-13"}
  {"level":"info","ts":"2024-07-03T15:08:23+05:30","msg":"put key-value successful","key":"foo-14","value":"bar-14"}
  {"level":"info","ts":"2024-07-03T15:08:24+05:30","msg":"put key-value successful","key":"foo-15","value":"bar-15"}
  STEP: Trigger on-demand delta snapshot @ 07/03/24 15:08:24.052
  STEP: Test cluster restoration by deleting data directory @ 07/03/24 15:08:24.111
  {"level":"info","ts":"2024-07-03T15:08:24+05:30","msg":"waiting for sts to become unready","statefulSetName":"etcd-aws"}
  {"level":"info","ts":"2024-07-03T15:08:50+05:30","msg":"sts is unready","statefulSetName":"etcd-aws"}
  {"level":"info","ts":"2024-07-03T15:08:50+05:30","msg":"waiting for sts to become ready again","statefulSetName":"etcd-aws"}
  {"level":"info","ts":"2024-07-03T15:09:10+05:30","msg":"sts is ready","statefulSetName":"etcd-aws"}
  {"level":"info","ts":"2024-07-03T15:09:10+05:30","msg":"fetching etcd key-value pairs"}
  {"level":"info","ts":"2024-07-03T15:09:10+05:30","msg":"fetched key-value pair from etcd","key":"foo-1","value":"bar-1"}
  {"level":"info","ts":"2024-07-03T15:09:10+05:30","msg":"fetched key-value pair from etcd","key":"foo-2","value":"bar-2"}
  {"level":"info","ts":"2024-07-03T15:09:10+05:30","msg":"fetched key-value pair from etcd","key":"foo-3","value":"bar-3"}
  {"level":"info","ts":"2024-07-03T15:09:11+05:30","msg":"fetched key-value pair from etcd","key":"foo-4","value":"bar-4"}
  {"level":"info","ts":"2024-07-03T15:09:11+05:30","msg":"fetched key-value pair from etcd","key":"foo-5","value":"bar-5"}
  {"level":"info","ts":"2024-07-03T15:09:11+05:30","msg":"fetched key-value pair from etcd","key":"foo-6","value":"bar-6"}
  {"level":"info","ts":"2024-07-03T15:09:11+05:30","msg":"fetched key-value pair from etcd","key":"foo-7","value":"bar-7"}
  {"level":"info","ts":"2024-07-03T15:09:11+05:30","msg":"fetched key-value pair from etcd","key":"foo-8","value":"bar-8"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-9","value":"bar-9"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-10","value":"bar-10"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-11","value":"bar-11"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-12","value":"bar-12"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-13","value":"bar-13"}
  {"level":"info","ts":"2024-07-03T15:09:12+05:30","msg":"fetched key-value pair from etcd","key":"foo-14","value":"bar-14"}
  {"level":"info","ts":"2024-07-03T15:09:13+05:30","msg":"fetched key-value pair from etcd","key":"foo-15","value":"bar-15"}
  < Exit [It] Should create, test backup and delete etcd with backup @ 07/03/24 15:09:13.113 (2m18.737s)
  > Enter [AfterEach] with provider aws @ 07/03/24 15:09:13.113
  STEP: Delete debug pod @ 07/03/24 15:09:13.113
  STEP: Purge etcd @ 07/03/24 15:09:13.117
  {"level":"info","ts":"2024-07-03T15:09:17+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] with provider aws @ 07/03/24 15:09:17.161 (4.048s)
• [142.793 seconds]
------------------------------
Etcd when multi-node is configured should perform etcd operations
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_multi_node_test.go:72
  > Enter [BeforeEach] Etcd @ 07/03/24 15:09:17.161
  STEP: Purge snapstore @ 07/03/24 15:09:17.161
  < Exit [BeforeEach] Etcd @ 07/03/24 15:09:17.176 (15ms)
  > Enter [It] should perform etcd operations @ 07/03/24 15:09:17.176
  STEP: Create etcd @ 07/03/24 15:09:17.176
  {"level":"info","ts":"2024-07-03T15:09:17+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:29+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:29+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:29+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:29+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Hibernate etcd (Scale down from 3 replicas to 0) @ 07/03/24 15:11:29.804
  {"level":"info","ts":"2024-07-03T15:11:29+05:30","msg":"Waiting for statefulset spec to reflect change in replicas to 0","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:31+05:30","msg":"Checking etcd","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:33+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:11:33+05:30","msg":"etcd is hibernated","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Wakeup etcd (Scale up from 0->3 replicas) @ 07/03/24 15:11:33.868
  {"level":"info","ts":"2024-07-03T15:11:35+05:30","msg":"Waiting for etcd to become ready"}
  {"level":"info","ts":"2024-07-03T15:13:04+05:30","msg":"etcd is ready"}
  {"level":"info","ts":"2024-07-03T15:13:04+05:30","msg":"Checking statefulset"}
  {"level":"info","ts":"2024-07-03T15:13:04+05:30","msg":"Checking configmap"}
  {"level":"info","ts":"2024-07-03T15:13:04+05:30","msg":"Checking client service"}
  STEP: Deploy etcd zero downtime validator job @ 07/03/24 15:13:04.356
  {"level":"info","ts":"2024-07-03T15:13:04+05:30","msg":"Creating job to ensure etcd zero downtime","job":"etcd-zero-down-time-validator-rolling-update"}
  {"level":"info","ts":"2024-07-03T15:13:22+05:30","msg":"Job is ready","job":"etcd-zero-down-time-validator-rolling-update"}
  STEP: Zero downtime rolling updates @ 07/03/24 15:13:22.5
  {"level":"info","ts":"2024-07-03T15:13:56+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"Etcd Cluster is healthy and there is no downtime","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Zero downtime maintenance operation: defragmentation @ 07/03/24 15:14:20.926
  {"level":"info","ts":"2024-07-03T15:14:20+05:30","msg":"Configure defragmentation schedule for every 1 minute","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:05+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"Etcd Cluster is healthy and there is no downtime","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:15:25+05:30","msg":"Waiting for defragmentation to finish","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:00+05:30","msg":"Defragmentation is finished","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:00+05:30","msg":"Checking any Etcd downtime","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:00+05:30","msg":"Etcd Cluster is healthy and there is no downtime","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Member restart with data-dir/pvc intact @ 07/03/24 15:17:00.518
  {"level":"info","ts":"2024-07-03T15:17:00+05:30","msg":"Delete one member pod","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:00+05:30","msg":"waiting for sts to become unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:02+05:30","msg":"sts is unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:02+05:30","msg":"Waiting for at least one etcd member to become unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:06+05:30","msg":"at least one etcd member is unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:06+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:20+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:20+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:20+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:20+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Single member restoration @ 07/03/24 15:17:20.671
  {"level":"info","ts":"2024-07-03T15:17:20+05:30","msg":"Create debug pod","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:24+05:30","msg":"Delete member dir of one member pod","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:24+05:30","msg":"waiting for sts to become unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:38+05:30","msg":"sts is unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:38+05:30","msg":"Waiting for at least one etcd member to become unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:40+05:30","msg":"at least one etcd member is unready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:40+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:56+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:56+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:56+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:17:56+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Delete debug pod @ 07/03/24 15:17:56.911
  STEP: Delete etcd @ 07/03/24 15:17:56.916
  {"level":"info","ts":"2024-07-03T15:17:56+05:30","msg":"Checking if etcd is gone","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:00+05:30","msg":"Checking if statefulset is gone","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:00+05:30","msg":"Checking if configmap is gone","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:00+05:30","msg":"Checking client service is gone","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:00+05:30","msg":"Deleting PVCs"}
  < Exit [It] should perform etcd operations @ 07/03/24 15:18:00.973 (8m43.801s)
  > Enter [AfterEach] Etcd @ 07/03/24 15:18:00.973
  STEP: Purge etcd @ 07/03/24 15:18:00.973
  < Exit [AfterEach] Etcd @ 07/03/24 15:18:00.975 (3ms)
• [523.819 seconds]
------------------------------
Etcd when a single-node is configured should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS not enabled for peerUrl)
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_multi_node_test.go:140
  > Enter [BeforeEach] Etcd @ 07/03/24 15:18:00.975
  STEP: Purge snapstore @ 07/03/24 15:18:00.975
  < Exit [BeforeEach] Etcd @ 07/03/24 15:18:00.993 (18ms)
  > Enter [It] should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS not enabled for peerUrl) @ 07/03/24 15:18:00.993
  STEP: Creating a single-node etcd @ 07/03/24 15:18:00.994
  {"level":"info","ts":"2024-07-03T15:18:00+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:33+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:33+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:33+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:18:33+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up a healthy cluster (from 1 to 3 replicas) @ 07/03/24 15:18:33.159
  {"level":"info","ts":"2024-07-03T15:19:27+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:19:51+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:19:51+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:19:51+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:19:51+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  < Exit [It] should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS not enabled for peerUrl) @ 07/03/24 15:19:51.628 (1m50.635s)
  > Enter [AfterEach] Etcd @ 07/03/24 15:19:51.628
  STEP: Purge etcd @ 07/03/24 15:19:51.628
  {"level":"info","ts":"2024-07-03T15:19:57+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] Etcd @ 07/03/24 15:19:57.667 (6.039s)
• [116.693 seconds]
------------------------------
Etcd when a single-node is configured should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS enabled for peerUrl)
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_multi_node_test.go:156
  > Enter [BeforeEach] Etcd @ 07/03/24 15:19:57.667
  STEP: Purge snapstore @ 07/03/24 15:19:57.667
  < Exit [BeforeEach] Etcd @ 07/03/24 15:19:57.673 (6ms)
  > Enter [It] should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS enabled for peerUrl) @ 07/03/24 15:19:57.673
  STEP: Creating a single-node etcd @ 07/03/24 15:19:57.673
  {"level":"info","ts":"2024-07-03T15:19:57+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:20:29+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:20:29+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:20:29+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:20:29+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up a healthy cluster (from 1 to 3 replicas) with TLS enabled for peerUrl @ 07/03/24 15:20:29.827
  {"level":"info","ts":"2024-07-03T15:20:31+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:14+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:14+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:14+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:14+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  < Exit [It] should scale a single-node etcd (TLS not enabled for peerUrl) to a multi-node etcd cluster (TLS enabled for peerUrl) @ 07/03/24 15:22:14.403 (2m16.731s)
  > Enter [AfterEach] Etcd @ 07/03/24 15:22:14.403
  STEP: Purge etcd @ 07/03/24 15:22:14.403
  {"level":"info","ts":"2024-07-03T15:22:20+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] Etcd @ 07/03/24 15:22:20.47 (6.068s)
• [142.805 seconds]
------------------------------
Etcd when a single-node is configured should scale down a single-node etcd to 0, then scale up from 0->1 replicas and then from 1->3 replicas
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_multi_node_test.go:173
  > Enter [BeforeEach] Etcd @ 07/03/24 15:22:20.471
  STEP: Purge snapstore @ 07/03/24 15:22:20.471
  < Exit [BeforeEach] Etcd @ 07/03/24 15:22:20.478 (8ms)
  > Enter [It] should scale down a single-node etcd to 0, then scale up from 0->1 replicas and then from 1->3 replicas @ 07/03/24 15:22:20.478
  STEP: Creating a single-node etcd @ 07/03/24 15:22:20.478
  {"level":"info","ts":"2024-07-03T15:22:20+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:52+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:52+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:52+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:52+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling down a healthy cluster (from 1 to 0 replica) @ 07/03/24 15:22:52.646
  {"level":"info","ts":"2024-07-03T15:22:54+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:56+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:56+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:56+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:22:56+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up cluster (from 0 to 1 replica) @ 07/03/24 15:22:56.728
  {"level":"info","ts":"2024-07-03T15:22:58+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:23:20+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:23:20+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:23:20+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:23:20+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up a healthy cluster (from 1 to 3 replica) @ 07/03/24 15:23:20.892
  {"level":"info","ts":"2024-07-03T15:24:15+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:24:31+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:24:31+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:24:31+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:24:31+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  < Exit [It] should scale down a single-node etcd to 0, then scale up from 0->1 replicas and then from 1->3 replicas @ 07/03/24 15:24:31.382 (2m10.905s)
  > Enter [AfterEach] Etcd @ 07/03/24 15:24:31.382
  STEP: Purge etcd @ 07/03/24 15:24:31.382
  {"level":"info","ts":"2024-07-03T15:24:37+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] Etcd @ 07/03/24 15:24:37.452 (6.069s)
• [136.982 seconds]
------------------------------
Etcd when a single-node is configured should scale down a single-node etcd to 0 replica, then scale up from 0->1 replica and then from 1->3 replicas with TLS enabled for cluster peerUrl
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_multi_node_test.go:199
  > Enter [BeforeEach] Etcd @ 07/03/24 15:24:37.452
  STEP: Purge snapstore @ 07/03/24 15:24:37.452
  < Exit [BeforeEach] Etcd @ 07/03/24 15:24:37.463 (11ms)
  > Enter [It] should scale down a single-node etcd to 0 replica, then scale up from 0->1 replica and then from 1->3 replicas with TLS enabled for cluster peerUrl @ 07/03/24 15:24:37.463
  STEP: Creating a single-node etcd @ 07/03/24 15:24:37.463
  {"level":"info","ts":"2024-07-03T15:24:37+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:09+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:09+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:09+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:09+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling down a healthy cluster (from 1 to 0 replica) @ 07/03/24 15:25:09.648
  {"level":"info","ts":"2024-07-03T15:25:11+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:13+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:13+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:13+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:13+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up cluster (from 0 to 1 replica) @ 07/03/24 15:25:13.734
  {"level":"info","ts":"2024-07-03T15:25:15+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:37+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:37+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:37+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:25:37+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Scaling up a healthy cluster (from 1 to 3 replica) with TLS enabled for peerUrl @ 07/03/24 15:25:37.904
  {"level":"info","ts":"2024-07-03T15:25:39+05:30","msg":"Waiting for etcd to become ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:27:24+05:30","msg":"etcd is ready","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:27:24+05:30","msg":"Checking statefulset","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:27:24+05:30","msg":"Checking configmap","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:27:24+05:30","msg":"Checking client service","etcd-multi-node":{"name":"etcd-aws","namespace":"shoot"}}
  < Exit [It] should scale down a single-node etcd to 0 replica, then scale up from 0->1 replica and then from 1->3 replicas with TLS enabled for cluster peerUrl @ 07/03/24 15:27:24.463 (2m47.001s)
  > Enter [AfterEach] Etcd @ 07/03/24 15:27:24.463
  STEP: Purge etcd @ 07/03/24 15:27:24.463
  {"level":"info","ts":"2024-07-03T15:27:30+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] Etcd @ 07/03/24 15:27:30.528 (6.065s)
• [173.078 seconds]
------------------------------
Etcd Compaction when compaction is enabled for single-node etcd with provider aws should test compaction on backup
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/etcd_compaction_test.go:74
  > Enter [BeforeEach] Etcd Compaction @ 07/03/24 15:27:30.528
  < Exit [BeforeEach] Etcd Compaction @ 07/03/24 15:27:30.528 (0s)
  > Enter [BeforeEach] with provider aws @ 07/03/24 15:27:30.528
  STEP: Purge snapstore @ 07/03/24 15:27:30.528
  < Exit [BeforeEach] with provider aws @ 07/03/24 15:27:30.54 (11ms)
  > Enter [It] should test compaction on backup @ 07/03/24 15:27:30.54
  STEP: Create etcd @ 07/03/24 15:27:30.54
  {"level":"info","ts":"2024-07-03T15:27:30+05:30","msg":"Waiting for etcd to become ready","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:28:02+05:30","msg":"etcd is ready","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:28:02+05:30","msg":"Checking statefulset","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:28:02+05:30","msg":"Checking configmap","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  {"level":"info","ts":"2024-07-03T15:28:02+05:30","msg":"Checking client service","etcd":{"name":"etcd-aws","namespace":"shoot"}}
  STEP: Create debug pod @ 07/03/24 15:28:02.709
  STEP: Check initial snapshot is available @ 07/03/24 15:28:06.738
  STEP: Put keys into etcd @ 07/03/24 15:28:06.829
  {"level":"info","ts":"2024-07-03T15:28:06+05:30","msg":"populating etcd with sequential key-value pairs","fromKey":"foo-1","fromValue":"bar-1","toKey":"foo-10","toValue":"bar-10"}
  {"level":"info","ts":"2024-07-03T15:28:09+05:30","msg":"put key-value successful","key":"foo-1","value":"bar-1"}
  {"level":"info","ts":"2024-07-03T15:28:09+05:30","msg":"put key-value successful","key":"foo-2","value":"bar-2"}
  {"level":"info","ts":"2024-07-03T15:28:09+05:30","msg":"put key-value successful","key":"foo-3","value":"bar-3"}
  {"level":"info","ts":"2024-07-03T15:28:10+05:30","msg":"put key-value successful","key":"foo-4","value":"bar-4"}
  {"level":"info","ts":"2024-07-03T15:28:10+05:30","msg":"put key-value successful","key":"foo-5","value":"bar-5"}
  {"level":"info","ts":"2024-07-03T15:28:10+05:30","msg":"put key-value successful","key":"foo-6","value":"bar-6"}
  {"level":"info","ts":"2024-07-03T15:28:10+05:30","msg":"put key-value successful","key":"foo-7","value":"bar-7"}
  {"level":"info","ts":"2024-07-03T15:28:10+05:30","msg":"put key-value successful","key":"foo-8","value":"bar-8"}
  {"level":"info","ts":"2024-07-03T15:28:11+05:30","msg":"put key-value successful","key":"foo-9","value":"bar-9"}
  {"level":"info","ts":"2024-07-03T15:28:11+05:30","msg":"put key-value successful","key":"foo-10","value":"bar-10"}
  STEP: Check snapshot after putting data into etcd @ 07/03/24 15:28:11.232
  STEP: Put additional data into etcd @ 07/03/24 15:28:11.323
  {"level":"info","ts":"2024-07-03T15:28:11+05:30","msg":"populating etcd with sequential key-value pairs","fromKey":"foo-11","fromValue":"bar-11","toKey":"foo-15","toValue":"bar-15"}
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"put key-value successful","key":"foo-11","value":"bar-11"}
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"put key-value successful","key":"foo-12","value":"bar-12"}
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"put key-value successful","key":"foo-13","value":"bar-13"}
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"put key-value successful","key":"foo-14","value":"bar-14"}
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"put key-value successful","key":"foo-15","value":"bar-15"}
  STEP: Trigger on-demand delta snapshot @ 07/03/24 15:28:14.872
  {"level":"info","ts":"2024-07-03T15:28:14+05:30","msg":"waiting for compaction job to become successful"}
  {"level":"info","ts":"2024-07-03T15:28:48+05:30","msg":"compaction job is successful"}
  STEP: Put additional data into etcd @ 07/03/24 15:28:48.408
  {"level":"info","ts":"2024-07-03T15:28:48+05:30","msg":"populating etcd with sequential key-value pairs","fromKey":"foo-16","fromValue":"bar-16","toKey":"foo-20","toValue":"bar-20"}
  {"level":"info","ts":"2024-07-03T15:28:51+05:30","msg":"put key-value successful","key":"foo-16","value":"bar-16"}
  {"level":"info","ts":"2024-07-03T15:28:51+05:30","msg":"put key-value successful","key":"foo-17","value":"bar-17"}
  {"level":"info","ts":"2024-07-03T15:28:51+05:30","msg":"put key-value successful","key":"foo-18","value":"bar-18"}
  {"level":"info","ts":"2024-07-03T15:28:51+05:30","msg":"put key-value successful","key":"foo-19","value":"bar-19"}
  {"level":"info","ts":"2024-07-03T15:28:51+05:30","msg":"put key-value successful","key":"foo-20","value":"bar-20"}
  STEP: Trigger next on-demand delta snapshot @ 07/03/24 15:28:51.959
  STEP: Verify that there are new delta snapshots as compaction is not triggered yet because delta events have not reached next 15 revision @ 07/03/24 15:28:51.998
  < Exit [It] should test compaction on backup @ 07/03/24 15:28:52.044 (1m21.505s)
  > Enter [AfterEach] with provider aws @ 07/03/24 15:28:52.044
  STEP: Delete debug pod @ 07/03/24 15:28:52.044
  STEP: Purge etcd @ 07/03/24 15:28:52.047
  {"level":"info","ts":"2024-07-03T15:28:58+05:30","msg":"Deleting PVCs"}
  < Exit [AfterEach] with provider aws @ 07/03/24 15:28:58.088 (6.044s)
• [87.561 seconds]
------------------------------
[AfterSuite] 
/Users/i585850/go/src/github.com/gardener/etcd-druid/test/e2e/suite_test.go:107
  > Enter [AfterSuite] TOP-LEVEL @ 07/03/24 15:28:58.088
  {"level":"info","ts":"2024-07-03T15:28:58+05:30","msg":"deleting namespace","namespace":"shoot","namespace":"shoot"}
  < Exit [AfterSuite] TOP-LEVEL @ 07/03/24 15:29:04.126 (6.037s)
[AfterSuite] PASSED [6.037 seconds]
------------------------------

Ran 7 of 7 Specs in 1329.823 seconds
SUCCESS! -- 7 Passed | 0 Failed | 0 Pending | 0 Skipped
--- PASS: TestIntegration (1329.82s)
PASS
ok  	github.com/gardener/etcd-druid/test/e2e	1329.874s
Exporting logs for cluster "etcd-druid-e2e" to:
/tmp/etcd-druid-e2e
/Users/i585850/go/src/github.com/gardener/etcd-druid/hack/tools/bin/kind delete cluster --name etcd-druid-e2e
Deleting cluster "etcd-druid-e2e" ...
Deleted nodes: ["etcd-druid-e2e-control-plane"]

The newer go1.22.5 was released a few days ago, but I don't have strong opinions on moving to this version.

@renormalize renormalize added this to the v0.23.0 milestone Jul 3, 2024
@unmarshall
Copy link
Contributor Author

@renormalize as we discussed we will not move to 1.22.5 as of now. Let us stick to 1.22.4 if you do not have major objections to it.

@renormalize
Copy link
Member

@unmarshall Let's stick with go1.22.4.

@unmarshall unmarshall merged commit ac3dd6f into gardener:master Jul 3, 2024
4 of 8 checks passed
@gardener-robot gardener-robot added the status/closed Issue is closed (either delivered or triaged) label Jul 3, 2024
@unmarshall unmarshall deleted the goversion branch July 3, 2024 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dev-productivity Developer productivity related (how to improve development) area/quality Output qualification (tests, checks, scans, automation in general, etc.) related kind/enhancement Enhancement, improvement, extension needs/ok-to-test Needs approval for testing (check PR in detail before setting this label because PR is run on CI/CD) reviewed/lgtm Has approval for merging size/xs Size of pull request is tiny (see gardener-robot robot/bots/size.py) status/closed Issue is closed (either delivered or triaged)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade golang version to 1.22
7 participants