Add Grafana - WIP
parent
1f75d8d61c
commit
bc8f8686ee
79
main.tf
79
main.tf
|
|
@ -258,6 +258,85 @@ resource "helm_release" "influxdb" {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "keycloak_openid_client" "grafana_client" {
|
||||||
|
realm_id = keycloak_realm.realm.id
|
||||||
|
client_id = "grafana"
|
||||||
|
enabled = true
|
||||||
|
access_type = "CONFIDENTIAL"
|
||||||
|
standard_flow_enabled = true
|
||||||
|
implicit_flow_enabled = true
|
||||||
|
client_secret = var.keycloak_grafana_secret
|
||||||
|
valid_redirect_uris = [
|
||||||
|
"https://grafana.${var.domain_suffix}/login/generic_oauth"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "kubernetes_config_map" "grafana_ini" {
|
||||||
|
metadata {
|
||||||
|
name = "grafana-ini"
|
||||||
|
namespace = var.grafana_namespace
|
||||||
|
}
|
||||||
|
data {
|
||||||
|
grafana.ini = <<-EOT
|
||||||
|
[server]
|
||||||
|
root_url = https://grafana.${var.domain_suffix}/
|
||||||
|
[auth.generic_oauth]
|
||||||
|
enabled = true
|
||||||
|
name = md1clv.im
|
||||||
|
allow_sign_up = true
|
||||||
|
client_id = ${keycloak_openid_client.grafana_client.client_id}
|
||||||
|
client_secret = ${keycloak_openid_client.grafana_client.client_secret}
|
||||||
|
scopes = openid email profile offline_access roles
|
||||||
|
email_attribute_path = email
|
||||||
|
login_attribute_path = username
|
||||||
|
name_attribute_path = full_name
|
||||||
|
auth_url = https://keycloak.${var.domain_suffix}/realms/${keycloak_realm.realm.realm}/protocol/openid-connect/auth
|
||||||
|
token_url = https://keycloak.${var.domain_suffix}/realms/${keycloak_realm.realm.realm}/protocol/openid-connect/token
|
||||||
|
api_url = https://keycloak.${var.domain_suffix}/realms/${keycloak_realm.realm.realm}/protocol/openid-connect/userinfo
|
||||||
|
signout_redirect_url = https://keycloak.${var.domain_suffix}/realms/${keycloak_realm.realm.realm}/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2Fgrafana.${var.domain_suffix}%2Flogin
|
||||||
|
role_attribute_path = contains(roles[*], 'grafanaadmin') && 'GrafanaAdmin' || contains(roles[*], 'admin') && 'Admin' || contains(roles[*], 'editor') && 'Editor' || 'Viewer'
|
||||||
|
allow_assign_grafana_admin = true
|
||||||
|
groups_attribute_path = groups
|
||||||
|
EOT
|
||||||
|
kind: ConfigMap
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "helm_release" "grafana" {
|
||||||
|
name = "grafana"
|
||||||
|
namespace = var.grafana_namespace
|
||||||
|
repository = "https://charts.bitnami.com/bitnami/"
|
||||||
|
chart = "grafana"
|
||||||
|
create_namespace = true
|
||||||
|
values = [
|
||||||
|
<<-EOT
|
||||||
|
admin:
|
||||||
|
password: ${var.default_password}
|
||||||
|
config:
|
||||||
|
grafanaIniConfigMap: grafana-ini
|
||||||
|
useGrafanaIniFile: true
|
||||||
|
datasources:
|
||||||
|
secretDefinition:
|
||||||
|
apiVersion: 1
|
||||||
|
datasources:
|
||||||
|
- isDefault: true
|
||||||
|
name: InfluxDB
|
||||||
|
type: influxdb
|
||||||
|
url: http://influxdb.${var.influxdb_namespace}.svc.cluster.local:8006
|
||||||
|
- name: Prometheus
|
||||||
|
type: prometheus
|
||||||
|
url: http://prometheus.${var.prometheus_namespace}.svc.cluster.local
|
||||||
|
global:
|
||||||
|
storageClass: ${var.storageclass}
|
||||||
|
ingress:
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
enabled: true
|
||||||
|
hostname: grafana.${var.domain_suffix}
|
||||||
|
tls: true
|
||||||
|
EOT
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
resource "helm_release" "freeipa" {
|
resource "helm_release" "freeipa" {
|
||||||
name = "freeipa"
|
name = "freeipa"
|
||||||
namespace = var.freeipa_namespace
|
namespace = var.freeipa_namespace
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue