Skip to content

Commit 37bdd3c

Browse files
feat: render only relevant values for team-ns helm chart (#1872)
Co-authored-by: Cas Lubbers <[email protected]>
1 parent ff29a21 commit 37bdd3c

22 files changed

+118
-101
lines changed

chart/chart-index/charts

-1
This file was deleted.

charts/team-ns/templates/_ingress.tpl

+3-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
{{- $ := . }}
1313
{{- $v := .dot.Values }}
1414
{{- $istioSvc := print "istio-ingressgateway-" .type }}
15-
{{- $cm := index $v.apps "cert-manager" }}
1615
{{- range $ingress := $v.ingress.classes }}
1716
{{- $routes := dict }}
1817
{{- $names := list }}
@@ -73,8 +72,8 @@ metadata:
7372
{{- end}}
7473
{{- if and $.hasAuth (eq $ingress.className $v.ingress.platformClass.className )}}
7574
nginx.ingress.kubernetes.io/auth-response-headers: Authorization
76-
nginx.ingress.kubernetes.io/auth-url: "http://oauth2-proxy.istio-system.svc.cluster.local/oauth2/auth"
77-
nginx.ingress.kubernetes.io/auth-signin: "https://auth.{{ $v.cluster.domainSuffix }}/oauth2/start?rd=/oauth2/redirect/$http_host$escaped_request_uri"
75+
nginx.ingress.kubernetes.io/auth-url: "{{ $v.sso.authUrl }}"
76+
nginx.ingress.kubernetes.io/auth-signin: "{{ $v.sso.signInUrl }}"
7877
{{- end }}
7978
{{- if and (hasKey $ingress "entrypoint") (ne $ingress.entrypoint "")}}
8079
external-dns.alpha.kubernetes.io/target: {{ $ingress.entrypoint }}
@@ -129,7 +128,7 @@ spec:
129128
secretName: copy-team-{{ $v.teamId }}-{{ index $secrets $domain }}
130129
{{- end }}
131130
{{- else }}
132-
secretName: {{ $v._derived.tlsSecretName }}
131+
secretName: {{ $v.tlsSecretName }}
133132
{{- end }}
134133
{{- end }}
135134
{{- end }}

charts/team-ns/templates/argocd/argocd-application.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ metadata:
99
spec:
1010
project: team-{{ $v.teamId }}
1111
source:
12-
repoURL: https://gitea.{{ $v.cluster.domainSuffix }}/otomi/team-{{ $v.teamId }}-argocd.git
12+
repoURL: {{ $v.gitOps.teamRepoUrl }}
1313
targetRevision: HEAD
1414
path: ./
1515
destination:

charts/team-ns/templates/argocd/argocd-applicationset.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
spec:
1212
generators:
1313
- git:
14-
repoURL: https://gitea.{{ $v.cluster.domainSuffix }}/otomi/values.git
14+
repoURL: "{{ $v.gitOps.workloadValuesRepoUrl }}"
1515
revision: HEAD
1616
files:
1717
- path: "env/teams/workloads/{{ $v.teamId }}/{{ .name }}.yaml"

charts/team-ns/templates/argocd/argocd-project.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spec:
1313
description: ArgoCD project for team {{ $v.teamId }}
1414
# Allow manifests to deploy from any Git repos
1515
sourceRepos:
16-
- https://gitea.{{ $v.cluster.domainSuffix }}/otomi/team-{{ $v.teamId }}-argocd.git
16+
- {{ $v.gitOps.teamRepoUrl }}
1717
{{- range $v.workloads }}
1818
- {{ .url }}
1919
{{- end }}
@@ -50,7 +50,7 @@ spec:
5050
# - group: 'apps'
5151
# kind: StatefulSet
5252
roles:
53-
{{- if $v.otomi.isMultitenant }}
53+
{{- if $v.isMultitenant }}
5454
# we create a scoped platform-admin role since we are only allowed access to team-* projects as platform-admin in multitenant setup
5555
- name: platform-admin
5656
description: Team member privileges to team-{{ $v.teamId }}
@@ -65,12 +65,12 @@ spec:
6565
{{- if not (eq $v.teamId "admin") }}
6666
- name: team-member
6767
description: Team member privileges to team-{{ $v.teamId }}
68-
{{- if or (has "argocd" $v.selfService.apps) $v.otomi.isMultitenant }}
68+
{{- if or (has "argocd" $v.selfService.apps) $v.isMultitenant }}
6969
policies:
7070
{{- if has "argocd" $v.selfService.apps }}
7171
- p, proj:team-{{ $v.teamId }}:team-member, *, *, team-{{ $v.teamId }}/*, allow
7272
{{- else }}
73-
{{- if $v.otomi.isMultitenant }}
73+
{{- if $v.isMultitenant }}
7474
- p, proj:team-{{ $v.teamId }}:team-member, *, get, team-{{ $v.teamId }}/*, allow
7575
{{- else }}
7676
# we already have read-only rights globally when not in multitenancy
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1-
{{- $v := .Values }}
2-
{{- $a := $v.apps.argocd }}
3-
{{- $g := $v.apps.gitea }}
4-
{{- if $a.enabled }}
51
apiVersion: v1
62
kind: Secret
73
metadata:
8-
name: team-{{ $v.teamId }}-gitea-repo-creds
4+
name: team-{{ .Values.teamId }}-gitea-repo-creds
95
namespace: argocd
106
labels:
117
argocd.argoproj.io/secret-type: repo-creds
128
stringData:
139
type: git
14-
url: https://gitea.{{ $v.cluster.domainSuffix }}
15-
password: {{ $g.adminPassword }}
16-
username: {{ $g.adminUsername }}
17-
{{- end }}
10+
url: {{ .Values.gitOps.globalUrl }}
11+
password: {{ .Values.gitOps.adminPassword }}
12+
username: {{ .Values.gitOps.adminUsername }}
13+
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
{{- $v := .Values }}
2-
{{- $a := $v.apps.argocd }}
3-
{{- $g := $v.apps.gitea }}
4-
{{- if and $a.enabled $g.enabled }}
51
apiVersion: v1
62
kind: Secret
73
metadata:
8-
name: team-{{ $v.teamId }}-gitea-repo
4+
name: team-{{ .Values.teamId }}-gitea-repo
95
namespace: argocd
106
labels:
117
argocd.argoproj.io/secret-type: repo
128
stringData:
139
type: git
14-
url: https://gitea.{{ $v.cluster.domainSuffix }}/otomi/team-{{ $v.teamId }}-argocd.git
15-
{{- end }}
10+
url: {{ .Values.gitOps.teamRepoUrl }}

charts/team-ns/templates/builds/buildpack.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ spec:
6161
workspace: docker-credentials
6262
params:
6363
- name: APP_IMAGE
64-
value: harbor.{{ $v.cluster.domainSuffix }}/team-{{ $v.teamId }}/{{ .name }}:{{ .tag }}
64+
value: {{ $v.harborDomain }}/team-{{ $v.teamId }}/{{ .name }}:{{ .tag }}
6565
{{- with .mode.buildpacks.path }}
6666
- name: SOURCE_SUBPATH
6767
value: {{ . }}

charts/team-ns/templates/builds/docker.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ spec:
6767
- name: CONTEXT
6868
value: {{ $context }}
6969
- name: IMAGE
70-
value: harbor.{{ $v.cluster.domainSuffix }}/team-{{ $v.teamId }}/{{ .name }}:{{ .tag }}
70+
value: {{ $v.harborDomain }}/team-{{ $v.teamId }}/{{ .name }}:{{ .tag }}
7171
{{- with (dig "mode" "docker" "envVars" nil . ) }}
7272
- name: EXTRA_ARGS
7373
value:

charts/team-ns/templates/ingress.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{{- $ns := .Release.Namespace }}
22
{{- $v := .Values }}
3-
{{- $k := $v.apps.keycloak | default dict }}
43
# split list of services into separate ingress types:
54
# - core apps that need path forwarding (apps.*/appName stuff)
65
# - public/private?

