88 enabled: true
99 size: 1Gi
1010 admin:
11- existingSecret: "${ kubernetes_secret . grafana_admin_credentials . metadata [ 0 ] . name } "
11+ existingSecret: "grafana-admin-credentials "
1212 userKey: username
1313 passwordKey: password
1414 EOT
@@ -20,117 +20,37 @@ resource "random_password" "grafana_admin_password" {
2020 special = true
2121}
2222
23- data "kubernetes_namespace" "grafana" {
24- metadata {
25- name = var. namespace
26- }
27- }
28-
29- resource "kubernetes_namespace" "grafana" {
30- count = var. create_namespace && ! (length (data. kubernetes_namespace . grafana ) > 0 ) ? 1 : 0
31-
32- metadata {
33- name = var. namespace
34- }
35- }
36-
37- resource "kubernetes_secret" "grafana_admin_credentials" {
38-
39- depends_on = [
40- kubernetes_namespace . grafana
41- ]
42-
43- metadata {
44- generate_name = " grafana-admin-credentials"
45- namespace = var. namespace
46- }
47-
48- data = {
49- username = var.admin_user
50- password = local.admin_password
51- }
52- }
53-
54- resource "kubernetes_secret" "grafana_operator_integration_credentials" {
55- count = var. grafana_operator_integration == true ? 1 : 0
56-
57- metadata {
58- generate_name = " grafana-${ var . namespace } -integration-credentials"
59- namespace = var. grafana_operator_namespace
60- }
61-
62- data = {
63- username = var.admin_user
64- password = local.admin_password
65- }
66- }
67-
68- # https://grafana.github.io/grafana-operator/docs/grafana/#external-grafana-instances
69- # resource "kubernetes_manifest" "grafana_operator_integration" {
70- # count = var.grafana_operator_integration == true ? 1 : 0
71- #
72- # manifest = {
73- # apiVersion = "grafana.integreatly.org/v1beta1"
74- # kind = "Grafana"
75- # metadata = {
76- # name = "grafana-${var.namespace}"
77- # namespace = var.namespace
78- # labels = {
79- # dashboards = "grafana"
80- # }
81- # }
82- # spec = {
83- # external = {
84- # url = "http://${module.grafana.name}.${module.grafana.namespace}.svc.cluster.local"
85- # adminPassword = {
86- # name = "${kubernetes_secret.grafana_operator_integration_credentials[0].metadata[0].name}"
87- # key = "password"
88- # }
89- # adminUser = {
90- # name = "${kubernetes_secret.grafana_operator_integration_credentials[0].metadata[0].name}"
91- # key = "username"
92- # }
93- # }
94- # }
95- # }
96- # }
97-
98- # https://grafana.github.io/grafana-operator/docs/grafana/#external-grafana-instances
9923module "kubernetes_manifests" {
10024 source = " ../kubernetes-manifests"
101- count = var. grafana_operator_integration == true ? 1 : 0
10225
103- # depends_on = [
104- # module.grafana,
105- # kubernetes_secret.grafana_operator_integration_credentials
106- # ]
107-
108- name = " grafana-${ var . namespace } -integration"
109- namespace = var. grafana_operator_namespace
26+ create = var. create
27+ name = " grafana-${ var . namespace } -manifests"
28+ namespace = var. namespace
11029 tags = var. tags
11130
11231 values = [
11332 <<- EOT
11433 resources:
115- - apiVersion: "grafana.integreatly.org/v1beta1"
116- kind: "Grafana"
34+ - kind: Secret
35+ apiVersion: v1
11736 metadata:
118- name: "grafana-${ var . namespace } "
37+ name: "grafana-admin-credentials "
11938 namespace: "${ var . namespace } "
120- labels:
121- dashboards: "grafana"
122- spec:
123- external:
124- url: "http://${ module . grafana . name } .${ module . grafana . namespace } .svc.cluster.local"
125- adminPassword:
126- name: "${ kubernetes_secret . grafana_operator_integration_credentials [0 ]. metadata [0 ]. name } "
127- key: "password"
128- adminUser:
129- name: "${ kubernetes_secret . grafana_operator_integration_credentials [0 ]. metadata [0 ]. name } "
130- key: "username"
39+ stringData:
40+ username: "${ var . admin_user } "
41+ password: "${ local . admin_password } "
42+ type: Opaque
43+ - kind: Secret
44+ apiVersion: v1
45+ metadata:
46+ name: "grafana-admin-credentials"
47+ namespace: "${ var . namespace } "
48+ stringData:
49+ username: "${ var . admin_user } "
50+ password: "${ local . admin_password } "
51+ type: Opaque
13152 EOT
13253 ]
133-
13454}
13555
13656module "grafana" {
@@ -201,3 +121,44 @@ module "grafana" {
201121 policy_path = var. policy_path
202122 policy_description = var. policy_description
203123}
124+
125+ # https://grafana.github.io/grafana-operator/docs/grafana/#external-grafana-instances
126+ module "grafana_operator_datasource" {
127+ source = " ../kubernetes-manifests"
128+ count = var. grafana_operator_integration == true ? 1 : 0
129+
130+ name = " grafana-${ var . namespace } -integration"
131+ namespace = var. grafana_operator_namespace
132+ tags = var. tags
133+
134+ values = [
135+ <<- EOT
136+ resources:
137+ - kind: Secret
138+ apiVersion: v1
139+ metadata:
140+ name: "grafana-${ var . namespace } -integration-credentials"
141+ namespace: "${ var . grafana_operator_namespace } "
142+ stringData:
143+ username: "${ var . admin_user } "
144+ password: "${ local . admin_password } "
145+ type: Opaque
146+ - apiVersion: "grafana.integreatly.org/v1beta1"
147+ kind: "Grafana"
148+ metadata:
149+ name: "grafana-${ var . namespace } "
150+ namespace: "${ var . namespace } "
151+ labels:
152+ dashboards: "grafana"
153+ spec:
154+ external:
155+ url: "http://${ module . grafana . name } .${ module . grafana . namespace } .svc.cluster.local"
156+ adminPassword:
157+ name: "grafana-${ var . namespace } -integration-credentials"
158+ key: "password"
159+ adminUser:
160+ name: "grafana-${ var . namespace } -integration-credentials"
161+ key: "username"
162+ EOT
163+ ]
164+ }
0 commit comments