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 30, 2021
1 parent 85cf851 commit 3b4aeeb
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions test/e2e/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@
package e2e

import (
"context"
"testing"
"time"

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 @@ -94,6 +96,59 @@ func TestClusterMonitoringOperatorConfiguration(t *testing.T) {
assertOperatorCondition(t, configv1.OperatorAvailable, configv1.ConditionTrue)
}

func TestGrafanaConfiguration(t *testing.T) {
config := &v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "cluster-monitoring-config",
Namespace: f.Ns,
},
Data: map[string]string{
"config.yaml": "grafana: { enabled: false }",
},
}

if err := f.OperatorClient.CreateOrUpdateConfigMap(config); 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.
config.Data["config.yaml"] = "grafana: { enabled: true }"

if err := f.OperatorClient.CreateOrUpdateConfigMap(config); 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) {
t.Helper()

Expand Down

0 comments on commit 3b4aeeb

Please sign in to comment.