charts/team-ns/templates/ingress/exceptions.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ spec:
99
gateways:
1010
- {{ $.Release.Namespace }}/team-admin-public-tlsterm
1111
hosts:
12-
- {{ $v._derived.giteaDomain }}
13-
- {{ $v._derived.keycloakDomain }}
12+
- {{ $v.giteaDomain }}
13+
- {{ $v.keycloakDomain }}
1414
http:
1515
- match:
1616
- uri:

charts/team-ns/templates/ingress/harbor-public.yaml

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{{- $v := .Values }}
22
{{- if eq $v.teamId "admin" }}
33
{{- if $v.apps.harbor.enabled }}
4-
{{- $domain := printf "harbor.%s" $v.cluster.domainSuffix }}
5-
{{- $cm := index $v.apps "cert-manager" }}
64
{{- $ingress := $v.ingress.platformClass }}
75
{{- $name := printf "nginx-team-%s-platform-public-open-forward-harbor" $v.teamId }}
86
---
@@ -33,7 +31,7 @@ metadata:
3331
spec:
3432
ingressClassName: platform
3533
rules:
36-
- host: {{ $domain }}
34+
- host: {{ $v.harborDomain }}
3735
http:
3836
paths:
3937
- backend:
@@ -66,7 +64,7 @@ spec:
6664
pathType: Prefix
6765
tls:
6866
- hosts:
69-
- {{ $domain }}
70-
secretName: {{ $v._derived.tlsSecretName }}
67+
- {{ $v.harborDomain }}
68+
secretName: {{ $v.tlsSecretName }}
7169
{{- end }}
7270
{{- end }}

