Skip to content

Commit 531a341

Browse files
committed
Added central dashboard helm templates
Signed-off-by: kunal-511 <[email protected]>
1 parent 7d9ef4d commit 531a341

File tree

14 files changed

+812
-53
lines changed

14 files changed

+812
-53
lines changed

.github/workflows/helm_vs_kustomize_verification.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- tests/helm_install.sh
88
- .github/workflows/helm_vs_kustomize_verification.yaml
99
- apps/spark/spark-operator/**
10+
- apps/centraldashboard/**
1011
- common/cert-manager/**
1112
- experimental/helm/kubeflow/**
1213
- experimental/helm/scripts/**
@@ -19,7 +20,7 @@ jobs:
1920
timeout-minutes: 15
2021
strategy:
2122
matrix:
22-
component: [spark-operator, cert-manager]
23+
component: [spark-operator, cert-manager, centraldashboard, centraldashboard-istio, centraldashboard-kserve, centraldashboard-oauth2-proxy]
2324
fail-fast: false
2425

2526
steps:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{- if and .Values.centraldashboard.enabled .Values.centraldashboard.istio.enabled }}
2+
apiVersion: security.istio.io/v1beta1
3+
kind: AuthorizationPolicy
4+
metadata:
5+
name: central-dashboard
6+
namespace: {{ .Values.global.kubeflowNamespace }}
7+
labels:
8+
app: centraldashboard
9+
app.kubernetes.io/component: centraldashboard
10+
app.kubernetes.io/name: centraldashboard
11+
kustomize.component: centraldashboard
12+
spec:
13+
action: ALLOW
14+
rules:
15+
- from:
16+
- source:
17+
principals:
18+
- cluster.local/ns/{{ .Values.global.istioNamespace }}/sa/istio-ingressgateway-service-account
19+
selector:
20+
matchLabels:
21+
app: centraldashboard
22+
{{- end }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{- if .Values.centraldashboard.enabled }}
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: ClusterRole
4+
metadata:
5+
name: centraldashboard
6+
labels:
7+
app: centraldashboard
8+
app.kubernetes.io/component: centraldashboard
9+
app.kubernetes.io/name: centraldashboard
10+
kustomize.component: centraldashboard
11+
rules:
12+
- apiGroups:
13+
- ""
14+
resources:
15+
- events
16+
- namespaces
17+
- nodes
18+
verbs:
19+
- get
20+
- list
21+
- watch
22+
{{- end }}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{{- if .Values.centraldashboard.enabled }}
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: ClusterRoleBinding
4+
metadata:
5+
name: centraldashboard
6+
labels:
7+
app: centraldashboard
8+
app.kubernetes.io/component: centraldashboard
9+
app.kubernetes.io/name: centraldashboard
10+
kustomize.component: centraldashboard
11+
roleRef:
12+
apiGroup: rbac.authorization.k8s.io
13+
kind: ClusterRole
14+
name: centraldashboard
15+
subjects:
16+
- kind: ServiceAccount
17+
name: centraldashboard
18+
namespace: {{ .Values.global.kubeflowNamespace }}
19+
{{- end }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{- if .Values.centraldashboard.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: centraldashboard-parameters
6+
namespace: {{ .Values.global.kubeflowNamespace }}
7+
labels:
8+
app: centraldashboard
9+
app.kubernetes.io/component: centraldashboard
10+
app.kubernetes.io/name: centraldashboard
11+
kustomize.component: centraldashboard
12+
data:
13+
CD_CLUSTER_DOMAIN: {{ .Values.centraldashboard.config.clusterDomain | quote }}
14+
CD_USERID_HEADER: {{ .Values.centraldashboard.config.useridHeader | quote }}
15+
CD_USERID_PREFIX: {{ .Values.centraldashboard.config.useridPrefix | quote }}
16+
CD_REGISTRATION_FLOW: {{ .Values.centraldashboard.config.registrationFlow | quote }}
17+
CD_COLLECT_METRICS: {{ .Values.centraldashboard.config.collectMetrics | quote }}
18+
{{- end }}
Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
{{- if .Values.centraldashboard.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: centraldashboard-config
6+
namespace: {{ .Values.global.kubeflowNamespace }}
7+
labels:
8+
app: centraldashboard
9+
app.kubernetes.io/component: centraldashboard
10+
app.kubernetes.io/name: centraldashboard
11+
kustomize.component: centraldashboard
12+
data:
13+
settings: |-
14+
{
15+
"DASHBOARD_FORCE_IFRAME": true
16+
}
17+
{{- if .Values.centraldashboard.kserve.enabled }}
18+
links: |-
19+
{
20+
"menuLinks": [
21+
{
22+
"icon": "book",
23+
"link": "/jupyter/",
24+
"text": "Notebooks",
25+
"type": "item"
26+
},
27+
{
28+
"icon": "assessment",
29+
"link": "/tensorboards/",
30+
"text": "TensorBoards",
31+
"type": "item"
32+
},
33+
{
34+
"icon": "device:storage",
35+
"link": "/volumes/",
36+
"text": "Volumes",
37+
"type": "item"
38+
},
39+
{
40+
"icon": "kubeflow:katib",
41+
"link": "/katib/",
42+
"text": "Katib Experiments",
43+
"type": "item"
44+
},
45+
{
46+
"type": "item",
47+
"link": "/kserve-endpoints/",
48+
"text": "KServe Endpoints",
49+
"icon": "kubeflow:models"
50+
},
51+
{
52+
"icon": "kubeflow:pipeline-centered",
53+
"items": [
54+
{
55+
"link": "/pipeline/#/pipelines",
56+
"text": "Pipelines",
57+
"type": "item"
58+
},
59+
{
60+
"link": "/pipeline/#/experiments",
61+
"text": "Experiments",
62+
"type": "item"
63+
},
64+
{
65+
"link": "/pipeline/#/runs",
66+
"text": "Runs",
67+
"type": "item"
68+
},
69+
{
70+
"link": "/pipeline/#/recurringruns",
71+
"text": "Recurring Runs",
72+
"type": "item"
73+
},
74+
{
75+
"link": "/pipeline/#/artifacts",
76+
"text": "Artifacts",
77+
"type": "item"
78+
},
79+
{
80+
"link": "/pipeline/#/executions",
81+
"text": "Executions",
82+
"type": "item"
83+
}
84+
],
85+
"text": "Pipelines",
86+
"type": "section"
87+
}
88+
],
89+
"externalLinks": [],
90+
"documentationItems": [
91+
{
92+
"desc": "The Kubeflow website",
93+
"link": "https://www.kubeflow.org/",
94+
"text": "Kubeflow Website"
95+
},
96+
{
97+
"desc": "Documentation for Kubeflow Pipelines",
98+
"link": "https://www.kubeflow.org/docs/components/pipelines/",
99+
"text": "Kubeflow Pipelines Documentation"
100+
},
101+
{
102+
"desc": "Documentation for Kubeflow Notebooks",
103+
"link": "https://www.kubeflow.org/docs/components/notebooks/",
104+
"text": "Kubeflow Notebooks Documentation"
105+
},
106+
{
107+
"desc": "Documentation for Kubeflow Training Operator",
108+
"link": "https://www.kubeflow.org/docs/components/training/",
109+
"text": "Kubeflow Training Operator Documentation"
110+
},
111+
{
112+
"desc": "Documentation for Katib",
113+
"link": "https://www.kubeflow.org/docs/components/katib/",
114+
"text": "Katib Documentation"
115+
}
116+
],
117+
"quickLinks": [
118+
{
119+
"desc": "Kubeflow Notebooks",
120+
"link": "/jupyter/new",
121+
"text": "Create a new Notebook"
122+
},
123+
{
124+
"desc": "Kubeflow Pipelines",
125+
"link": "/pipeline/#/pipelines",
126+
"text": "Upload a Pipeline"
127+
},
128+
{
129+
"desc": "Pipelines",
130+
"link": "/pipeline/#/runs",
131+
"text": "View Pipeline Runs"
132+
}
133+
]
134+
}
135+
{{- else }}
136+
links: |-
137+
{
138+
"menuLinks": [
139+
{
140+
"icon": "book",
141+
"link": "/jupyter/",
142+
"text": "Notebooks",
143+
"type": "item"
144+
},
145+
{
146+
"icon": "assessment",
147+
"link": "/tensorboards/",
148+
"text": "TensorBoards",
149+
"type": "item"
150+
},
151+
{
152+
"icon": "device:storage",
153+
"link": "/volumes/",
154+
"text": "Volumes",
155+
"type": "item"
156+
},
157+
{
158+
"icon": "kubeflow:katib",
159+
"link": "/katib/",
160+
"text": "Katib Experiments",
161+
"type": "item"
162+
},
163+
{
164+
"icon": "kubeflow:pipeline-centered",
165+
"items": [
166+
{
167+
"link": "/pipeline/#/pipelines",
168+
"text": "Pipelines",
169+
"type": "item"
170+
},
171+
{
172+
"link": "/pipeline/#/experiments",
173+
"text": "Experiments",
174+
"type": "item"
175+
},
176+
{
177+
"link": "/pipeline/#/runs",
178+
"text": "Runs",
179+
"type": "item"
180+
},
181+
{
182+
"link": "/pipeline/#/recurringruns",
183+
"text": "Recurring Runs",
184+
"type": "item"
185+
},
186+
{
187+
"link": "/pipeline/#/artifacts",
188+
"text": "Artifacts",
189+
"type": "item"
190+
},
191+
{
192+
"link": "/pipeline/#/executions",
193+
"text": "Executions",
194+
"type": "item"
195+
}
196+
],
197+
"text": "Pipelines",
198+
"type": "section"
199+
}
200+
],
201+
"externalLinks": [],
202+
"documentationItems": [
203+
{
204+
"desc": "The Kubeflow website",
205+
"link": "https://www.kubeflow.org/",
206+
"text": "Kubeflow Website"
207+
},
208+
{
209+
"desc": "Documentation for Kubeflow Pipelines",
210+
"link": "https://www.kubeflow.org/docs/components/pipelines/",
211+
"text": "Kubeflow Pipelines Documentation"
212+
},
213+
{
214+
"desc": "Documentation for Kubeflow Notebooks",
215+
"link": "https://www.kubeflow.org/docs/components/notebooks/",
216+
"text": "Kubeflow Notebooks Documentation"
217+
},
218+
{
219+
"desc": "Documentation for Kubeflow Training Operator",
220+
"link": "https://www.kubeflow.org/docs/components/training/",
221+
"text": "Kubeflow Training Operator Documentation"
222+
},
223+
{
224+
"desc": "Documentation for Katib",
225+
"link": "https://www.kubeflow.org/docs/components/katib/",
226+
"text": "Katib Documentation"
227+
}
228+
],
229+
"quickLinks": [
230+
{
231+
"desc": "Kubeflow Notebooks",
232+
"link": "/jupyter/new",
233+
"text": "Create a new Notebook"
234+
},
235+
{
236+
"desc": "Kubeflow Pipelines",
237+
"link": "/pipeline/#/pipelines",
238+
"text": "Upload a Pipeline"
239+
},
240+
{
241+
"desc": "Pipelines",
242+
"link": "/pipeline/#/runs",
243+
"text": "View Pipeline Runs"
244+
}
245+
]
246+
}
247+
{{- end }}
248+
{{- end }}

0 commit comments

Comments
 (0)