Skip to content

Commit 259099c

Browse files
committed
replace kubernetes_namespace and kubernetes_secret with helm charts
1 parent 87eda4d commit 259099c

File tree

6 files changed

+392
-581
lines changed

6 files changed

+392
-581
lines changed

modules/grafana/main.tf

Lines changed: 61 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ locals {
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
9923
module "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

13656
module "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+
}

modules/kubernetes-manifests/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module "kubernetes_manifests" {
44

55
chart = "${path.module}/chart"
66

7+
create = var.create
78
tags = var.tags
89
create_release = var.create_release
910
name = var.name

modules/kubernetes-manifests/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
variable "create" {
2+
description = "Controls if resources should be created (affects all resources)"
3+
type = bool
4+
default = true
5+
}
6+
17
variable "tags" {
28
description = "A map of tags to add to all resources"
39
type = map(string)

0 commit comments

Comments
 (0)