charts/team-ns/templates/isitio-tty-authn.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ spec:
1010
matchLabels:
1111
otomi: tty
1212
jwtRules:
13-
- issuer: "https://keycloak.{{ $v.cluster.domainSuffix }}/realms/otomi"
14-
jwksUri: "https://keycloak.{{ $v.cluster.domainSuffix }}/realms/otomi/protocol/openid-connect/certs"
13+
- issuer: "{{ $v.sso.issuer }}"
14+
jwksUri: "{{ $v.sso.jwksUri }}"

charts/team-ns/templates/istio-virtualservices.yaml

+8-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
{{- $v := .Values }}
2-
{{- $k := $v.apps.keycloak | default dict }}
3-
{{- $kkMaster := printf "https://keycloak.%s/realms/otomi" $v.cluster.domainSuffix }}
42
{{- $ := . }}
53
{{- range $s := $v.services }}
64
{{- $isKnativeService := dig "ksvc" "predeployed" false $s }}
@@ -59,8 +57,8 @@ spec:
5957
- uri:
6058
prefix: /logout-otomi
6159
redirect:
62-
authority: auth.{{ $v.cluster.domainSuffix }}
63-
uri: /oauth2/sign_out?rd={{ $kkMaster }}/protocol/openid-connect/logout?redirect_uri=https://{{ printf "console.%s" $v.cluster.domainSuffix }}
60+
authority: {{ $v.authDomain }}
61+
uri: {{ $v.sso.logoutUri }}
6462
-
6563
{{- with $s.paths | default (list "/") }}
6664
match:
@@ -207,8 +205,8 @@ spec:
207205
- uri:
208206
prefix: /logout-otomi
209207
redirect:
210-
authority: auth.{{ $v.cluster.domainSuffix }}
211-
uri: /oauth2/sign_out?rd={{ $kkMaster }}/protocol/openid-connect/logout?redirect_uri=https://{{ printf "otomi.%s" $v.cluster.domainSuffix }}
208+
authority: "{{ $v.authDomain }}"
209+
uri: "{{ $v.sso.logoutUri }}"
212210
-
213211
{{- with $s.paths | default (list "/") }}
214212
match:
@@ -310,13 +308,13 @@ spec:
310308
selector:
311309
matchLabels: {{ $workload | nindent 6 }}
312310
jwtRules:
313-
- issuer: {{ $kkMaster }}
314-
jwksUri: {{ $kkMaster }}/protocol/openid-connect/certs
311+
- issuer: {{ $v.sso.masterRealm }}
312+
jwksUri: {{ $v.sso.jwksUri }}
315313
audiences:
316-
- {{ $k.idp.clientID }}
314+
- {{ $v.sso.clientId }}
317315
forwardOriginalToken: {{ $s.authz.forwardOriginalToken | default false }}
318316
---
319-
{{- $principal := printf "https://keycloak.%s/realms/otomi/*" $v.cluster.domainSuffix }}
317+
{{- $principal := printf "%s/*" $v.masterRealm }}
320318
apiVersion: security.istio.io/v1beta1
321319
kind: AuthorizationPolicy
322320
metadata:

