|
| 1 | +apiVersion: v1 |
| 2 | +kind: Secret |
| 3 | +metadata: |
| 4 | + name: {{ include "grafana-ldap-sync.fullname" . }}-config |
| 5 | + labels: |
| 6 | + {{- include "grafana-ldap-sync.labels" . | nindent 4 }} |
| 7 | +stringData: |
| 8 | + config.yaml: | |
| 9 | + config: |
| 10 | + {{- .Values.config | toYaml | nindent 6 }} |
| 11 | + {{- if .Values.csvContent }} |
| 12 | + permissions.csv: {{ .Values.csvContent | quote }} |
| 13 | + {{- else }} |
| 14 | + {{- $comment := "In this case we need to generate the CSV usign some crazy logic" }} |
| 15 | + permissions.csv: | |
| 16 | + {{- $perms := list ( list "ZBV/LDAP-Gruppe" "Grafana-Team-Name" "Grafana-Team-ID" "Grafana-Folder-Name" "Grafana-Folder-UUID" "Grafana-Folder-Permissions" ) }} |
| 17 | + {{- $teams := .Values.teams }} |
| 18 | + {{- $folders := .Values.folders }} |
| 19 | + {{- $addTeamsToAll := .Values.addTeamsToAll }} |
| 20 | + {{- range $teamName, $groups := $teams }} |
| 21 | + {{- $comment := "This is how we default the group list to the team name" }} |
| 22 | + {{- if not $groups }} |
| 23 | + {{- $groups = list $teamName }} |
| 24 | + {{- end }} |
| 25 | +
|
| 26 | + {{- $comment := "Ensure that every permission level exists for every folder" }} |
| 27 | + {{- range $permLevel, $teamsToAdd := $addTeamsToAll }} |
| 28 | + {{- range $folderName, $permission := $folders }} |
| 29 | + {{- if not ( get $permission $permLevel ) }} |
| 30 | + {{- $permission = set $permission $permLevel ( list ) }} |
| 31 | + {{- $folders = set $folders $folderName $permission }} |
| 32 | + {{- end }} |
| 33 | + {{- end }} |
| 34 | + {{- end }} |
| 35 | + |
| 36 | + {{- range $folderName, $permission := $folders }} |
| 37 | + {{- $comment := "This is how we default the permission" }} |
| 38 | + {{- if not $permission }} |
| 39 | + {{- $permission = dict "admin" ( list $folderName ) }} |
| 40 | + {{- end }} |
| 41 | +
|
| 42 | + {{- range $permLevel, $permTeams := $permission }} |
| 43 | + {{- $comment := "If the user decides to use Admin we must ensure it is lowercase" }} |
| 44 | + {{- $permLevel = lower $permLevel }} |
| 45 | +
|
| 46 | + {{- $comment := "This is how we use the addTeamsToAll so that a team can be added to all folders" }} |
| 47 | +
|
| 48 | + {{- $teamsToAdd := ( get $addTeamsToAll $permLevel ) }} |
| 49 | + {{- if $teamsToAdd }} |
| 50 | + {{- $permTeams = concat $permTeams $teamsToAdd }} |
| 51 | + {{- end }} |
| 52 | +
|
| 53 | + {{- range $t := $permTeams }} |
| 54 | + {{- if eq ( toString $t ) $teamName }} |
| 55 | + {{- range $group := $groups }} |
| 56 | + {{- $ldapGroup := $group }} |
| 57 | + {{- $grafanaTeamName := $teamName }} |
| 58 | + {{- $grafanaTeamID := 1 }} |
| 59 | + {{- $grafanaFolderName := $folderName }} |
| 60 | + {{- $grafanaFolderUUID := $folderName | lower | replace " " "-" }} |
| 61 | + {{- $grafanaFolderPermissions := title $permLevel }} |
| 62 | +
|
| 63 | + {{- $perms = append $perms ( list $ldapGroup $grafanaTeamName $grafanaTeamID $grafanaFolderName $grafanaFolderUUID $grafanaFolderPermissions ) }} |
| 64 | + {{- end }} {{- $comment := "End range $groups" }} |
| 65 | + {{- end }} {{- $comment := "end if eq $teamname" }} |
| 66 | + {{- end }} {{- $comment := "end range $teams" }} |
| 67 | + {{- end }} {{- $comment := "end range $permission" }} |
| 68 | + {{- end }} {{- $comment := "end range $folders" }} |
| 69 | + {{- end }} {{- $comment := "end range $teams" }} |
| 70 | + {{- range $perm := $perms }} |
| 71 | + {{- $perm | join "," | nindent 4 }} |
| 72 | + {{- end }} |
| 73 | + {{- end }} {{- $comment := "End if .csvContent" }} |
| 74 | + |
0 commit comments