Skip to content

Commit ac0e07e

Browse files
committed
feat(dso-env): add additional roles to be defined
Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>
1 parent 440d8be commit ac0e07e

File tree

4 files changed

+115
-3
lines changed

4 files changed

+115
-3
lines changed

charts/dso-env/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: dso-env
33
description: Creates argocd Project and Applications to deploy DSO project repositories.
44
type: application
5-
version: 1.6.0
5+
version: 1.7.0
66
appVersion: 1.0.0
77
maintainers:
88
- name: this-is-tobi

charts/dso-env/README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# dso-env
22

3-
![Version: 1.6.0](https://img.shields.io/badge/Version-1.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
3+
![Version: 1.7.0](https://img.shields.io/badge/Version-1.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
44

55
Creates argocd Project and Applications to deploy DSO project repositories.
66

@@ -23,11 +23,23 @@ Creates argocd Project and Applications to deploy DSO project repositories.
2323
| argocd.nsChartVersion | string | `"1.0.0"` | Version du Chart dso-ns à utiliser |
2424
| argocd.project | string | `"project1"` | Préfixe des projets ArgoCD à créer |
2525
| common | object | `{"dso/environment":"env","dso/organization":"org","dso/project":"project"}` | Informations communes, notamment appliquées en label sur les différents objets |
26+
| environment.consoleAdminGroup | string | `"/console-admin"` | Nom du groupe d'administration globale (Console) (experimentale) |
27+
| environment.platformAdminGroup | string | `"/console/admin"` | Nom du groupe d'administration de la plateforme (experimentale) |
28+
| environment.platformReadonlyGroup | string | `"/console/readonly"` | Nom du groupe de lecture seule de la plateforme (experimentale) |
29+
| environment.platformSecurityGroup | string | `"/console/security"` | Nom du groupe de sécurité de la plateforme (experimentale) |
30+
| environment.projectAdminGroup | string | `"/project1/console/admin"` | Nom du groupe d'administration du projet (experimentale) |
31+
| environment.projectDevelopperGroup | string | `"/project1/console/developer"` | Nom du groupe Développeur du projet (experimentale) |
32+
| environment.projectDevopsGroup | string | `"/project1/console/devops"` | Nom du groupe DevOps du projet (experimentale) |
33+
| environment.projectReadonlyGroup | string | `"/project1/console/readonly"` | Nom du groupe de lecture seule du projet (experimentale) |
34+
| environment.projectSecurityGroup | string | `"/project1/console/security"` | Nom du groupe de sécurité du projet (experimentale) |
2635
| environment.roGroup | string | `"/project/environment/RO"` | Nom du groupe à autoriser en lecture seule sur les objets applicatifs (-app) déployés par ArgoCD |
2736
| environment.rwGroup | string | `"/project/environment/RW"` | Nom du groupe à autoriser en lecture/écriture sur les objets applicatifs (-app) déployés par ArgoCD |
2837
| environment.valueFilePath | string | `"values.yaml"` | Chemin du fichier à utiliser lors de la récupération des values |
2938
| environment.valueFileRepository | string | `"https://gitlab.com/projects/Infra/org/demo/infra.git"` | URL du repo avec le fichier values à utiliser pour cet environnement |
3039
| environment.valueFileRevision | string | `"HEAD"` | Revision Git à utiliser lors de la récupération des values |
40+
| features | object | `{"fineGrainedRoles":{"enabled":false}}` | Ensemble de paramètres de fonctionnalités - expérimental |
41+
| features.fineGrainedRoles | object | `{"enabled":false}` | Support des rôles affinés |
42+
| features.fineGrainedRoles.enabled | bool | `false` | Activation des rôles affinés |
3143

3244
----------------------------------------------
3345
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)

charts/dso-env/templates/project-app.yaml

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,83 @@ spec:
3737
allow
3838
- p, proj:{{ .Values.argocd.project }}-app:rw-group, applications, create, {{ .Values.argocd.project }}-app/*,
3939
deny
40-
sourceRepos:
40+
{{- if .Values.features.fineGrainedRoles.enabled }}
41+
- description: platform admin group
42+
groups:
43+
- {{ .Values.environment.consoleAdminGroup }}
44+
- {{ .Values.environment.platformAdminGroup }}
45+
name: platform-admin
46+
policies:
47+
- p, proj:{{ .Values.argocd.project }}-app:platform-admin, *, *, {{ .Values.argocd.project }}-app/*, allow
48+
- description: platform security group
49+
groups:
50+
- {{ .Values.environment.platformSecurityGroup }}
51+
name: platform-security
52+
policies:
53+
- p, proj:{{ .Values.argocd.project }}-app:platform-security, applications, get, {{ .Values.argocd.project }}-app/*, allow
54+
- p, proj:{{ .Values.argocd.project }}-app:platform-security, projects, get, {{ .Values.argocd.project }}-app, allow
55+
- p, proj:{{ .Values.argocd.project }}-app:platform-security, repositories, get, *, allow
56+
- p, proj:{{ .Values.argocd.project }}-app:platform-security, clusters, get, *, allow
57+
- p, proj:{{ .Values.argocd.project }}-app:platform-security, accounts, get, *, allow
58+
- description: platform readonly group
59+
groups:
60+
- {{ .Values.environment.platformReadonlyGroup }}
61+
name: platform-readonly
62+
policies:
63+
- p, proj:{{ .Values.argocd.project }}-app:platform-readonly, applications, get, {{ .Values.argocd.project }}-app/*, allow
64+
- p, proj:{{ .Values.argocd.project }}-app:platform-readonly, projects, get, {{ .Values.argocd.project }}-app, allow
65+
- p, proj:{{ .Values.argocd.project }}-app:platform-readonly, repositories, get, *, allow
66+
- p, proj:{{ .Values.argocd.project }}-app:platform-readonly, clusters, get, *, allow
67+
- description: project admin group
68+
groups:
69+
- {{ .Values.environment.projectAdminGroup }}
70+
name: project-admin
71+
policies:
72+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, applications, get, {{ .Values.argocd.project }}-app/*, allow
73+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, applications, sync, {{ .Values.argocd.project }}-app/*, allow
74+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, applications, update, {{ .Values.argocd.project }}-app/*, allow
75+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, applications, delete, {{ .Values.argocd.project }}-app/*, allow
76+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, projects, get, {{ .Values.argocd.project }}-app, allow
77+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, projects, update, {{ .Values.argocd.project }}-app, allow
78+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, repositories, get, *, allow
79+
- p, proj:{{ .Values.argocd.project }}-app:project-admin, clusters, get, *, allow
80+
- description: project devops group
81+
groups:
82+
- {{ .Values.environment.projectDevopsGroup }}
83+
name: project-devops
84+
policies:
85+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, applications, get, {{ .Values.argocd.project }}-app/*, allow
86+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, applications, sync, {{ .Values.argocd.project }}-app/*, allow
87+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, applications, update, {{ .Values.argocd.project }}-app/*, allow
88+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, projects, get, {{ .Values.argocd.project }}-app, allow
89+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, repositories, get, *, allow
90+
- p, proj:{{ .Values.argocd.project }}-app:project-devops, clusters, get, *, allow
91+
- description: project developer group
92+
groups:
93+
- {{ .Values.environment.projectDevelopperGroup }}
94+
name: project-developer
95+
policies:
96+
- p, proj:{{ .Values.argocd.project }}-app:project-developer, applications, get, {{ .Values.argocd.project }}-app/*, allow
97+
- p, proj:{{ .Values.argocd.project }}-app:project-developer, applications, sync, {{ .Values.argocd.project }}-app/*, allow
98+
- p, proj:{{ .Values.argocd.project }}-app:project-developer, projects, get, {{ .Values.argocd.project }}-app, allow
99+
- description: project security group
100+
groups:
101+
- {{ .Values.environment.projectSecurityGroup }}
102+
name: project-security
103+
policies:
104+
- p, proj:{{ .Values.argocd.project }}-app:project-security, applications, get, {{ .Values.argocd.project }}-app/*, allow
105+
- p, proj:{{ .Values.argocd.project }}-app:project-security, projects, get, {{ .Values.argocd.project }}-app, allow
106+
- p, proj:{{ .Values.argocd.project }}-app:project-security, repositories, get, *, allow
107+
- p, proj:{{ .Values.argocd.project }}-app:project-security, clusters, get, *, allow
108+
- description: project readonly group
109+
groups:
110+
- {{ .Values.environment.projectReadonlyGroup }}
111+
name: project-readonly
112+
policies:
113+
- p, proj:{{ .Values.argocd.project }}-app:project-readonly, applications, get, {{ .Values.argocd.project }}-app/*, allow
114+
- p, proj:{{ .Values.argocd.project }}-app:project-readonly, projects, get, {{ .Values.argocd.project }}-app, allow
115+
{{- end }}
116+
sourceRepos:
41117
{{- range .Values.application.sourceRepositories }}
42118
- {{ . }}
43119
{{- end }}

charts/dso-env/values.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,24 @@ environment:
2121
roGroup: /project/environment/RO
2222
# -- Nom du groupe à autoriser en lecture/écriture sur les objets applicatifs (-app) déployés par ArgoCD
2323
rwGroup: /project/environment/RW
24+
# -- Nom du groupe d'administration de la plateforme (experimentale)
25+
platformAdminGroup: /console/admin
26+
# -- Nom du groupe d'administration globale (Console) (experimentale)
27+
consoleAdminGroup: /console-admin
28+
# -- Nom du groupe de lecture seule de la plateforme (experimentale)
29+
platformReadonlyGroup: /console/readonly
30+
# -- Nom du groupe de sécurité de la plateforme (experimentale)
31+
platformSecurityGroup: /console/security
32+
# -- Nom du groupe d'administration du projet (experimentale)
33+
projectAdminGroup: /project1/console/admin
34+
# -- Nom du groupe DevOps du projet (experimentale)
35+
projectDevopsGroup: /project1/console/devops
36+
# -- Nom du groupe Développeur du projet (experimentale)
37+
projectDevelopperGroup: /project1/console/developer
38+
# -- Nom du groupe de sécurité du projet (experimentale)
39+
projectSecurityGroup: /project1/console/security
40+
# -- Nom du groupe de lecture seule du projet (experimentale)
41+
projectReadonlyGroup: /project1/console/readonly
2442
application:
2543
# -- Liste des dépôts à autoriser au niveau du AppProject
2644
sourceRepositories:
@@ -49,3 +67,9 @@ application:
4967
# valueFiles:
5068
# - values.yaml
5169
# - values-integ.yaml
70+
# -- Ensemble de paramètres de fonctionnalités - expérimental
71+
features:
72+
# -- Support des rôles affinés
73+
fineGrainedRoles:
74+
# -- Activation des rôles affinés
75+
enabled: false

0 commit comments

Comments
 (0)