charts/team-ns/templates/netpols/default-istio-service-entries.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ metadata:
1111
labels: {{- include "team-ns.chart-labels" $ | nindent 4 }}
1212
spec:
1313
hosts:
14-
- {{ trimPrefix "https://" .Values.apps.keycloak.address }}
14+
- {{ $v.keycloakDomain }}
1515
ports:
1616
- number: 443
1717
name: https

charts/team-ns/templates/policies/best-practice/allowed-image-repos.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ spec:
5858
all:
5959
- key: "{{`{{ element }}`}}"
6060
operator: NotEquals
61-
value: "harbor.{{ $v.cluster.domainSuffix }}/*"
61+
value: "{{ $v.harborDomain }}/*"
6262
{{- if $p.customValues }}
6363
- key: "{{`{{ element }}`}}"
6464
operator: AnyNotIn

charts/team-ns/templates/rbac.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
---
55
apiVersion: v1
66
imagePullSecrets:
7-
{{- with $v.otomi.globalPullSecret }}
7+
{{- with $v.globalPullSecret }}
88
- name: otomi-pullsecret-global
99
{{- end }}
1010
{{- if $h.enabled }}
@@ -113,11 +113,11 @@ kind: Secret
113113
metadata:
114114
name: gitea-credentials
115115
annotations:
116-
tekton.dev/git-0: https://gitea.{{ $v.cluster.domainSuffix }}
116+
tekton.dev/git-0: "{{ $v.gitOps.globalUrl }}"
117117
type: kubernetes.io/basic-auth
118118
stringData:
119-
username: otomi-admin
120-
password: {{ $v.otomi.adminPassword }}
119+
username: {{ $v.gitOps.adminUsername }}
120+
password: {{ $v.gitOps.adminPassword }}
121121
---
122122
apiVersion: v1
123123
kind: ServiceAccount

charts/team-ns/templates/telemetry/telemetry.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{{- $v := .Values }}
2-
{{- $i := $v.apps.istio }}
3-
{{- if $i.tracing.enabled }}
2+
{{- if $v.tracingEnabled}}
43
apiVersion: telemetry.istio.io/v1alpha1
54
kind: Telemetry
65
metadata:

helmfile.d/helmfile-15.ingress-core.yaml

+2-16
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,10 @@ releases:
4242
team: admin
4343
pipeline: otomi-task-teams
4444
values:
45+
- ../values/team-ns/team-ns.gotmpl
4546
- name: admin
4647
teamId: admin
47-
_derived: {{- toYaml $v._derived | nindent 10 }}
48-
teamIds: {{- toYaml (keys $v.teamConfig) | nindent 10 }}
49-
teamApps: {{- $tca.apps | toYaml | nindent 10 }}
50-
apps: {{- $a | toYaml | nindent 10 }}
51-
oidc: {{- $v.oidc | toYaml | nindent 10 }}
52-
cluster: {{- $v.cluster | toYaml | nindent 10 }}
5348
otomi: {{- $v.otomi | toYaml | nindent 10 }}
54-
domain: {{ $v | get "cluster.domainSuffix" nil }}
5549
services: {{- $services | toYaml | nindent 10 }}
50+
networkPolicy: null
5651
resourceQuota: null
57-
ingress: {{- $v.ingress | toYaml | nindent 10 }}
58-
jobs: {{- $tca | get "jobs" list | toYaml | nindent 10 }}
59-
secrets: {{- $tca | get "secrets" list | toYaml | nindent 10 }}
60-
workloads: {{- $tca | get "workloads" list | toYaml | nindent 10 }}
61-
backups: {{- $tca | get "backups" list | toYaml | nindent 10 }}
62-
builds: {{- $tca | get "builds" list | toYaml | nindent 10 }}
63-
policies: {{- $tca | get "policies" list | toYaml | nindent 10 }}
64-
sealedsecrets: {{- $tca | get "sealedsecrets" list | toYaml | nindent 10 }}
65-
dns: {{- $v.dns | toYaml | nindent 10 }}

