1+ {%- from " metalk8s/repo/macro.sls" import build_image_name with context % }
2+
3+ {%- set shell_ui_image = build_image_name(' shell-ui' ) % }
4+
5+ {%- set shell_ui_cp = salt.metalk8s_kubernetes.get_object(
6+ kind = ' ScalityUI' ,
7+ apiVersion = ' ui.scality.com/v1alpha1' ,
8+ namespace = ' metalk8s-ui' ,
9+ name = ' shell-ui-cp' ,
10+ )
11+ % }
12+
13+ {%- if shell_ui_cp is none % }
14+
15+ Create ScalityUI for control plane:
16+ metalk8s_kubernetes.object_present:
17+ - manifest:
18+ apiVersion: ui.scality.com/ v1alpha1
19+ kind: ScalityUI
20+ metadata:
21+ name: shell- ui- cp
22+ namespace: metalk8s- ui
23+ labels:
24+ app.kubernetes.io/ name: shell- ui- cp
25+ app.kubernetes.io/ managed- by: salt
26+ app.kubernetes.io/ part- of: metalk8s
27+ heritage: metalk8s
28+ spec:
29+ networks:
30+ ingressClassName: nginx- control- plane
31+ productName: MetalK8s
32+ image: {{ shell_ui_image }}
33+ auth:
34+ clientId: control- plane- ui
35+ kind: OIDC
36+ providerLogout: true
37+ providerUrl: " /oidc"
38+ redirectUrl: " {{ salt.metalk8s_network.get_control_plane_ingress_endpoint() }} /"
39+ responseType: code
40+ scopes: openid email profile
41+ navbar:
42+ main:
43+ - internal:
44+ kind: metalk8s- ui
45+ view: platform
46+ groups: [metalk8s:admin]
47+ - internal:
48+ kind: metalk8s- ui
49+ view: alerts
50+ groups: [metalk8s:admin]
51+ {%- else % }
52+
53+ Update ScalityUI for control plane:
54+ metalk8s_kubernetes.object_updated:
55+ - name: shell- ui- cp
56+ - kind: ScalityUI
57+ - apiVersion: ui.scality.com/ v1alpha1
58+ - namespace: metalk8s- ui
59+ - patch:
60+ spec:
61+ image: {{ shell_ui_image }}
62+ auth:
63+ redirectUrl: " {{ salt.metalk8s_network.get_control_plane_ingress_endpoint() }} /"
64+ - content_type: application/ merge- patch+ json
65+ {%- endif % }
66+
67+
68+ {%- set shell_ui_wp = salt.metalk8s_kubernetes.get_object(
69+ kind = ' ScalityUI' ,
70+ apiVersion = ' ui.scality.com/v1alpha1' ,
71+ namespace = ' metalk8s-ui' ,
72+ name = ' shell-ui-wp' ,
73+ )
74+ % }
75+
76+ {%- if shell_ui_wp is none % }
77+ Create ScalityUI for workload plane:
78+ metalk8s_kubernetes.object_present:
79+ - manifest:
80+ apiVersion: ui.scality.com/ v1alpha1
81+ kind: ScalityUI
82+ metadata:
83+ name: shell- ui- wp
84+ namespace: metalk8s- ui
85+ labels:
86+ app.kubernetes.io/ name: shell- ui- wp
87+ app.kubernetes.io/ managed- by: salt
88+ app.kubernetes.io/ part- of: metalk8s
89+ heritage: metalk8s
90+ spec:
91+ networks:
92+ ingressClassName: nginx
93+ productName: MetalK8s
94+ image: {{ shell_ui_image }}
95+ auth:
96+ clientId: control- plane- ui
97+ kind: OIDC
98+ providerLogout: true
99+ providerUrl: " /oidc"
100+ redirectUrl: " {{ salt.metalk8s_network.get_control_plane_ingress_endpoint() }} /"
101+ responseType: code
102+ scopes: openid profile email groups offline_access audience:server:client_id:oidc- auth- client
103+ navbar:
104+ main:
105+ - internal:
106+ kind: metalk8s- ui
107+ view: platform
108+ groups: [metalk8s:admin]
109+ - internal:
110+ kind: metalk8s- ui
111+ view: alerts
112+ groups: [metalk8s:admin]
113+ {%- else % }
114+
115+ Update ScalityUI for workload plane:
116+ metalk8s_kubernetes.object_updated:
117+ - name: shell- ui- wp
118+ - kind: ScalityUI
119+ - apiVersion: ui.scality.com/ v1alpha1
120+ - namespace: metalk8s- ui
121+ - patch:
122+ spec:
123+ image: {{ shell_ui_image }}
124+ auth:
125+ redirectUrl: " {{ salt.metalk8s_network.get_control_plane_ingress_endpoint() }} /"
126+ - content_type: application/ merge- patch+ json
127+ {%- endif % }
0 commit comments