diff --git a/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml b/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml index cf2e6d6ed..ad5f6fbab 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_toolchainconfigs.yaml @@ -95,15 +95,6 @@ spec: description: Environment specifies the host-operator environment such as prod, stage, unit-tests, e2e-tests, dev, etc type: string - metrics: - description: Keeps parameters concerned with metrics - properties: - forceSynchronization: - description: |- - ForceSynchronization is a flag used to trigger synchronization of the metrics - based on the resources rather than on the content of `ToolchainStatus.status.metrics` - type: boolean - type: object notifications: description: Keeps parameters concerned with notifications properties: diff --git a/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml b/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml index 23a320899..e77222808 100644 --- a/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml +++ b/config/crd/bases/toolchain.dev.openshift.com_toolchainstatuses.yaml @@ -15,9 +15,6 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: - - jsonPath: .status.hostOperator.masterUserRecordCount - name: MURs - type: integer - jsonPath: .status.conditions[?(@.type=="Ready")].status name: Ready type: string @@ -542,9 +539,6 @@ spec: type: string type: object type: object - spaceCount: - description: Number of Spaces created within the member cluster - type: integer required: - clusterName - memberStatus @@ -553,15 +547,6 @@ spec: x-kubernetes-list-map-keys: - clusterName x-kubernetes-list-type: map - metrics: - additionalProperties: - additionalProperties: - type: integer - type: object - description: Metrics is a map that stores metrics to be exposed on - Prometheus. - type: object - x-kubernetes-map-type: atomic registrationService: description: RegistrationService is the status of the registration service diff --git a/controllers/masteruserrecord/masteruserrecord_controller_test.go b/controllers/masteruserrecord/masteruserrecord_controller_test.go index 1eb4c0b9b..dee5fb9db 100644 --- a/controllers/masteruserrecord/masteruserrecord_controller_test.go +++ b/controllers/masteruserrecord/masteruserrecord_controller_test.go @@ -72,10 +72,10 @@ func TestAddFinalizer(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -99,10 +99,10 @@ func TestAddFinalizer(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -128,10 +128,10 @@ func TestAddFinalizer(t *testing.T) { HasConditions(toBeProvisioned(), toBeProvisionedNotificationCreated()). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -159,10 +159,10 @@ func TestAddFinalizer(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordUnableToAddFinalizerReason, "unable to add finalizer to MUR john")) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -203,10 +203,10 @@ func TestCreateUserAccountSuccessful(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) } @@ -252,10 +252,10 @@ func TestUserAccountSynchronizeSuccessfulWhenPropagatedClaimsModified(t *testing HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) @@ -311,10 +311,10 @@ func TestCreateUserAccountWhenItWasPreviouslyDeleted(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordProvisioningReason, "")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) @@ -367,10 +367,10 @@ func TestWithMultipleMembersAndSpaces(t *testing.T) { HasStatusUserAccounts(commontest.MemberClusterName). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -409,10 +409,10 @@ func TestWithMultipleMembersAndSpaces(t *testing.T) { HasStatusUserAccounts(commontest.MemberClusterName). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) @@ -479,10 +479,10 @@ func TestWithMultipleMembersAndSpaces(t *testing.T) { HasStatusUserAccounts(). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -513,10 +513,10 @@ func TestWithMultipleMembersAndSpaces(t *testing.T) { HasStatusUserAccounts(). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -545,10 +545,10 @@ func TestWithMultipleMembersAndSpaces(t *testing.T) { HasStatusUserAccounts(). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -588,10 +588,10 @@ func TestRequeueWhenUserAccountDeleted(t *testing.T) { // then require.NoError(t, err) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -630,10 +630,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordTargetClusterNotReadyReason, msg)). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -657,10 +657,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordTargetClusterNotReadyReason, msg)). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -685,10 +685,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { require.Error(t, err) assert.Equal(t, "failed to create user bob: oopsy woopsy", err.Error()) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -716,10 +716,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordUnableToCreateUserAccountReason, "unable to create user account john")) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -759,10 +759,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordUnableToSynchronizeUserAccountSpecReason, "unable to update user account john")) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -801,10 +801,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { HasConditions(updatingCond). HasStatusUserAccounts() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -837,10 +837,10 @@ func TestCreateSynchronizeOrDeleteUserAccountFailed(t *testing.T) { HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordUnableToDeleteUserAccountsReason, "unable to delete user account john")). HasFinalizer() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -891,10 +891,10 @@ func TestModifyUserAccount(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john", hostClient). HasConditions(toBeNotReady(toolchainv1alpha1.MasterUserRecordUpdatingReason, "")) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) } @@ -957,10 +957,10 @@ func TestSyncMurStatusWithUserAccountStatuses(t *testing.T) { HasStatusUserAccountsWithCondition(commontest.MemberClusterName, userAccount.Status.Conditions[0]). HasStatusUserAccountsWithCondition(commontest.Member2ClusterName, userAccount2.Status.Conditions[0]) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -1020,10 +1020,10 @@ func TestSyncMurStatusWithUserAccountStatuses(t *testing.T) { assert.Equal(t, "MasterUserRecord", notification.OwnerReferences[0].Kind) assert.Equal(t, mur.Name, notification.OwnerReferences[0].Name) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, // unchanged }) }) @@ -1062,11 +1062,11 @@ func TestDeleteUserAccountViaMasterUserRecordBeingDeleted(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john", hostClient). DoesNotExist() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged "1,external": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 0, // decremented string(metrics.External): 1, // unchanged }) @@ -1107,11 +1107,11 @@ func TestDeleteUserAccountViaMasterUserRecordBeingDeleted(t *testing.T) { murtest.AssertThatMasterUserRecord(t, "john-wait-for-ua", hostClient). DoesNotExist() metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // unchanged "1,external": 1, // unchanged }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 0, // decremented string(metrics.External): 1, // unchanged }) @@ -1223,7 +1223,7 @@ func TestDeleteMultipleUserAccountsViaMasterUserRecordBeingDeleted(t *testing.T) murtest.AssertThatMasterUserRecord(t, "john", hostClient). DoesNotExist() metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 0, // decremented string(metrics.External): 1, // unchanged }) @@ -1261,7 +1261,7 @@ func TestDisablingMasterUserRecord(t *testing.T) { require.NoError(t, err) assert.True(t, userAcc.Spec.Disabled) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{string(metrics.Internal): 1}) // unchanged + HaveMasterUserRecordsPerDomain(map[string]int{string(metrics.Internal): 1}) // unchanged } func newMurRequest(mur *toolchainv1alpha1.MasterUserRecord) reconcile.Request { diff --git a/controllers/toolchainconfig/configuration.go b/controllers/toolchainconfig/configuration.go index 3daf4bf93..bd31bb9ec 100644 --- a/controllers/toolchainconfig/configuration.go +++ b/controllers/toolchainconfig/configuration.go @@ -106,10 +106,6 @@ func (c *ToolchainConfig) Deactivation() DeactivationConfig { return DeactivationConfig{c.cfg.Host.Deactivation} } -func (c *ToolchainConfig) Metrics() MetricsConfig { - return MetricsConfig{c.cfg.Host.Metrics} -} - func (c *ToolchainConfig) Notifications() NotificationsConfig { return NotificationsConfig{ c: c.cfg.Host.Notifications, @@ -194,14 +190,6 @@ func (d DeactivationConfig) UserSignupUnverifiedRetentionDays() int { return commonconfig.GetInt(d.dctv.UserSignupUnverifiedRetentionDays, 7) } -type MetricsConfig struct { - metrics toolchainv1alpha1.MetricsConfig -} - -func (d MetricsConfig) ForceSynchronization() bool { - return commonconfig.GetBool(d.metrics.ForceSynchronization, true) -} - type GitHubSecret struct { s toolchainv1alpha1.GitHubSecret secrets map[string]map[string]string diff --git a/controllers/toolchainconfig/configuration_test.go b/controllers/toolchainconfig/configuration_test.go index 896798413..902dcffc7 100644 --- a/controllers/toolchainconfig/configuration_test.go +++ b/controllers/toolchainconfig/configuration_test.go @@ -327,21 +327,6 @@ func TestEnvironment(t *testing.T) { }) } -func TestMetrics(t *testing.T) { - t.Run("default", func(t *testing.T) { - cfg := commonconfig.NewToolchainConfigObjWithReset(t) - toolchainCfg := newToolchainConfig(cfg, map[string]map[string]string{}) - - assert.True(t, toolchainCfg.Metrics().ForceSynchronization()) - }) - t.Run("non-default", func(t *testing.T) { - cfg := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Metrics().ForceSynchronization(false)) - toolchainCfg := newToolchainConfig(cfg, map[string]map[string]string{}) - - assert.False(t, toolchainCfg.Metrics().ForceSynchronization()) - }) -} - func TestNotifications(t *testing.T) { t.Run("default", func(t *testing.T) { cfg := commonconfig.NewToolchainConfigObjWithReset(t) diff --git a/controllers/usersignup/usersignup_controller_test.go b/controllers/usersignup/usersignup_controller_test.go index a93e06e2b..faafe33c5 100644 --- a/controllers/usersignup/usersignup_controller_test.go +++ b/controllers/usersignup/usersignup_controller_test.go @@ -113,8 +113,7 @@ func TestUserSignupCreateMUROk(t *testing.T) { // given defer metrics.Reset() config := commonconfig.NewToolchainConfigObjWithReset(t, - testconfig.AutomaticApproval().Enabled(true), - testconfig.Metrics().ForceSynchronization(false)) + testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spaceProvisionerConfig, userSignup, baseNSTemplateTier, deactivate30Tier, deactivate80Tier, event) otherSignup := commonsignup.NewUserSignup(commonsignup.WithName("john-456"), commonsignup.WithActivations("2")) otherMur := murtest.NewMasterUserRecord(t, "john-456", murtest.WithOwnerLabel(otherSignup.Name)) @@ -145,7 +144,7 @@ func TestUserSignupCreateMUROk(t *testing.T) { segmenttest.AssertMessageQueuedForUserSignup(t, r.SegmentClient, userSignup) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 2, // new user with an `@redhat.com` email address along with the other user string(metrics.External): 1, // existing external user }) // @@ -160,7 +159,7 @@ func TestUserSignupCreateMUROk(t *testing.T) { "automatically approved via unknown social event": assert.Equal(t, "3", actualUserSignup.Annotations[toolchainv1alpha1.UserSignupActivationCounterAnnotationKey]) // annotation value is incremented metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 0, // unchanged "2,internal": 1, // other user "3,internal": 1, // increased @@ -169,7 +168,7 @@ func TestUserSignupCreateMUROk(t *testing.T) { "manually approved with invalid activation annotation": assert.Equal(t, "1", actualUserSignup.Annotations[toolchainv1alpha1.UserSignupActivationCounterAnnotationKey]) // annotation was set to "1" since it was missing metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, // increased "2,internal": 1, // unchanged "3,internal": 0, // unchanged @@ -232,7 +231,7 @@ func TestUserSignupCreateSpaceAndSpaceBindingOk(t *testing.T) { case "with feature toggles": weight100 := uint(100) weight0 := uint(0) - config = commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Metrics().ForceSynchronization(false), testconfig.Tiers().FeatureToggle("feature-on", &weight100).FeatureToggle("feature-off", &weight0)) + config = commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Tiers().FeatureToggle("feature-on", &weight100).FeatureToggle("feature-off", &weight0)) } r, req, _ := prepareReconcile(t, userSignup.Name, config, spaceProvisionerConfig, userSignup, mur, baseNSTemplateTier, base2NSTemplateTier, deactivate30Tier, deactivate80Tier, event) @@ -350,13 +349,13 @@ func TestDeletingUserSignupShouldNotUpdateMetrics(t *testing.T) { initObjs = append(initObjs, spaceProvisionerConfig) r, req, _ := prepareReconcile(t, userSignup.Name, nil, initObjs...) metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, "2,internal": 1, "2,external": 9, "3,internal": 1, }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 3, string(metrics.External): 9, }) @@ -369,13 +368,13 @@ func TestDeletingUserSignupShouldNotUpdateMetrics(t *testing.T) { // Verify the counters metricstest.AssertThatCountersAndMetrics(t). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, "2,internal": 1, "2,external": 9, "3,internal": 1, }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 3, string(metrics.External): 9, }) @@ -442,7 +441,7 @@ func TestUserSignupWithAutoApprovalWithoutTargetCluster(t *testing.T) { murtest.NewMasterUserRecord(t, "jack", murtest.Email("jack@example.com")), hspc.NewEnabledValidTenantSPC("member1"), } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, initObjs...) // when - The first reconcile creates the MasterUserRecord @@ -491,7 +490,7 @@ func TestUserSignupWithAutoApprovalWithoutTargetCluster(t *testing.T) { Reason: "UserIsActive", }) - metricstest.AssertThatCountersAndMetrics(t).HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + metricstest.AssertThatCountersAndMetrics(t).HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }) @@ -578,7 +577,7 @@ func TestUserSignupWithMissingEmailAddressFails(t *testing.T) { userSignup := commonsignup.NewUserSignup() userSignup.Spec.IdentityClaims.Email = "" spaceProvisionerConfig := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spaceProvisionerConfig, userSignup, @@ -608,10 +607,10 @@ func TestUserSignupWithMissingEmailAddressFails(t *testing.T) { Message: "missing email at usersignup", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -625,7 +624,7 @@ func TestUserSignupWithInvalidEmailHashLabelFails(t *testing.T) { ) userSignup.Spec.IdentityClaims.Email = "foo@redhat.com" spaceProvisionerConfig := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spaceProvisionerConfig, userSignup, @@ -655,10 +654,10 @@ func TestUserSignupWithInvalidEmailHashLabelFails(t *testing.T) { Message: "hash is invalid", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -667,7 +666,7 @@ func TestUpdateOfApprovedLabelFails(t *testing.T) { // given userSignup := commonsignup.NewUserSignup() spaceProvisionerConfig := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spaceProvisionerConfig, userSignup, @@ -698,10 +697,10 @@ func TestUpdateOfApprovedLabelFails(t *testing.T) { Message: "some error", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 0, // unchanged "1,external": 1, // unchanged }) @@ -715,7 +714,7 @@ func TestUserSignupWithMissingEmailHashLabelFails(t *testing.T) { userSignup.Spec.IdentityClaims.Email = "foo@redhat.com" userSignup.Labels = map[string]string{"toolchain.dev.openshift.com/approved": "false"} spaceProvisionerConfig := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spaceProvisionerConfig, userSignup, @@ -745,10 +744,10 @@ func TestUserSignupWithMissingEmailHashLabelFails(t *testing.T) { Message: "missing label at usersignup", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -757,7 +756,7 @@ func TestNonDefaultNSTemplateTier(t *testing.T) { // given customNSTemplateTier := tiertest.NewNSTemplateTier("custom", "dev", "stage") customUserTier := commontier.NewUserTier(commontier.WithName("custom"), commontier.WithDeactivationTimeoutDays(120)) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultUserTier("custom"), testconfig.Tiers().DefaultSpaceTier("custom"), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultUserTier("custom"), testconfig.Tiers().DefaultSpaceTier("custom")) userSignup := commonsignup.NewUserSignup() spaceProvisionerConfig := hspc.NewEnabledValidTenantSPC("member1") initObjs := []runtimeclient.Object{ @@ -818,7 +817,7 @@ func TestNonDefaultNSTemplateTier(t *testing.T) { Reason: "UserIsActive", }) - metricstest.AssertThatCountersAndMetrics(t).HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + metricstest.AssertThatCountersAndMetrics(t).HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }) @@ -850,25 +849,25 @@ func TestUserSignupFailedMissingTier(t *testing.T) { variations := []variation{ { description: "default spacetier", - config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)), + config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)), expectedReason: "NoTemplateTierAvailable", expectedMsg: "nstemplatetiers.toolchain.dev.openshift.com \"base\" not found", }, { description: "non-default spacetier", - config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultSpaceTier("nonexistent"), testconfig.Metrics().ForceSynchronization(false)), + config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultSpaceTier("nonexistent")), expectedReason: "NoTemplateTierAvailable", expectedMsg: "nstemplatetiers.toolchain.dev.openshift.com \"nonexistent\" not found", }, { description: "default usertier", - config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)), + config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)), expectedReason: "NoUserTierAvailable", expectedMsg: "usertiers.toolchain.dev.openshift.com \"deactivate30\" not found", }, { description: "non-default usertier", - config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultUserTier("nonexistent"), testconfig.Metrics().ForceSynchronization(false)), + config: commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Tiers().DefaultUserTier("nonexistent")), expectedReason: "NoUserTierAvailable", expectedMsg: "usertiers.toolchain.dev.openshift.com \"nonexistent\" not found", }, @@ -935,10 +934,10 @@ func TestUserSignupFailedMissingTier(t *testing.T) { commonmetricstest.AssertMetricsCounterEquals(t, 1, metrics.UserSignupUniqueTotal) // incremented, even though the provisioning failed due to missing NSTemplateTier segmenttest.AssertNoMessageQueued(t, r.SegmentClient) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -961,7 +960,7 @@ func TestUnapprovedUserSignupWhenNoClusterReady(t *testing.T) { commonsignup.NewUserSignup(commonsignup.WithName("jack"), commonsignup.WithActivations("1"), commonsignup.WithEmail("jack@example.com")), murtest.NewMasterUserRecord(t, "jack", murtest.Email("jack@example.com")), } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, initObjs...) // when @@ -999,10 +998,10 @@ func TestUnapprovedUserSignupWhenNoClusterReady(t *testing.T) { commonmetricstest.AssertMetricsCounterEquals(t, 0, metrics.UserSignupApprovedTotal) commonmetricstest.AssertMetricsCounterEquals(t, 1, metrics.UserSignupUniqueTotal) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -1021,7 +1020,7 @@ func TestUserSignupFailedNoClusterWithCapacityAvailable(t *testing.T) { murtest.NewMasterUserRecord(t, "jack", murtest.Email("jack@example.com")), } config := commonconfig.NewToolchainConfigObjWithReset(t, - testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, initObjs...) // when @@ -1059,10 +1058,10 @@ func TestUserSignupFailedNoClusterWithCapacityAvailable(t *testing.T) { commonmetricstest.AssertMetricsCounterEquals(t, 0, metrics.UserSignupApprovedTotal) commonmetricstest.AssertMetricsCounterEquals(t, 1, metrics.UserSignupUniqueTotal) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -1081,7 +1080,7 @@ func TestUserSignupWithManualApprovalApproved(t *testing.T) { commonsignup.NewUserSignup(commonsignup.WithName("jack"), commonsignup.WithActivations("1"), commonsignup.WithEmail("jack@example.com")), murtest.NewMasterUserRecord(t, "jack", murtest.Email("jack@example.com")), } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, initObjs...) // when @@ -1120,11 +1119,11 @@ func TestUserSignupWithManualApprovalApproved(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1190,11 +1189,11 @@ func TestUserSignupWithManualApprovalApproved(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1207,7 +1206,7 @@ func TestUserSignupWithManualApprovalApproved(t *testing.T) { func TestUserSignupWithNoApprovalPolicyTreatedAsManualApproved(t *testing.T) { // given userSignup := commonsignup.NewUserSignup(commonsignup.ApprovedManuallyAgo(time.Minute)) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t) spc1 := hspc.NewEnabledValidTenantSPC("member1") initObjs := []runtimeclient.Object{ spc1, @@ -1257,11 +1256,11 @@ func TestUserSignupWithNoApprovalPolicyTreatedAsManualApproved(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1330,11 +1329,11 @@ func TestUserSignupWithNoApprovalPolicyTreatedAsManualApproved(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1346,7 +1345,7 @@ func TestUserSignupWithManualApprovalNotApproved(t *testing.T) { // given userSignup := commonsignup.NewUserSignup() spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -1395,10 +1394,10 @@ func TestUserSignupWithManualApprovalNotApproved(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -1407,7 +1406,7 @@ func TestUserSignupWithAutoApprovalWithTargetCluster(t *testing.T) { // given userSignup := commonsignup.NewUserSignup(commonsignup.WithTargetCluster("east")) spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -1456,11 +1455,11 @@ func TestUserSignupWithAutoApprovalWithTargetCluster(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1529,11 +1528,11 @@ func TestUserSignupWithAutoApprovalWithTargetCluster(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1587,10 +1586,10 @@ func TestUserSignupWithMissingApprovalPolicyTreatedAsManual(t *testing.T) { Reason: "UserIsActive", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -1672,10 +1671,10 @@ func TestUserSignupMUROrSpaceOrSpaceBindingCreateFails(t *testing.T) { require.EqualError(t, err, testcase.expectedError) require.Equal(t, reconcile.Result{}, res) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1717,10 +1716,10 @@ func TestUserSignupMURReadFails(t *testing.T) { // then require.Error(t, err) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, // incremented }) @@ -1761,10 +1760,10 @@ func TestUserSignupSetStatusApprovedByAdminFails(t *testing.T) { require.Error(t, err) require.Equal(t, reconcile.Result{}, res) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) err = r.Client.Get(context.TODO(), types.NamespacedName{Name: userSignup.Name, Namespace: req.Namespace}, userSignup) @@ -1780,7 +1779,7 @@ func TestUserSignupSetStatusApprovedAutomaticallyFails(t *testing.T) { userSignup := commonsignup.NewUserSignup() spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -1806,10 +1805,10 @@ func TestUserSignupSetStatusApprovedAutomaticallyFails(t *testing.T) { require.Error(t, err) require.Equal(t, reconcile.Result{}, res) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -1824,7 +1823,7 @@ func TestUserSignupSetStatusApprovedAutomaticallyFails(t *testing.T) { func TestUserSignupSetStatusNoClustersAvailableFails(t *testing.T) { // given userSignup := commonsignup.NewUserSignup() - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -1854,10 +1853,10 @@ func TestUserSignupSetStatusNoClustersAvailableFails(t *testing.T) { require.Error(t, err) require.Equal(t, reconcile.Result{}, res) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -1896,7 +1895,7 @@ func TestUserSignupWithExistingMUROK(t *testing.T) { space := NewSpace(userSignup, "member1", "foo", "base") spacebinding := spacebindingtest.NewSpaceBinding("foo", "foo", "admin", userSignup.Name) spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -1952,11 +1951,11 @@ func TestUserSignupWithExistingMUROK(t *testing.T) { Status: corev1.ConditionTrue, }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -1983,7 +1982,7 @@ func TestUserSignupWithExistingMURDifferentUserIDOK(t *testing.T) { }, } spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -2004,11 +2003,11 @@ func TestUserSignupWithExistingMURDifferentUserIDOK(t *testing.T) { // We should now have 3 MURs (2 previous MURs + 1 new MUR for the user signup) murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(3) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 2, string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, "1,external": 1, }) @@ -2069,11 +2068,11 @@ func TestUserSignupWithExistingMURDifferentUserIDOK(t *testing.T) { require.True(t, found) require.Equal(t, corev1.ConditionTrue, cond.Status) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 2, string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, "1,external": 1, }) @@ -2086,7 +2085,7 @@ func TestUserSignupPropagatedClaimsSynchronizedToMURWhenModified(t *testing.T) { userSignup := commonsignup.NewUserSignup() spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, userSignup, baseNSTemplateTier, deactivate30Tier) @@ -2141,7 +2140,7 @@ func TestUserSignupWithSpecialCharOK(t *testing.T) { // given userSignup := commonsignup.NewUserSignup(commonsignup.WithUsername("foo#$%^bar@redhat.com")) spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -2160,11 +2159,11 @@ func TestUserSignupWithSpecialCharOK(t *testing.T) { murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(2) murtest.AssertThatMasterUserRecord(t, "foo-bar", r.Client).HasNoConditions() metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, "1,internal": 1, }) @@ -2207,7 +2206,7 @@ func TestUserSignupDeactivatedAfterMURCreated(t *testing.T) { spacetest.WithFinalizer()) spacebinding := spacebindingtest.NewSpaceBinding("john-doe", "john-doe", "admin", userSignup.Name) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, mur, @@ -2253,10 +2252,10 @@ func TestUserSignupDeactivatedAfterMURCreated(t *testing.T) { // The MUR should have now been deleted murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) // the external MUR should still exist metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, // unchanged for now (see above) }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -2266,7 +2265,7 @@ func TestUserSignupDeactivatedAfterMURCreated(t *testing.T) { t.Run("when MUR doesn't exist, then the condition should be set to Deactivated", func(t *testing.T) { // given - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -2308,10 +2307,10 @@ func TestUserSignupDeactivatedAfterMURCreated(t *testing.T) { Reason: "NotificationCRCreated", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, // unchanged }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -2361,7 +2360,7 @@ func TestUserSignupDeactivatedAfterMURCreated(t *testing.T) { }, } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup2.Name, config, userSignup2, baseNSTemplateTier, existingNotification) // when @@ -2443,7 +2442,7 @@ func TestUserSignupFailedToCreateDeactivationNotification(t *testing.T) { t.Run("when the deactivation notification cannot be created", func(t *testing.T) { // given - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -2491,10 +2490,10 @@ func TestUserSignupFailedToCreateDeactivationNotification(t *testing.T) { Message: "unable to create deactivation notification", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, // unchanged }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) assert.Equal(t, "approved", userSignup.Labels[toolchainv1alpha1.UserSignupStateLabelKey]) @@ -2555,7 +2554,7 @@ func TestUserSignupReactivateAfterDeactivated(t *testing.T) { }, } spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -2607,10 +2606,10 @@ func TestUserSignupReactivateAfterDeactivated(t *testing.T) { // A mur should be created so the counter should have been incremented to 22 metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 22, // one more than before }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "2,internal": 11, // 11 other users signed up 2 times "3,internal": 11, // 10 other users signed up 3 times + the user itself }) @@ -2650,7 +2649,7 @@ func TestUserSignupReactivateAfterDeactivated(t *testing.T) { Reason: "NotificationCRCreated", }, } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -2698,10 +2697,10 @@ func TestUserSignupReactivateAfterDeactivated(t *testing.T) { Reason: "NotificationCRCreated", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, // unchanged }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, // unchanged }) @@ -2761,7 +2760,7 @@ func TestUserSignupDeactivatedWhenMURAndSpaceAndSpaceBindingExists(t *testing.T) key := commontest.NamespacedName(commontest.HostOperatorNs, userSignup.Name) t.Run("when MUR exists and not deactivated, nothing should happen", func(t *testing.T) { - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, userSignup, mur, space, spacebinding, baseNSTemplateTier, deactivate30Tier) // given space & mur are ready setSpaceToReady(t, r.Client, mur.Name) @@ -2811,7 +2810,7 @@ func TestUserSignupDeactivatedWhenMURAndSpaceAndSpaceBindingExists(t *testing.T) // Given states.SetDeactivated(userSignup, true) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, mur, @@ -2868,10 +2867,10 @@ func TestUserSignupDeactivatedWhenMURAndSpaceAndSpaceBindingExists(t *testing.T) spacebindingtest.AssertThatSpaceBinding(t, commontest.HostOperatorNs, "edward-jones", "edward-jones", r.Client).Exists() metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -2962,7 +2961,7 @@ func TestUserSignupDeactivatingNotificationCreated(t *testing.T) { userSignup.Labels[toolchainv1alpha1.UserSignupStateLabelKey] = "approved" key := commontest.NamespacedName(commontest.HostOperatorNs, userSignup.Name) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, userSignup, mur, baseNSTemplateTier, deactivate30Tier) // when @@ -3083,7 +3082,7 @@ func TestUserSignupBannedWithoutMURAndSpace(t *testing.T) { }, } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, bannedUser, @@ -3123,10 +3122,10 @@ func TestUserSignupBannedWithoutMURAndSpace(t *testing.T) { spacebindingtest.AssertThatSpaceBindings(t, r.Client).HaveCount(0) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -3135,7 +3134,7 @@ func TestUserSignupVerificationRequired(t *testing.T) { // given userSignup := commonsignup.NewUserSignup(commonsignup.VerificationRequired()) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -3181,10 +3180,10 @@ func TestUserSignupVerificationRequired(t *testing.T) { spacetest.AssertThatSpaces(t, r.Client).HaveCount(0) spacebindingtest.AssertThatSpaceBindings(t, r.Client).HaveCount(0) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -3231,7 +3230,7 @@ func TestUserSignupBannedMURAndSpaceExists(t *testing.T) { spacebinding := spacebindingtest.NewSpaceBinding("foo", "foo", "admin", userSignup.Name) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, mur, @@ -3281,10 +3280,10 @@ func TestUserSignupBannedMURAndSpaceExists(t *testing.T) { spacebindingtest.AssertThatSpaceBindings(t, r.Client).HaveCount(1) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -3319,10 +3318,10 @@ func TestUserSignupBannedMURAndSpaceExists(t *testing.T) { // Confirm that there is still no new MUR murtest.AssertThatMasterUserRecords(t, r.Client).HaveCount(1) // the external MUR should still exist metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -3338,7 +3337,7 @@ func TestUserSignupListBannedUsersFails(t *testing.T) { // given userSignup := commonsignup.NewUserSignup() - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -3358,10 +3357,10 @@ func TestUserSignupListBannedUsersFails(t *testing.T) { // then require.Error(t, err) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -3395,7 +3394,7 @@ func TestUserSignupDeactivatedButMURDeleteFails(t *testing.T) { spacetest.WithStatusTargetCluster("member-1"), // already provisioned on a target cluster spacetest.WithFinalizer()) spacebinding := spacebindingtest.NewSpaceBinding("john-doe", "john-doe", "admin", userSignup.Name) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, mur, @@ -3444,10 +3443,10 @@ func TestUserSignupDeactivatedButMURDeleteFails(t *testing.T) { Message: "unable to delete mur", }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -3496,7 +3495,7 @@ func TestUserSignupDeactivatedButMURDeleteFails(t *testing.T) { mur := murtest.NewMasterUserRecord(t, "john-doe", murtest.MetaNamespace(commontest.HostOperatorNs)) mur.Labels = map[string]string{toolchainv1alpha1.MasterUserRecordOwnerLabelKey: userSignup.Name} - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, fakeClient := prepareReconcile(t, userSignup.Name, config, userSignup, mur, baseNSTemplateTier) fakeClient.MockDelete = func(ctx context.Context, obj runtimeclient.Object, opts ...runtimeclient.DeleteOption) error { @@ -3547,7 +3546,7 @@ func TestUserSignupDeactivatedButStatusUpdateFails(t *testing.T) { key := commontest.NamespacedName(commontest.HostOperatorNs, userSignup.Name) mur := murtest.NewMasterUserRecord(t, "john-doe", murtest.MetaNamespace(commontest.HostOperatorNs)) mur.Labels = map[string]string{toolchainv1alpha1.MasterUserRecordOwnerLabelKey: userSignup.Name} - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, mur, @@ -3592,10 +3591,10 @@ func TestUserSignupDeactivatedButStatusUpdateFails(t *testing.T) { Status: corev1.ConditionTrue, }) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) } @@ -3692,10 +3691,10 @@ func TestDeathBy100Signups(t *testing.T) { }, ) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 100, // unchanged }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 100, "1,internal": 1, // was incremented, even though associated MUR could not be created }) @@ -3758,7 +3757,7 @@ func TestGenerateUniqueCompliantUsername(t *testing.T) { userSignup.Annotations[toolchainv1alpha1.SkipAutoCreateSpaceAnnotationKey] = params.skipSpaceCreation spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, userSignup, baseNSTemplateTier, deactivate30Tier, params.conflictingObject) @@ -3831,7 +3830,7 @@ func TestUserSignupWithMultipleExistingMURNotOK(t *testing.T) { } spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ spc1, userSignup, @@ -3877,11 +3876,11 @@ func TestUserSignupWithMultipleExistingMURNotOK(t *testing.T) { }, ) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, string(metrics.Internal): 2, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) commonmetricstest.AssertMetricsCounterEquals(t, 0, metrics.UserSignupDeactivatedTotal) @@ -3893,7 +3892,7 @@ func TestApprovedManuallyUserSignupWhenNoMembersAvailable(t *testing.T) { // given userSignup := commonsignup.NewUserSignup(commonsignup.ApprovedManually()) - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) initObjs := []runtimeclient.Object{ userSignup, baseNSTemplateTier, @@ -3909,10 +3908,10 @@ func TestApprovedManuallyUserSignupWhenNoMembersAvailable(t *testing.T) { // then require.EqualError(t, err, "no target clusters available: no suitable member cluster found - capacity was reached") metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.External): 1, }). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,external": 1, }) @@ -4088,7 +4087,7 @@ func prepareReconcile(t *testing.T, name string, toolchainConfig *toolchainv1alp toolchainStatus := toolchainstatustest.NewToolchainStatus( toolchainstatustest.WithMember(commontest.MemberClusterName, toolchainstatustest.WithNodeRoleUsage("worker", 68), toolchainstatustest.WithNodeRoleUsage("master", 65))) if toolchainConfig == nil { - toolchainConfig = commonconfig.NewToolchainConfigObjWithReset(t, testconfig.Metrics().ForceSynchronization(false)) + toolchainConfig = commonconfig.NewToolchainConfigObjWithReset(t) } initObjs = append(initObjs, toolchainConfig, secret, toolchainStatus) fakeClient := commontest.NewFakeClient(t, initObjs...) @@ -4517,7 +4516,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { userSignup := commonsignup.NewUserSignup() spc1 := hspc.NewEnabledValidTenantSPC("member1") spc2 := hspc.NewEnabledValidTenantSPC("member2") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, spc2, userSignup, baseNSTemplateTier, deactivate30Tier) // when @@ -4539,7 +4538,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { userSignup.Annotations[toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey] = "member2" spc1 := hspc.NewEnabledValidTenantSPC("member1") spc2 := hspc.NewEnabledTenantSPC("member2") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, spc2, userSignup, baseNSTemplateTier, deactivate30Tier) // when @@ -4559,7 +4558,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { userSignup.Annotations[toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey] = "member2" spc1 := hspc.NewEnabledValidTenantSPC("member1") spc2 := hspc.NewEnabledValidTenantSPC("member2") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, spc2, userSignup, baseNSTemplateTier, deactivate30Tier) // make the member2 SPC valid so that we simulate that it now has enough capacity @@ -4586,7 +4585,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { userSignup := commonsignup.NewUserSignup() userSignup.Annotations[toolchainv1alpha1.UserSignupLastTargetClusterAnnotationKey] = "member2" spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, userSignup, baseNSTemplateTier, deactivate30Tier) // when @@ -4607,7 +4606,7 @@ func TestUserSignupLastTargetClusterAnnotation(t *testing.T) { userSignup := commonsignup.NewUserSignup() userSignupName := userSignup.Name spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, cl := prepareReconcile(t, userSignup.Name, config, spc1, userSignup, baseNSTemplateTier, deactivate30Tier) cl.MockUpdate = func(ctx context.Context, obj runtimeclient.Object, opts ...runtimeclient.UpdateOption) error { s, ok := obj.(*toolchainv1alpha1.UserSignup) @@ -4700,7 +4699,7 @@ func TestUserSignupStatusNotReady(t *testing.T) { baseNSTemplateTier, deactivate30Tier, spc1, } - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) t.Run("until Space is provisioned", func(t *testing.T) { // given @@ -4758,7 +4757,7 @@ func TestUserSignupStatusNotReady(t *testing.T) { Status: corev1.ConditionFalse, Reason: toolchainv1alpha1.SpaceUpdatingReason, }} - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, append(initObjs, userSignup, mur, space, spacebinding)...) // when @@ -4862,7 +4861,7 @@ func TestUserReactivatingWhileOldSpaceExists(t *testing.T) { }, } spc1 := hspc.NewEnabledValidTenantSPC("member1") - config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true), testconfig.Metrics().ForceSynchronization(false)) + config := commonconfig.NewToolchainConfigObjWithReset(t, testconfig.AutomaticApproval().Enabled(true)) r, req, _ := prepareReconcile(t, userSignup.Name, config, spc1, userSignup, baseNSTemplateTier, deactivate30Tier, mur, space) diff --git a/go.mod b/go.mod index 7226a9292..63b92bde9 100644 --- a/go.mod +++ b/go.mod @@ -2,8 +2,8 @@ module github.com/codeready-toolchain/host-operator require ( cloud.google.com/go/recaptchaenterprise/v2 v2.13.0 - github.com/codeready-toolchain/api v0.0.0-20260226033043-912fcbd23dc7 - github.com/codeready-toolchain/toolchain-common v0.0.0-20260226040150-d7d5d0163ff7 + github.com/codeready-toolchain/api v0.0.0-20260305144020-4ff0e6b6e174 + github.com/codeready-toolchain/toolchain-common v0.0.0-20260305144813-52d9242e8c74 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/go-logr/logr v1.4.2 github.com/gofrs/uuid v4.4.0+incompatible diff --git a/go.sum b/go.sum index ce4dacbb8..661ae5c22 100644 --- a/go.sum +++ b/go.sum @@ -35,10 +35,10 @@ github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtM github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/codeready-toolchain/api v0.0.0-20260226033043-912fcbd23dc7 h1:1YCopXDF7WSjhM7sQAFoNeJvoIVPCHDY35jNVqc0Xh4= -github.com/codeready-toolchain/api v0.0.0-20260226033043-912fcbd23dc7/go.mod h1:PMg6kNHuCGNlu3MOdrCisqGkBpvzB0qS1+E6nrXxPAc= -github.com/codeready-toolchain/toolchain-common v0.0.0-20260226040150-d7d5d0163ff7 h1:NLTKW/An6PfcgqUyjeloAl0cmR0/lJopURsMMY/VZcs= -github.com/codeready-toolchain/toolchain-common v0.0.0-20260226040150-d7d5d0163ff7/go.mod h1:TtwbNKTtHxDEaO2fOhJbYM4S1FykJHOf/4/nCw7hFwo= +github.com/codeready-toolchain/api v0.0.0-20260305144020-4ff0e6b6e174 h1:hed3ZyardxswS6yMB0ME9l3vEkO+pFouyk4dvIiAQOo= +github.com/codeready-toolchain/api v0.0.0-20260305144020-4ff0e6b6e174/go.mod h1:PMg6kNHuCGNlu3MOdrCisqGkBpvzB0qS1+E6nrXxPAc= +github.com/codeready-toolchain/toolchain-common v0.0.0-20260305144813-52d9242e8c74 h1:yxKX0m6Kk1AIWwaGpf25flTfTrYrEJ9TyLW5NEQSq0Y= +github.com/codeready-toolchain/toolchain-common v0.0.0-20260305144813-52d9242e8c74/go.mod h1:NEnnq2R5GYoWdN0b0iaSdX7L1ndrzxl3ML0m7XLsSqk= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/pkg/metrics/metrics_test.go b/pkg/metrics/metrics_test.go index e2313bced..3b8836bb6 100644 --- a/pkg/metrics/metrics_test.go +++ b/pkg/metrics/metrics_test.go @@ -53,8 +53,8 @@ func TestIncrementMasterUserRecordCount(t *testing.T) { // then metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{string(metrics.Internal): 2}). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{string(metrics.External): 1}) + HaveMasterUserRecordsPerDomain(map[string]int{string(metrics.Internal): 2}). + HaveMasterUserRecordsPerDomain(map[string]int{string(metrics.External): 1}) } func TestDecrementMasterUserRecordCount(t *testing.T) { @@ -70,7 +70,7 @@ func TestDecrementMasterUserRecordCount(t *testing.T) { // then metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 1, string(metrics.External): 1, }) @@ -136,12 +136,12 @@ func TestInitializeCountersFromExistingResources(t *testing.T) { // then metricstest.AssertThatCountersAndMetrics(t). HaveSpacesForCluster("member-1", 3). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 1, "2,internal": 1, "3,internal": 1, }). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 3, // all MURs have `@redhat.com` email address }) } @@ -171,7 +171,7 @@ func TestShouldNotInitializeAgain(t *testing.T) { // then require.NoError(t, err) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 10, // same value }). HaveSpacesForCluster("member-1", 10) @@ -259,12 +259,12 @@ func TestMultipleExecutionsInParallel(t *testing.T) { // then require.NoError(t, err) metricstest.AssertThatCountersAndMetrics(t). - HaveMasterUserRecordsPerDomain(toolchainv1alpha1.Metric{ + HaveMasterUserRecordsPerDomain(map[string]int{ string(metrics.Internal): 12, // all MURs have `@redhat.com` email address }). HaveSpacesForCluster("member-1", 12). HaveSpacesForCluster("member-2", 2). - HaveUsersPerActivationsAndDomain(toolchainv1alpha1.Metric{ + HaveUsersPerActivationsAndDomain(map[string]int{ "1,internal": 2, "2,internal": 1000, }) diff --git a/test/metrics/metrics.go b/test/metrics/metrics.go index 03c84b627..20cfe112c 100644 --- a/test/metrics/metrics.go +++ b/test/metrics/metrics.go @@ -6,7 +6,6 @@ import ( "strings" "testing" - toolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1" "github.com/codeready-toolchain/host-operator/pkg/metrics" commontest "github.com/codeready-toolchain/toolchain-common/pkg/test" metricscommontest "github.com/codeready-toolchain/toolchain-common/pkg/test/metrics" @@ -35,14 +34,14 @@ func (a *MetricAssertion) HaveSpacesForCluster(clusterName string, number int) * return a } -func (a *MetricAssertion) HaveUsersPerActivationsAndDomain(expected toolchainv1alpha1.Metric) *MetricAssertion { +func (a *MetricAssertion) HaveUsersPerActivationsAndDomain(expected map[string]int) *MetricAssertion { for key, count := range expected { metricscommontest.AssertMetricsGaugeEquals(a.t, count, metrics.UserSignupsPerActivationAndDomainGaugeVec.WithLabelValues(strings.Split(key, ",")...), "invalid gauge value for key '%v'", key) } return a } -func (a *MetricAssertion) HaveMasterUserRecordsPerDomain(expected toolchainv1alpha1.Metric) *MetricAssertion { +func (a *MetricAssertion) HaveMasterUserRecordsPerDomain(expected map[string]int) *MetricAssertion { for domain, count := range expected { metricscommontest.AssertMetricsGaugeEquals(a.t, count, metrics.MasterUserRecordGaugeVec.WithLabelValues(domain), "invalid gauge value for domain '%v'", domain) }