Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{{- if not .Values.grafana.sso.secretArn }}
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana
namespace: {{ .Release.Namespace }}
data:
grafana.ini: |
[server]
root_url = %(protocol)s://%(domain)s:%(http_port)s/

[security]
disable_gravatar = true

[database]
type = sqlite3
path = /var/lib/grafana/grafana.db
wal = true

[auth]
disable_login_form = true

[auth.anonymous]
enabled = true
org_role = Admin

[auth.basic]
enabled = false

[users]
allow_sign_up = false
auto_assign_org_role = Admin

[analytics]
reporting_enabled = false
check_for_updates = false
check_for_plugin_updates = false

[log]
mode = console
level = info
{{- end }}
57 changes: 57 additions & 0 deletions argocd/config/regional-cluster/grafana/templates/auth-sso.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{{- if .Values.grafana.sso.secretArn }}
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana
namespace: {{ .Release.Namespace }}
data:
grafana.ini: |
[server]
root_url = https://%(domain)s/

[security]
disable_gravatar = true

[database]
type = sqlite3
path = /var/lib/grafana/grafana.db
wal = true

[auth]
disable_login_form = false

[auth.anonymous]
enabled = false

[auth.basic]
enabled = false

[auth.generic_oauth]
enabled = true
name = Red Hat SSO
allow_sign_up = true
client_id = $__env{SSO_CLIENT_ID}
client_secret = $__env{SSO_CLIENT_SECRET}
scopes = openid email profile offline_access
email_attribute_path = email
login_attribute_path = preferred_username
name_attribute_path = name
auth_url = $__env{SSO_AUTH_URL}
token_url = $__env{SSO_TOKEN_URL}
api_url = $__env{SSO_API_URL}
skip_org_role_sync = true
auto_login = true

[users]
allow_sign_up = false
auto_assign_org_role = Admin

[analytics]
reporting_enabled = false
check_for_updates = false
check_for_plugin_updates = false

[log]
mode = console
level = info
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{{- if .Values.grafana.sso.secretArn }}
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: grafana-sso
namespace: {{ .Release.Namespace }}
spec:
refreshInterval: 1h
secretStoreRef:
name: aws-secrets-manager
kind: ClusterSecretStore
target:
name: grafana-sso
creationPolicy: Owner
template:
engineVersion: v2
data:
SSO_CLIENT_ID: "{{ "{{ .client_id }}" }}"
SSO_CLIENT_SECRET: "{{ "{{ .client_secret }}" }}"
SSO_AUTH_URL: "{{ "{{ .oidc_url }}" }}/protocol/openid-connect/auth"
SSO_TOKEN_URL: "{{ "{{ .oidc_url }}" }}/protocol/openid-connect/token"
SSO_API_URL: "{{ "{{ .oidc_url }}" }}/protocol/openid-connect/userinfo"
data:
- secretKey: client_id
remoteRef:
key: {{ .Values.grafana.sso.secretArn }}
property: client_id
- secretKey: client_secret
remoteRef:
key: {{ .Values.grafana.sso.secretArn }}
property: client_secret
- secretKey: oidc_url
remoteRef:
key: {{ .Values.grafana.sso.secretArn }}
property: oidc_url
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{- if .Values.grafana.targetGroup.arn }}
---
apiVersion: eks.amazonaws.com/v1
kind: TargetGroupBinding
metadata:
name: grafana
namespace: {{ .Release.Namespace }}
spec:
serviceRef:
name: grafana
port: 80
targetGroupARN: {{ .Values.grafana.targetGroup.arn }}
targetType: ip
{{- end }}
48 changes: 13 additions & 35 deletions argocd/config/regional-cluster/grafana/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,40 +36,14 @@ grafana:
create: true
name: grafana

"grafana.ini":
server:
root_url: "%(protocol)s://%(domain)s:%(http_port)s/"
createConfigmap: false

security:
disable_gravatar: true
envFromSecrets:
- name: grafana-sso
optional: true

