/
grafanaConfig.go
52 lines (42 loc) · 1.41 KB
/
grafanaConfig.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package model
import (
"github.com/grafana-operator/grafana-operator/v4/api/integreatly/v1alpha1"
"github.com/grafana-operator/grafana-operator/v4/controllers/config"
"github.com/grafana-operator/grafana-operator/v4/controllers/constants"
v1 "k8s.io/api/core/v1"
v12 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func GrafanaConfig(cr *v1alpha1.Grafana) *v1.ConfigMap {
ini := config.NewGrafanaIni(&cr.Spec.Config)
config, hash := ini.Write()
configMap := &v1.ConfigMap{}
configMap.ObjectMeta = v12.ObjectMeta{
Name: constants.GrafanaConfigName,
Namespace: cr.Namespace,
}
// Store the hash of the current configuration for later
// comparisons
configMap.Annotations = map[string]string{
"lastConfig": hash,
}
configMap.Data = map[string]string{}
configMap.Data[constants.GrafanaConfigFileName] = config
return configMap
}
func GrafanaConfigReconciled(cr *v1alpha1.Grafana, currentState *v1.ConfigMap) *v1.ConfigMap {
reconciled := currentState.DeepCopy()
ini := config.NewGrafanaIni(&cr.Spec.Config)
config, hash := ini.Write()
reconciled.Annotations = map[string]string{
constants.LastConfigAnnotation: hash,
}
reconciled.Data[constants.GrafanaConfigFileName] = config
return reconciled
}
func GrafanaConfigSelector(cr *v1alpha1.Grafana) client.ObjectKey {
return client.ObjectKey{
Namespace: cr.Namespace,
Name: constants.GrafanaConfigName,
}
}