Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/operator/config/config_references_test.go
4095 views
1
package config
2
3
import (
4
"testing"
5
6
gragent "github.com/grafana/agent/pkg/operator/apis/monitoring/v1alpha1"
7
prom "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
8
"github.com/stretchr/testify/require"
9
corev1 "k8s.io/api/core/v1"
10
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11
)
12
13
func TestDeployment_AssetReferences(t *testing.T) {
14
deployment := gragent.Deployment{
15
Agent: &gragent.GrafanaAgent{
16
ObjectMeta: v1.ObjectMeta{
17
Namespace: "agent",
18
},
19
Spec: gragent.GrafanaAgentSpec{
20
APIServerConfig: &prom.APIServerConfig{
21
BasicAuth: &prom.BasicAuth{
22
Username: corev1.SecretKeySelector{
23
LocalObjectReference: corev1.LocalObjectReference{
24
Name: "spec-apiserverconfig-basicauth-username",
25
},
26
Key: "key",
27
},
28
},
29
},
30
},
31
},
32
Metrics: []gragent.MetricsDeployment{{
33
Instance: &gragent.MetricsInstance{
34
ObjectMeta: v1.ObjectMeta{Namespace: "metrics-instance"},
35
},
36
PodMonitors: []*prom.PodMonitor{{
37
ObjectMeta: v1.ObjectMeta{Namespace: "pmon"},
38
}},
39
Probes: []*prom.Probe{{
40
ObjectMeta: v1.ObjectMeta{Namespace: "probe"},
41
}},
42
ServiceMonitors: []*prom.ServiceMonitor{{
43
ObjectMeta: v1.ObjectMeta{
44
Namespace: "smon",
45
},
46
Spec: prom.ServiceMonitorSpec{
47
Endpoints: []prom.Endpoint{{
48
BearerTokenSecret: corev1.SecretKeySelector{
49
LocalObjectReference: corev1.LocalObjectReference{
50
Name: "prometheis-servicemonitors-spec-endpoints-bearertokensecret",
51
},
52
Key: "key",
53
},
54
}},
55
},
56
}},
57
}},
58
}
59
60
require.Equal(t, []AssetReference{
61
{
62
Namespace: "agent",
63
Reference: prom.SecretOrConfigMap{
64
Secret: &corev1.SecretKeySelector{
65
LocalObjectReference: corev1.LocalObjectReference{
66
Name: "spec-apiserverconfig-basicauth-username",
67
},
68
Key: "key",
69
},
70
},
71
},
72
{
73
Namespace: "smon",
74
Reference: prom.SecretOrConfigMap{
75
Secret: &corev1.SecretKeySelector{
76
LocalObjectReference: corev1.LocalObjectReference{
77
Name: "prometheis-servicemonitors-spec-endpoints-bearertokensecret",
78
},
79
Key: "key",
80
},
81
},
82
},
83
}, AssetReferences(deployment))
84
}
85
86