database:
type: sqlite3
path: /var/lib/grafana/grafana.db
wal: true

auth:
disable_login_form: true

"auth.anonymous":
enabled: true
org_role: Admin

"auth.basic":
enabled: false

users:
allow_sign_up: false
auto_assign_org_role: Admin

analytics:
reporting_enabled: false
check_for_updates: false
check_for_plugin_updates: false

log:
mode: console
level: info
envFromConfigMaps:
- name: grafana-region-env

service:
type: ClusterIP
Expand All @@ -79,9 +53,6 @@ grafana:
persistence:
enabled: false

envFromConfigMaps:
- name: grafana-region-env

datasources:
datasources.yaml:
apiVersion: 1
Expand Down Expand Up @@ -179,3 +150,10 @@ grafana:
provider:
foldersFromFilesStructure: true
allowUiUpdates: false

# Injected at runtime by ApplicationSet from cluster annotations.
# Empty defaults for helm lint.
targetGroup:
arn: ""
sso:
secretArn: ""
6 changes: 6 additions & 0 deletions config/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ observability:
# @used-by observability.pagerduty.escalation_policy_id pipeline-regional-cluster-inputs/terraform.json.j2
escalation_policy_id: "P5KE444"

grafana_ingress:
# @doc observability.grafana_ingress.enabled Enable internet-facing Grafana ingress (ALB + ACM cert + DNS record).
# @used-by observability.grafana_ingress.enabled _context
# @used-by observability.grafana_ingress.enabled pipeline-regional-cluster-inputs/terraform.json.j2
enabled: false

sns_alerting:
# @doc observability.sns_alerting.enabled Enable SNS alerting for regional cluster alert consumption by automated/external services.
# @used-by observability.sns_alerting.enabled _context
Expand Down
2 changes: 2 additions & 0 deletions config/integration/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ management_cluster_defaults:
observability:
pagerduty:
enabled: true
grafana_ingress:
enabled: true
5 changes: 5 additions & 0 deletions config/templates/argocd-bootstrap/applicationset.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ spec:
tableName: '{{ '{{ .metadata.annotations.zoa_table_name }}' }}'
auditTableName: '{{ '{{ .metadata.annotations.zoa_audit_table_name }}' }}'
bucketName: '{{ '{{ .metadata.annotations.zoa_bucket_name }}' }}'
grafana:
targetGroup:
arn: '{{ '{{ .metadata.annotations.grafana_target_group_arn }}' }}'
sso:
secretArn: '{{ '{{ .metadata.annotations.grafana_sso_secret_arn }}' }}'
# Thanos Operator values (keys must match chart's values.yaml structure)
thanos:
kmsKeyArn: '{{ '{{ .metadata.annotations.thanos_kms_key_arn }}' }}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"enable_api_custom_domain": {{ regional_cluster.enable_api_custom_domain | default(false) | tojson }},
"zone_shard_count": {{ regional_cluster.zone_shard_count | default(1) | tojson }},
"enable_sns_alerting": {{ observability.sns_alerting.enabled | default(false) | tojson }},
"enable_grafana_ingress": {{ observability.grafana_ingress.enabled | default(false) | tojson }},
"regional_id": "{% if eph_prefix %}{{ eph_prefix }}-regional{% else %}regional{% endif %}",
"eph_prefix": "{{ eph_prefix | default('') }}",
"iot_log_level": {{ applications['regional-cluster'].maestro.iotLogLevel | default('WARN') | tojson }}
Expand Down
6 changes: 6 additions & 0 deletions deploy/ephemeral/us-east-1/_merged_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ observability:
# @used-by observability.pagerduty.escalation_policy_id pipeline-regional-cluster-inputs/terraform.json.j2
escalation_policy_id: "P5KE444"

grafana_ingress:
# @doc observability.grafana_ingress.enabled Enable internet-facing Grafana ingress (ALB + ACM cert + DNS record).
# @used-by observability.grafana_ingress.enabled _context
# @used-by observability.grafana_ingress.enabled pipeline-regional-cluster-inputs/terraform.json.j2
enabled: false

