Skip to content

Commit 3f012cf

Browse files
srodenhuisdennisvankekemsvcAPLBot
authored
feat: add Kubeflow Pipelines (#579)
* feat: add kfp * fix: logo name * fix: full app name * fix: apits * feat: alfa chip * fix: pret * fix: isAlpha --------- Co-authored-by: Dennis van Kekem <38350840+dennisvankekem@users.noreply.github.com> Co-authored-by: svcAPLBot <174728082+svcAPLBot@users.noreply.github.com>
1 parent 43617e7 commit 3f012cf

File tree

6 files changed

+102
-51
lines changed

6 files changed

+102
-51
lines changed

core.yaml

Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ k8s:
33
namespaces:
44
- name: argocd
55
app: argocd
6+
disableIstioInjection: true
67
- name: cert-manager
78
disableIstioInjection: true
89
- name: cnpg-system
@@ -18,26 +19,20 @@ k8s:
1819
disablePolicyChecks: true
1920
- name: external-dns
2021
disableIstioInjection: true
21-
- name: external-secrets
22-
disableIstioInjection: true
2322
- name: falco
2423
disableIstioInjection: true
2524
disablePolicyChecks: true
2625
- name: harbor
2726
app: harbor
28-
- name: gatekeeper-system
29-
app: gatekeeper
27+
- name: apl-harbor-operator
3028
disableIstioInjection: true
3129
- name: gitea
32-
- name: gitea-operator
30+
- name: apl-gitea-operator
3331
disableIstioInjection: true
3432
- name: grafana
3533
app: grafana
3634
- name: istio-system
3735
disableIstioInjection: true
38-
- name: istio-operator
39-
istio-operator-managed: Reconcile
40-
istio-injection: disabled
4136
- name: httpbin
4237
app: httpbin
4338
- name: ingress
@@ -50,6 +45,8 @@ k8s:
5045
app: jaeger
5146
disableIstioInjection: true
5247
- name: keycloak
48+
- name: apl-keycloak-operator
49+
disableIstioInjection: true
5350
- name: kiali
5451
app: kiali
5552
- name: kiali-operator
@@ -59,12 +56,24 @@ k8s:
5956
app: knative
6057
disablePolicyChecks: true
6158
disableIstioInjection: true
59+
- name: knative-operator
60+
app: knative
61+
disablePolicyChecks: true
62+
disableIstioInjection: true
63+
- name: kfp
64+
app: kubeflow-pipelines
65+
disablePolicyChecks: true
66+
disableIstioInjection: true
6267
- name: kured
6368
app: kured
6469
disableIstioInjection: true
6570
- name: kyverno
6671
app: kyverno
6772
disableIstioInjection: true
73+
- name: thanos
74+
app: thanos
75+
disableIstioInjection: true
76+
disablePolicyChecks: true
6877
- name: tekton-pipelines
6978
app: tekton
7079
disableIstioInjection: true
@@ -87,16 +96,9 @@ k8s:
8796
disablePolicyChecks: true
8897
- name: monitoring
8998
disableIstioInjection: true
90-
disablePolicyChecks: true
91-
- name: opa-exporter
92-
disableIstioInjection: true
93-
disablePolicyChecks: true
9499
- name: otomi
95100
- name: otomi-operator
96101
disableIstioInjection: true
97-
- name: cluster-overprovisioner
98-
app: cluster-overprovisioner
99-
disableIstioInjection: true
100102
- name: rabbitmq
101103
app: rabbitmq
102104
disableIstioInjection: true
@@ -113,6 +115,7 @@ k8s:
113115
- name: velero
114116
app: velero
115117
disablePolicyChecks: true
118+
disableIstioInjection: true
116119
- name: otomi-pipelines
117120
app: tekton
118121
disableIstioInjection: true
@@ -173,13 +176,9 @@ adminApps:
173176
auth: true
174177
- name: external-dns
175178
tags: [ingress, security, tls]
176-
- name: external-secrets
177-
tags: [secrets, security, tls]
178179
- name: falco
179180
tags: [security]
180181
deps: [prometheus, grafana]
181-
- name: gatekeeper
182-
tags: [security, policies, observability]
183182
- name: gitea
184183
tags: [git]
185184
isShared: true
@@ -202,10 +201,6 @@ adminApps:
202201
- authorization
203202
type: public
204203
auth: true
205-
shortcuts:
206-
- title: NGINX
207-
description: NGINX ingress controller metrics
208-
path: /d/nginx/nginx-ingress-controller?orgId=1&refresh=5s
209204
- name: harbor
210205
tags: [security]
211206
isShared: true
@@ -259,13 +254,9 @@ adminApps:
259254
ownHost: true
260255
ingress:
261256
- namespace: keycloak
262-
svc: keycloak-service
257+
svc: keycloak
263258
type: public
264259
port: 8080
265-
shortcuts:
266-
- title: Account
267-
description: Edit your account settings.
268-
path: /realms/otomi/account/
269260
- name: kiali
270261
tags: [tracing, telemetry, observability]
271262
deps: [istio, prometheus]
@@ -281,6 +272,16 @@ adminApps:
281272
- name: knative
282273
tags: [serverless, functions]
283274
deps: [istio]
275+
- name: kubeflow-pipelines
276+
tags: [ai, ml]
277+
ownHost: true
278+
isShared: true
279+
ingress:
280+
- svc: ml-pipeline-ui
281+
namespace: kfp
282+
port: 80
283+
type: public
284+
auth: true
284285
- name: kured
285286
tags: [security]
286287
- name: tekton
@@ -295,21 +296,20 @@ adminApps:
295296
auth: true
296297
removeRequestHeaders:
297298
- authorization
299+
- name: thanos
300+
tags: [metrics, observability]
301+
ownHost: true
302+
ingress:
303+
- svc: thanos-query
304+
port: 9090
305+
namespace: thanos
306+
type: public
307+
auth: true
298308
- name: loki
299309
tags: [logging, telemetry, observability]
300-
deps: [grafana, prometheus, minio]
310+
deps: [grafana, prometheus]
301311
useHost: grafana
302312
path: /explore?orgId=1&left=%7B"datasource":"loki","queries":%5B%7B"refId":"A"%7D%5D,"range":%7B"from":"now-1h","to":"now"%7D%7D
303-
shortcuts:
304-
- title: Ingress logs
305-
description: All logs generated in the "ingress" namespace
306-
path: /explore?orgId=1&left=%5B"now-1h","now","Loki",%7B"expr":"%7Bnamespace%3D%5C"ingress%5C"%7D","refId":"A"%7D%5D
307-
- title: OWASP violations
308-
description: All OWASP rule violations
309-
path: /explore?orgId=1&left=%5B"now-1h","now","Loki",%7B"expr":"%7Bnamespace%3D%5C"ingress%5C"%7D%20%7C%3D%5C"ModSecurity:%20%5C""%7D%5D
310-
- title: Gatekeeper violations
311-
description: Kube API violations logged by OPA gatekepeer
312-
path: /explore?orgId=1&left=%5B"now-1h","now","Loki",%7B"expr":"%7Bnamespace%3D%5C"gatekeeper-system%5C"%7D%20%7C%3D%5C"Policy:%20%5C""%7D%5D
313313
- name: minio
314314
tags: [storage, backup]
315315
ownHost: true
@@ -321,7 +321,7 @@ adminApps:
321321
auth: true
322322
removeRequestHeaders:
323323
- authorization
324-
- name: otomi
324+
- name: console
325325
hide: true
326326
isShared: true
327327
ownHost: true
@@ -335,6 +335,17 @@ adminApps:
335335
namespace: otomi
336336
type: public
337337
auth: true
338+
- name: api # Used by any client that do not support cookies
339+
hide: true
340+
isShared: true
341+
ownHost: true
342+
ingress:
343+
- svc: otomi-api
344+
namespace: otomi
345+
type: public
346+
# RequestAuthentication and AuthorizationPolicy ensure Authorization header validation
347+
auth: false
348+
338349
- name: prometheus
339350
tags: [metrics, observability]
340351
ownHost: true
@@ -350,7 +361,7 @@ adminApps:
350361
ownHost: true
351362
- name: tempo
352363
tags: [tracing]
353-
deps: [prometheus, grafana, minio]
364+
deps: [prometheus, grafana]
354365
useHost: grafana
355366
path: /explore?orgId=1&left=%7B"datasource":"tempo","queries":%5B%7B"refId":"A","datasource":%7B"type":"tempo","uid":"tempo"%7D,"queryType":"clear","limit":20%7D%5D,"range":%7B"from":"now-1h","to":"now"%7D%7D
356367
- name: otel
@@ -368,6 +379,7 @@ adminApps:
368379
teamApps:
369380
- name: alertmanager
370381
ownHost: true
382+
path: /#/alerts?silenced=false&inhibited=false&active=true&filter=%7Bnamespace%3D"team-#TEAM#"%7D
371383
ingress:
372384
- svc: po-alertmanager
373385
hasPrefix: true
@@ -388,14 +400,6 @@ teamApps:
388400
- name: loki
389401
useHost: grafana
390402
path: /explore?orgId=1&left=%7B"datasource":"loki","queries":%5B%7B"refId":"A","expr":"","queryType":"range","datasource":%7B"type":"loki","uid":"loki"%7D%7D%5D,"range":%7B"from":"now-1h","to":"now"%7D%7D
391-
- name: prometheus
392-
ownHost: true
393-
ingress:
394-
- svc: po-prometheus
395-
hasPrefix: true
396-
port: 9090
397-
type: public
398-
auth: true
399403
- name: tekton
400404
ownHost: true
401405
ingress:
@@ -405,4 +409,4 @@ teamApps:
405409
type: public
406410
auth: true
407411
removeRequestHeaders:
408-
- authorization
412+
- authorization
Lines changed: 19 additions & 0 deletions
Loading

src/components/AppCard.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export default function ({
101101
toggleApp,
102102
isDeprecated,
103103
isBeta,
104+
isAlpha,
104105
openModal,
105106
}: any): React.ReactElement {
106107
const { classes, cx } = useStyles()
@@ -156,6 +157,16 @@ export default function ({
156157
</Box>
157158
)}
158159

160+
{isAlpha && (
161+
<Box>
162+
<Chip
163+
className={cx(classes.chip, isLight ? classes.chipLight : classes.chipDark)}
164+
label='ALPHA'
165+
variant='outlined'
166+
/>
167+
</Box>
168+
)}
169+
159170
{isDeprecated && (
160171
<Box>
161172
<Chip className={cx(classes.chip, classes.chipDeprecated)} label='DEPRECATED' variant='outlined' />

src/components/Apps.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,11 @@ export default function Apps({ teamId, apps, teamSettings, setAppState, objSetti
169169

170170
const out = (items) =>
171171
items?.map((item) => {
172-
const { enabled, externalUrl, id, logo, logoAlt, isDeprecated, isBeta } = getAppData(session, teamId, item)
172+
const { enabled, externalUrl, id, logo, logoAlt, isDeprecated, isAlpha, isBeta } = getAppData(
173+
session,
174+
teamId,
175+
item,
176+
)
173177
return (
174178
<Grid item xs={12} sm={6} md={4} lg={4} key={id}>
175179
<AppCard
@@ -188,6 +192,7 @@ export default function Apps({ teamId, apps, teamSettings, setAppState, objSetti
188192
toggleApp={() => toggleApp(id)}
189193
isDeprecated={isDeprecated}
190194
isBeta={isBeta}
195+
isAlpha={isAlpha}
191196
openModal={() => setOpenModal(id)}
192197
/>
193198
</Grid>

src/redux/otomiApi.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7347,6 +7347,7 @@ export type GetSettingsApiResponse = /** status 200 The request is successful. *
73477347
tempo?: string
73487348
gitea?: string
73497349
thanos?: string
7350+
kfp?: string
73507351
}
73517352
}
73527353
type: 'linode'
@@ -7609,6 +7610,7 @@ export type EditSettingsApiArg = {
76097610
tempo?: string
76107611
gitea?: string
76117612
thanos?: string
7613+
kfp?: string
76127614
}
76137615
}
76147616
type: 'linode'

src/utils/data.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@ const getBetaApp = (session, appId) => {
109109
return app?.isBeta
110110
}
111111

112+
const getAlphaApp = (session, appId) => {
113+
const {
114+
core: { appsInfo },
115+
}: any = session
116+
const app = appsInfo[appId]
117+
return app?.isAlpha
118+
}
119+
112120
const getDeprecationInfo = (session, appId) => {
113121
const {
114122
core: { appsInfo },
@@ -169,6 +177,7 @@ export const getAppData = (
169177
const deps = coreApp.deps
170178
const isDeprecated = getDeprecatedApp(session, appId)
171179
const isBeta = getBetaApp(session, appId)
180+
const isAlpha = getAlphaApp(session, appId)
172181
const deprecationInfo = getDeprecationInfo(session, appId)
173182
const replacementUrl = `https://${deprecationInfo?.replacement}.${cluster.domainSuffix}${deprecationInfo?.path ?? ''}`
174183
return {
@@ -186,6 +195,7 @@ export const getAppData = (
186195
hasShortcuts: !!ingress || useHost,
187196
isDeprecated,
188197
isBeta,
198+
isAlpha,
189199
deprecationInfo,
190200
replacementUrl,
191201
}

0 commit comments

Comments
 (0)