diff --git a/internal/controller/enterprise_controller.go b/internal/controller/enterprise_controller.go index 75f243d..9a117cc 100644 --- a/internal/controller/enterprise_controller.go +++ b/internal/controller/enterprise_controller.go @@ -136,11 +136,6 @@ func (r *EnterpriseReconciler) reconcileNormal(ctx context.Context, client garmC return ctrl.Result{}, err } - if err = annotations.SetLastSyncTime(enterprise, r.Client); err != nil { - log.Error(err, fmt.Sprintf("can not set annotation: %s", key.LastSyncTimeAnnotation)) - return ctrl.Result{}, err - } - log.Info("reconciling enterprise successfully done") return ctrl.Result{}, nil } diff --git a/internal/controller/enterprise_controller_test.go b/internal/controller/enterprise_controller_test.go index 56c7a41..3439d74 100644 --- a/internal/controller/enterprise_controller_test.go +++ b/internal/controller/enterprise_controller_test.go @@ -10,7 +10,6 @@ import ( "github.com/cloudbase/garm/client/enterprises" "github.com/cloudbase/garm/params" - "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -23,7 +22,6 @@ import ( garmoperatorv1alpha1 "github.com/mercedes-benz/garm-operator/api/v1alpha1" "github.com/mercedes-benz/garm-operator/pkg/client/key" "github.com/mercedes-benz/garm-operator/pkg/client/mock" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" "github.com/mercedes-benz/garm-operator/pkg/util/conditions" ) @@ -32,13 +30,12 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { defer mockCtrl.Finish() tests := []struct { - name string - object runtime.Object - expectGarmRequest func(m *mock.MockEnterpriseClientMockRecorder) - runtimeObjects []runtime.Object - wantErr bool - expectedObject *garmoperatorv1alpha1.Enterprise - expectLastSyncTimeAnnotation bool + name string + object runtime.Object + expectGarmRequest func(m *mock.MockEnterpriseClientMockRecorder) + runtimeObjects []runtime.Object + wantErr bool + expectedObject *garmoperatorv1alpha1.Enterprise }{ { name: "enterprise exist - update", @@ -137,7 +134,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "enterprise exist but spec has changed - update", @@ -236,7 +232,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "enterprise exist but pool status has changed - update", @@ -339,7 +334,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "enterprise does not exist - create and update", @@ -445,7 +439,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "enterprise already exist in garm - update", @@ -537,7 +530,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "enterprise does not exist in garm - create update", @@ -644,7 +636,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "secret ref not found condition", @@ -700,9 +691,8 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { }, }, }, - expectGarmRequest: func(m *mock.MockEnterpriseClientMockRecorder) {}, - expectLastSyncTimeAnnotation: false, - wantErr: true, + expectGarmRequest: func(m *mock.MockEnterpriseClientMockRecorder) {}, + wantErr: true, }, } for _, tt := range tests { @@ -736,9 +726,6 @@ func TestEnterpriseReconciler_reconcileNormal(t *testing.T) { return } - // test last-sync-time - assert.Equal(t, tt.expectLastSyncTimeAnnotation, annotations.HasAnnotation(enterprise, key.LastSyncTimeAnnotation)) - // clear out annotations to avoid comparison errors enterprise.ObjectMeta.Annotations = nil diff --git a/internal/controller/organization_controller.go b/internal/controller/organization_controller.go index 98ddd85..d397eda 100644 --- a/internal/controller/organization_controller.go +++ b/internal/controller/organization_controller.go @@ -135,11 +135,6 @@ func (r *OrganizationReconciler) reconcileNormal(ctx context.Context, client gar return ctrl.Result{}, err } - if err = annotations.SetLastSyncTime(organization, r.Client); err != nil { - log.Error(err, "can not set annotation") - return ctrl.Result{}, err - } - log.Info("reconciling organization successfully done") return ctrl.Result{}, nil diff --git a/internal/controller/organization_controller_test.go b/internal/controller/organization_controller_test.go index 3926d10..466faea 100644 --- a/internal/controller/organization_controller_test.go +++ b/internal/controller/organization_controller_test.go @@ -10,7 +10,6 @@ import ( "github.com/cloudbase/garm/client/organizations" "github.com/cloudbase/garm/params" - "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -23,7 +22,6 @@ import ( garmoperatorv1alpha1 "github.com/mercedes-benz/garm-operator/api/v1alpha1" "github.com/mercedes-benz/garm-operator/pkg/client/key" "github.com/mercedes-benz/garm-operator/pkg/client/mock" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" "github.com/mercedes-benz/garm-operator/pkg/util/conditions" ) @@ -32,13 +30,12 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { defer mockCtrl.Finish() tests := []struct { - name string - object runtime.Object - runtimeObjects []runtime.Object - expectGarmRequest func(m *mock.MockOrganizationClientMockRecorder) - wantErr bool - expectedObject *garmoperatorv1alpha1.Organization - expectLastSyncTimeAnnotation bool + name string + object runtime.Object + runtimeObjects []runtime.Object + expectGarmRequest func(m *mock.MockOrganizationClientMockRecorder) + wantErr bool + expectedObject *garmoperatorv1alpha1.Organization }{ { name: "organization exist - update", @@ -137,7 +134,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "organization exist but spec has changed - update", @@ -236,7 +232,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "organization exist but pool status has changed - update", @@ -339,7 +334,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "organization does not exist - create and update", @@ -445,7 +439,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "organization already exist in garm - update", @@ -537,7 +530,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "organization does not exist in garm - create and update", @@ -644,7 +636,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "secret ref not found condition", @@ -700,9 +691,8 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { }, }, }, - expectGarmRequest: func(m *mock.MockOrganizationClientMockRecorder) {}, - expectLastSyncTimeAnnotation: false, - wantErr: true, + expectGarmRequest: func(m *mock.MockOrganizationClientMockRecorder) {}, + wantErr: true, }, } for _, tt := range tests { @@ -736,9 +726,6 @@ func TestOrganizationReconciler_reconcileNormal(t *testing.T) { return } - // test last-sync-time - assert.Equal(t, tt.expectLastSyncTimeAnnotation, annotations.HasAnnotation(organization, key.LastSyncTimeAnnotation)) - // clear out annotations to avoid comparison errors organization.ObjectMeta.Annotations = nil diff --git a/internal/controller/pool_controller.go b/internal/controller/pool_controller.go index 3ca304e..0600cb4 100644 --- a/internal/controller/pool_controller.go +++ b/internal/controller/pool_controller.go @@ -326,19 +326,12 @@ func (r *PoolReconciler) handleUpdateError(ctx context.Context, pool *garmoperat } func (r *PoolReconciler) handleSuccessfulUpdate(ctx context.Context, pool *garmoperatorv1alpha1.Pool) (ctrl.Result, error) { - log := log.FromContext(ctx) - conditions.MarkTrue(pool, conditions.ReadyCondition, conditions.SuccessfulReconcileReason, "") if err := r.updatePoolCRStatus(ctx, pool); err != nil { return ctrl.Result{}, err } - if err := annotations.SetLastSyncTime(pool, r.Client); err != nil { - log.Error(err, "can not set annotation") - return ctrl.Result{}, err - } - return ctrl.Result{}, nil } diff --git a/internal/controller/pool_controller_test.go b/internal/controller/pool_controller_test.go index 097a6b7..37cd6db 100644 --- a/internal/controller/pool_controller_test.go +++ b/internal/controller/pool_controller_test.go @@ -14,7 +14,6 @@ import ( "github.com/cloudbase/garm/client/instances" "github.com/cloudbase/garm/client/pools" "github.com/cloudbase/garm/params" - "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -29,7 +28,6 @@ import ( "github.com/mercedes-benz/garm-operator/pkg/client/key" "github.com/mercedes-benz/garm-operator/pkg/client/mock" "github.com/mercedes-benz/garm-operator/pkg/config" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" "github.com/mercedes-benz/garm-operator/pkg/util/conditions" ) @@ -51,11 +49,10 @@ func TestPoolController_ReconcileCreate(t *testing.T) { // a list of objects to initialize the fake client with // this can be used to define other existing objects that are referenced by the object to reconcile // e.g. images or other pools .. - runtimeObjects []runtime.Object - expectGarmRequest func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) - wantErr bool - expectLastSyncTimeAnnotation bool - expectedObject *garmoperatorv1alpha1.Pool + runtimeObjects []runtime.Object + expectGarmRequest func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) + wantErr bool + expectedObject *garmoperatorv1alpha1.Pool }{ { name: "pool does not exist in garm - create", @@ -197,7 +194,6 @@ func TestPoolController_ReconcileCreate(t *testing.T) { }, }, }, - expectLastSyncTimeAnnotation: true, expectGarmRequest: func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) { poolClient.ListAllPools(pools.NewListPoolsParams()).Return(&pools.ListPoolsOK{Payload: params.Pools{}}, nil) @@ -407,7 +403,6 @@ func TestPoolController_ReconcileCreate(t *testing.T) { }, }, }, - expectLastSyncTimeAnnotation: true, expectGarmRequest: func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) { poolClient.GetPool(pools.NewGetPoolParams().WithPoolID(outdatedPoolID)).Return(&pools.GetPoolOK{Payload: params.Pool{}}, nil) @@ -596,7 +591,6 @@ func TestPoolController_ReconcileCreate(t *testing.T) { }, }, }, - expectLastSyncTimeAnnotation: true, expectGarmRequest: func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) { poolClient.GetPool(pools.NewGetPoolParams().WithPoolID(poolID)).Return(&pools.GetPoolOK{Payload: params.Pool{ RunnerPrefix: params.RunnerPrefix{ @@ -776,7 +770,6 @@ func TestPoolController_ReconcileCreate(t *testing.T) { // LastSyncError: "", }, }, - expectLastSyncTimeAnnotation: true, expectedObject: &garmoperatorv1alpha1.Pool{ TypeMeta: metav1.TypeMeta{ Kind: "Pool", @@ -1269,8 +1262,7 @@ func TestPoolController_ReconcileCreate(t *testing.T) { }, }, }, - wantErr: true, - expectLastSyncTimeAnnotation: false, + wantErr: true, expectGarmRequest: func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) { }, }, @@ -1416,8 +1408,7 @@ func TestPoolController_ReconcileCreate(t *testing.T) { }, }, }, - expectLastSyncTimeAnnotation: false, - wantErr: true, + wantErr: true, expectGarmRequest: func(poolClient *mock.MockPoolClientMockRecorder, instanceClient *mock.MockInstanceClientMockRecorder) { poolClient.GetPool(pools.NewGetPoolParams().WithPoolID(poolID)).Return(&pools.GetPoolOK{Payload: params.Pool{ RunnerPrefix: params.RunnerPrefix{ @@ -1500,9 +1491,6 @@ func TestPoolController_ReconcileCreate(t *testing.T) { return } - // test last-sync-time - assert.Equal(t, annotations.HasAnnotation(pool, key.LastSyncTimeAnnotation), tt.expectLastSyncTimeAnnotation) - // clear out annotations to avoid comparison errors pool.ObjectMeta.Annotations = nil diff --git a/internal/controller/repository_controller.go b/internal/controller/repository_controller.go index 91b4b7a..be414f2 100644 --- a/internal/controller/repository_controller.go +++ b/internal/controller/repository_controller.go @@ -135,11 +135,6 @@ func (r *RepositoryReconciler) reconcileNormal(ctx context.Context, client garmC return ctrl.Result{}, err } - if err = annotations.SetLastSyncTime(repository, r.Client); err != nil { - log.Error(err, "can not set annotation") - return ctrl.Result{}, err - } - log.Info("reconciling repository successfully done") return ctrl.Result{}, nil diff --git a/internal/controller/repository_controller_test.go b/internal/controller/repository_controller_test.go index 84d9ca5..b981b57 100644 --- a/internal/controller/repository_controller_test.go +++ b/internal/controller/repository_controller_test.go @@ -10,7 +10,6 @@ import ( "github.com/cloudbase/garm/client/repositories" "github.com/cloudbase/garm/params" - "github.com/stretchr/testify/assert" "go.uber.org/mock/gomock" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -23,7 +22,6 @@ import ( garmoperatorv1alpha1 "github.com/mercedes-benz/garm-operator/api/v1alpha1" "github.com/mercedes-benz/garm-operator/pkg/client/key" "github.com/mercedes-benz/garm-operator/pkg/client/mock" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" "github.com/mercedes-benz/garm-operator/pkg/util/conditions" ) @@ -32,13 +30,12 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { defer mockCtrl.Finish() tests := []struct { - name string - object runtime.Object - runtimeObjects []runtime.Object - expectGarmRequest func(m *mock.MockRepositoryClientMockRecorder) - wantErr bool - expectedObject *garmoperatorv1alpha1.Repository - expectLastSyncTimeAnnotation bool + name string + object runtime.Object + runtimeObjects []runtime.Object + expectGarmRequest func(m *mock.MockRepositoryClientMockRecorder) + wantErr bool + expectedObject *garmoperatorv1alpha1.Repository }{ { name: "repository exist - update", @@ -141,7 +138,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "repository exist but spec has changed - update", @@ -244,7 +240,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "repository exist but pool status has changed - update", @@ -351,7 +346,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "repository does not exist - create and update", @@ -463,7 +457,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "repository already exist in garm - update", @@ -559,7 +552,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, { name: "repository does not exist in garm - create and update", @@ -671,7 +663,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { }, }, nil) }, - expectLastSyncTimeAnnotation: true, }, } for _, tt := range tests { @@ -705,9 +696,6 @@ func TestRepositoryReconciler_reconcileNormal(t *testing.T) { return } - // test last-sync-time - assert.Equal(t, tt.expectLastSyncTimeAnnotation, annotations.HasAnnotation(repository, key.LastSyncTimeAnnotation)) - // clear out annotations to avoid comparison errors repository.ObjectMeta.Annotations = nil diff --git a/internal/controller/runner_controller.go b/internal/controller/runner_controller.go index 413b2bd..071b5b3 100644 --- a/internal/controller/runner_controller.go +++ b/internal/controller/runner_controller.go @@ -31,7 +31,6 @@ import ( "github.com/mercedes-benz/garm-operator/pkg/config" "github.com/mercedes-benz/garm-operator/pkg/filter" instancefilter "github.com/mercedes-benz/garm-operator/pkg/filter/instance" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" ) // RunnerReconciler reconciles a Runner object @@ -190,11 +189,6 @@ func (r *RunnerReconciler) updateRunnerStatus(ctx context.Context, runner *garmo return ctrl.Result{}, err } - if err = annotations.SetLastSyncTime(runner, r.Client); err != nil { - log.Error(err, "can not set annotation") - return ctrl.Result{}, err - } - return ctrl.Result{}, nil } diff --git a/internal/controller/runner_controller_test.go b/internal/controller/runner_controller_test.go index c493a38..2be9511 100644 --- a/internal/controller/runner_controller_test.go +++ b/internal/controller/runner_controller_test.go @@ -28,7 +28,6 @@ import ( "github.com/mercedes-benz/garm-operator/pkg/client/key" "github.com/mercedes-benz/garm-operator/pkg/client/mock" "github.com/mercedes-benz/garm-operator/pkg/config" - "github.com/mercedes-benz/garm-operator/pkg/util/annotations" ) func TestRunnerReconciler_reconcileCreate(t *testing.T) { @@ -134,9 +133,6 @@ func TestRunnerReconciler_reconcileCreate(t *testing.T) { return } - // test last-sync-time - assert.Equal(t, annotations.HasAnnotation(runner, key.LastSyncTimeAnnotation), true) - // clear out annotations to avoid comparison errors runner.ObjectMeta.Annotations = nil diff --git a/pkg/util/annotations/helpers.go b/pkg/util/annotations/helpers.go index b0a5c52..ea8a666 100644 --- a/pkg/util/annotations/helpers.go +++ b/pkg/util/annotations/helpers.go @@ -3,11 +3,7 @@ package annotations import ( - "context" - "time" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/controller-runtime/pkg/client" "github.com/mercedes-benz/garm-operator/pkg/client/key" ) @@ -26,23 +22,3 @@ func HasAnnotation(o metav1.Object, annotation string) bool { _, ok := annotations[annotation] return ok } - -func SetLastSyncTime(o client.Object, client client.Client) error { - now := time.Now().UTC() - newAnnotations := appendAnnotations(o, key.LastSyncTimeAnnotation, now.Format(time.RFC3339)) - o.SetAnnotations(newAnnotations) - return client.Update(context.Background(), o) -} - -func appendAnnotations(o metav1.Object, kayValuePair ...string) map[string]string { - newAnnotations := map[string]string{} - for k, v := range o.GetAnnotations() { - newAnnotations[k] = v - } - for i := 0; i < len(kayValuePair)-1; i += 2 { - k := kayValuePair[i] - v := kayValuePair[i+1] - newAnnotations[k] = v - } - return newAnnotations -}