sns_alerting:
# @doc observability.sns_alerting.enabled Enable SNS alerting for regional cluster alert consumption by automated/external services.
# @used-by observability.sns_alerting.enabled _context
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ spec:
tableName: '{{ .metadata.annotations.zoa_table_name }}'
auditTableName: '{{ .metadata.annotations.zoa_audit_table_name }}'
bucketName: '{{ .metadata.annotations.zoa_bucket_name }}'
grafana:
targetGroup:
arn: '{{ .metadata.annotations.grafana_target_group_arn }}'
sso:
secretArn: '{{ .metadata.annotations.grafana_sso_secret_arn }}'
# Thanos Operator values (keys must match chart's values.yaml structure)
thanos:
kmsKeyArn: '{{ .metadata.annotations.thanos_kms_key_arn }}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ spec:
tableName: '{{ .metadata.annotations.zoa_table_name }}'
auditTableName: '{{ .metadata.annotations.zoa_audit_table_name }}'
bucketName: '{{ .metadata.annotations.zoa_bucket_name }}'
grafana:
targetGroup:
arn: '{{ .metadata.annotations.grafana_target_group_arn }}'
sso:
secretArn: '{{ .metadata.annotations.grafana_sso_secret_arn }}'
# Thanos Operator values (keys must match chart's values.yaml structure)
thanos:
kmsKeyArn: '{{ .metadata.annotations.thanos_kms_key_arn }}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"enable_api_custom_domain": false,
"zone_shard_count": 1,
"enable_sns_alerting": true,
"enable_grafana_ingress": false,
"regional_id": "regional",
"eph_prefix": "",
"iot_log_level": "WARN",
Expand Down
6 changes: 6 additions & 0 deletions deploy/integration/us-east-1/_merged_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ observability:
# @used-by observability.pagerduty.escalation_policy_id pipeline-regional-cluster-inputs/terraform.json.j2
escalation_policy_id: "P5KE444"

grafana_ingress:
# @doc observability.grafana_ingress.enabled Enable internet-facing Grafana ingress (ALB + ACM cert + DNS record).
# @used-by observability.grafana_ingress.enabled _context
# @used-by observability.grafana_ingress.enabled pipeline-regional-cluster-inputs/terraform.json.j2
enabled: true

sns_alerting:
# @doc observability.sns_alerting.enabled Enable SNS alerting for regional cluster alert consumption by automated/external services.
# @used-by observability.sns_alerting.enabled _context
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ spec:
tableName: '{{ .metadata.annotations.zoa_table_name }}'
auditTableName: '{{ .metadata.annotations.zoa_audit_table_name }}'
bucketName: '{{ .metadata.annotations.zoa_bucket_name }}'
grafana:
targetGroup:
arn: '{{ .metadata.annotations.grafana_target_group_arn }}'
sso:
secretArn: '{{ .metadata.annotations.grafana_sso_secret_arn }}'
# Thanos Operator values (keys must match chart's values.yaml structure)
thanos:
kmsKeyArn: '{{ .metadata.annotations.thanos_kms_key_arn }}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ spec:
tableName: '{{ .metadata.annotations.zoa_table_name }}'
auditTableName: '{{ .metadata.annotations.zoa_audit_table_name }}'
bucketName: '{{ .metadata.annotations.zoa_bucket_name }}'
grafana:
targetGroup:
arn: '{{ .metadata.annotations.grafana_target_group_arn }}'
sso:
secretArn: '{{ .metadata.annotations.grafana_sso_secret_arn }}'
# Thanos Operator values (keys must match chart's values.yaml structure)
thanos:
kmsKeyArn: '{{ .metadata.annotations.thanos_kms_key_arn }}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"enable_api_custom_domain": true,
"zone_shard_count": 1,
"enable_sns_alerting": true,
"enable_grafana_ingress": true,
"regional_id": "regional",
"eph_prefix": "",
"iot_log_level": "WARN",
Expand Down
Loading