Skip to content

Commit

Permalink
test/e2e: Add test for config option to disable Grafana
Browse files Browse the repository at this point in the history
  • Loading branch information
bison committed Jun 28, 2021
1 parent 410a9d6 commit d276735
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions test/e2e/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
configv1 "github.com/openshift/api/config/v1"
"github.com/pkg/errors"
v1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/openshift/cluster-monitoring-operator/test/e2e/framework"
Expand Down Expand Up @@ -92,6 +93,50 @@ func TestClusterMonitoringOperatorConfiguration(t *testing.T) {
t.Log("asserting that CMO goes back healthy after the configuration is fixed")
assertOperatorCondition(t, configv1.OperatorDegraded, configv1.ConditionFalse)
assertOperatorCondition(t, configv1.OperatorAvailable, configv1.ConditionTrue)

// Push a configuration that disables Grafana.
validCM.Data["config.yaml"] += `grafana: {"enabled": false}`

if err := f.OperatorClient.CreateOrUpdateConfigMap(validCM); err != nil {
t.Fatal(err)
}

// Wait for Grafana deployment to disappear.
err = framework.Poll(time.Second, 5*time.Minute, func() error {
_, err := f.KubeClient.AppsV1().Deployments(f.Ns).Get(context.TODO(), "grafana", metav1.GetOptions{})
if apierrors.IsNotFound(err) {
return nil
}

return errors.New("Grafana deployment still exists")
})
if err != nil {
t.Fatal(err)
}

t.Log("asserting that CMO is healthy after disabling Grafana")
assertOperatorCondition(t, configv1.OperatorDegraded, configv1.ConditionFalse)
assertOperatorCondition(t, configv1.OperatorAvailable, configv1.ConditionTrue)

// Push a default configuration that re-enables Grafana.
validCM.Data["config.yaml"] = "enableUserWorkload: true"

if err := f.OperatorClient.CreateOrUpdateConfigMap(validCM); err != nil {
t.Fatal(err)
}

// Wait for Grafana deployment to appear.
err = framework.Poll(time.Second, 5*time.Minute, func() error {
_, err := f.KubeClient.AppsV1().Deployments(f.Ns).Get(context.TODO(), "grafana", metav1.GetOptions{})
return err
})
if err != nil {
t.Fatal(err)
}

t.Log("asserting that CMO is healthy after re-enabling Grafana")
assertOperatorCondition(t, configv1.OperatorDegraded, configv1.ConditionFalse)
assertOperatorCondition(t, configv1.OperatorAvailable, configv1.ConditionTrue)
}

func assertOperatorCondition(t *testing.T, conditionType configv1.ClusterStatusConditionType, conditionStatus configv1.ConditionStatus) {
Expand Down

0 comments on commit d276735

Please sign in to comment.