helmfile.d/helmfile-60.teams.yaml

+1-28
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,6 @@ bases:
1313
{{- $v := .Values }}
1414
{{- $a := $v.apps }}
1515
{{- $tc := $v.teamConfig }}
16-
{{- $coreTeamServices := list }}
17-
{{- range $s := $v.teamApps }}
18-
{{- if and ($a | get $s.name | get "enabled" true) (hasKey $s "ingress") $v.otomi.isMultitenant }}
19-
{{- range $ing := $s.ingress }}
20-
{{- $svc := merge $ing (dict "isCore" true "name" $s.name "ownHost" ($s | get "ownHost" false)) }}
21-
{{- $coreTeamServices = append $coreTeamServices $svc }}
22-
{{- end }}
23-
{{- end }}
24-
{{- end }}
2516
{{- $slackTpl := tpl (readFile "../helmfile.d/snippets/alertmanager/slack.gotmpl") $v | toString }}
2617
{{- $opsgenieTpl := tpl (readFile "../helmfile.d/snippets/alertmanager/opsgenie.gotmpl") $v | toString }}
2718
releases:
@@ -243,23 +234,5 @@ releases:
243234
team: {{ $teamId }}
244235
pipeline: otomi-task-teams
245236
values:
246-
- cluster: {{- $v.cluster | toYaml | nindent 10 }}
247-
apps: {{- $a | toYaml | nindent 10 }}
248-
otomi: {{- $v.otomi | toYaml | nindent 10 }}
249-
oidc: {{- $v | get "oidc" dict | toYaml | nindent 10 }}
250-
domain: {{ $domain }}
251-
ingress: {{- $v.ingress | toYaml | nindent 10 }}
252-
dns: {{- $v.dns | toYaml | nindent 10 }}
253-
_derived:
254-
tlsSecretName: {{ $v._derived.tlsSecretName }}
255-
- {{- omit $team "apps" | toYaml | nindent 8 }}
256-
teamId: {{ $teamId }}
257-
teamApps: {{- toYaml $teamApps | nindent 10 }}
258-
teamIds: {{- toYaml (keys $v.teamConfig) | nindent 10 }}
259-
- services: {{- concat $coreTeamServices $teamServices | toYaml | nindent 10 }}
260-
{{- if (gt (len $teamServices) 0) }}
261-
- name: blackbox
262-
svc: prometheus-blackbox-exporter
263-
port: 9115
264-
{{- end }}
237+
- ../values/team-ns/team-ns.gotmpl
265238
{{- end }}

helmfile.d/snippets/derived.gotmpl

+3
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,11 @@ environments:
154154
oidcBaseUrlBackchannel: {{ $oidcBaseUrlBackchannel}}
155155
oidcWellKnownUrl: {{ $oidcWellKnownUrl }}
156156
oidcWellKnownUrlBackchannel: {{ $oidcWellKnownBackchannel}}
157+
authDomain: {{ printf "auth.%s" $domainSuffix }}
158+
consoleDomain: {{ printf "console.%s" $domainSuffix }}
157159
giteaDomain: {{ printf "gitea.%s" $domainSuffix }}
158160
keycloakDomain: {{ printf "keycloak.%s" $domainSuffix }}
161+
harborDomain: {{ printf "harbor.%s" $domainSuffix }}
159162
tlsSecretName: {{ $tlsSecretName }}
160163
apps:
161164
argocd:

0 commit comments

Comments
 (0)