blob: 0b17a0fb4dc6cd43e96dad82c6b620c1cb90ed3e [file] [log] [blame]
Hyunsun Moon06f98552019-08-15 13:44:47 -06001{{/*
2Copyright 2018-present Open Networking Foundation
3Copyright 2018 Intel Corporation
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16*/}}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070017---
18apiVersion: v1
19kind: ServiceAccount
20metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060021 name: spgwc
22 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060023{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070024---
25kind: Role
26apiVersion: rbac.authorization.k8s.io/v1
27metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060028 name: spgwc
29 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060030{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070031rules:
32- apiGroups: [""]
33 resources: ["pods"]
34 verbs: ["get"]
35---
36kind: RoleBinding
37apiVersion: rbac.authorization.k8s.io/v1
38metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060039 name: spgwc
40 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060041{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070042roleRef:
43 apiGroup: rbac.authorization.k8s.io
44 kind: Role
Hyunsun Moon06f98552019-08-15 13:44:47 -060045 name: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070046subjects:
47- kind: ServiceAccount
Hyunsun Moon06f98552019-08-15 13:44:47 -060048 name: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070049---
50apiVersion: v1
51kind: ConfigMap
52metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060053 name: spgwc
54 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060055{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070056data:
57 launch.sh: |
58 #!/bin/bash -xe
59
60 RUN_DIR=${RUN_DIR:-"/opt/cp"}
61 mkdir -p $RUN_DIR/config
62 cd $RUN_DIR/config
63 cp /etc/cp/config/{adc_rules.cfg,cp_config.cfg,interface.cfg,meter_profile.cfg,pcc_rules.cfg,sdf_rules.cfg} .
64 sed -i "s/CP_ADDR/$CP_ADDR/g" interface.cfg
65 sed -i "s/DP_ADDR/$DP_ADDR/g" interface.cfg
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060066 sed -i "s/DP_PORT/$DP_PORT/g" interface.cfg
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070067 . cp_config.cfg
68 ngic_controlplane $EAL_ARGS -- $APP_ARGS
69 cp_config.cfg: |
70 if [ ! -d "/dev/hugepages" ]; then
71 MEMORY="--no-huge -m $((MEM_LIMIT-1024))"
72 fi
73 SHARED_DIR="/opt/cp/config/shared"
74 if [ -d ${SHARED_DIR} ]; then
75 while [ ! -f ${SHARED_DIR}/SGW_S1U_IP ]; do echo "Waiting for SGW_S1U_IP"; sleep 2; done
76 SGW_S1U_IP=$(cat ${SHARED_DIR}/SGW_S1U_IP)
77 fi
Hyunsun Moone5c66fe2019-08-02 13:11:46 -060078 until dig +short ${MME_S11_IP} | grep -v -e '^$' > /dev/null; do
79 echo "Waiting for MME";
80 sleep 5;
81 done
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070082
83 MGMT_INFO="-s ${CP_ADDR} -m ${MME_S11_IP} -w ${SGW_S1U_IP}"
84 APN_INFO="-i ${IP_POOL_IP} -p ${IP_POOL_MASK} -a ${APN}"
85 SPGW_CFG="-d 03 -l 2 -r 7.7.7.7 -g 6.6.6.6 -v 4.4.4.4 -u 5.5.5.5"
86 APP_ARGS="${MGMT_INFO} ${APN_INFO} ${SPGW_CFG} ${TEID_INFO}"
87
88 CORES="-c $(taskset -p $$ | awk '{print $NF}')"
89 DEVICES="--no-pci"
90 EAL_ARGS="${CORES} ${MEMORY} ${DEVICES}"
91 interface.cfg: |
92 [0]
93 dp_comm_ip = DP_ADDR
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060094 dp_comm_port = DP_PORT
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -070095 cp_comm_ip = CP_ADDR
96 cp_comm_port = 21
97 adc_rules.cfg: |
98 [GLOBAL]
99 NUM_ADC_RULES = 5
100
101 ;FORMAT ::
102 ;ADC_TYPE : [ DOMAIN = 0 | IP = 1 | IP PREFIX =2 ]
103 ;
104 ;if ADC_TYPE = 0
105 ; DOMAIN
106 ;elseif ADC_TYPE = 1
107 ; IP
108 ;elseif ADC_TYPE = 2
109 ; IP
110 ; PREFIX
111 ;else
112 ; NONE
113 ;
114 ;NOTE :
115 ;Rules defined first have a higher priority, unless DROP is specified
116 ;(i.e. multiple rules for the same IP).
117 ;When specifying DROP with an IP address, use a prefix of 32 to prevent DNS
118 ;results from overwriting rule.
119
120
121 [ADC_RULE_1]
122 ADC_TYPE = 1
123 IP = 13.1.1.111
124
125 [ADC_RULE_2]
126 ADC_TYPE = 2
127 IP = 13.1.1.0
128 PREFIX = 24
129
130 [ADC_RULE_3]
131 ADC_TYPE = 1
132 IP = 13.1.1.112
133 PREFIX = 24
134
135 [ADC_RULE_4]
136 ADC_TYPE = 0
137 DOMAIN = www.example.gov
138
139 [ADC_RULE_5]
140 ADC_TYPE = 0
141 DOMAIN = www.drop_example.com
142 meter_profile.cfg: |
143 [GLOBAL]
144 NUM_OF_IDX = 7
145
146 [ENTRY_1]
147 ;Committed Information Rate (CIR). Measured in bytes per second.
148 ;MBR is mapped into CIR, convert MBR from bits to Bytes and set CIR.
149 CIR = 2342400
150 ;Committed Burst Size unit = Bytes
151 CBS = 5856
152 ;Excess Burst Size unit = Bytes
153 EBS = 11712
154 ;Meter profile index. Refer this index in static_pcc.cfg to set AMBR/MBR
155 MTR_PROFILE_IDX = 3
156
157 [ENTRY_2]
158 ;1200 = 1756800
159 ;1400 = 2049600
160 ;1600 = 2342400
161 CIR = 2342400
162 CBS = 5856
163 EBS = 11712
164 MTR_PROFILE_IDX = 4
165
166 [ENTRY_3]
167 ; QCI5,QCI7 15.571kbps = 1947 B
168 CIR = 2342400
169 CBS = 5856
170 EBS = 11712
171 MTR_PROFILE_IDX = 5
172
173 [ENTRY_4]
174 ; QCI1, 44kbps = 5500 B
175 CIR = 2342400
176 CBS = 5856
177 EBS = 11712
178 MTR_PROFILE_IDX = 6
179
180 [ENTRY_5]
181 ; QCI9, 31.143kbps = 3893 B
182 CIR = 2342400
183 CBS = 5856
184 EBS = 11712
185 MTR_PROFILE_IDX = 7
186
187 [ENTRY_6]
188 ; 128B, 7pps
189 CIR = 2342400
190 CBS = 512
191 EBS = 1024
192 MTR_PROFILE_IDX = 8
193
194 [ENTRY_7]
195 ; 128B, 2pps
196 CIR = 2342400
197 CBS = 512
198 EBS = 1024
199 MTR_PROFILE_IDX = 9
200
201 pcc_rules.cfg: |
202 [GLOBAL]
203 NUM_PCC_FILTERS = 9
204 ;To config AMBR/MBR values refer meter_profile.cfg. specify only the
205 ;meter profile index to be set here.
206 UL_AMBR_MTR_PROFILE_IDX = 3
207 DL_AMBR_MTR_PROFILE_IDX = 4
208
209 ;default filter - must be first for now (until DP doesn't install any filters)
210 ;associated with default adc rule
211 [PCC_FILTER_1]
212 RULE_NAME = DefaultRule
213 RATING_GROUP = 9
214 SERVICE_ID = 0
215 RULE_STATUS = 0
216 GATE_STATUS = 1
217 SESSION_CONT = 0
218 REPORT_LEVEL = 1
219 CHARGING_MODE = 0
220 METERING_METHOD = 0
221 MUTE_NOTIFY = 0
222 MONITORING_KEY = 0
223 SPONSOR_ID = 0
224 REDIRECT_INFO = 0
225 PRECEDENCE = 254
226 DROP_PKT_COUNT = 0
227 ;Specify the meter profile index from meter_profile.cfg
228 UL_MBR_MTR_PROFILE_IDX = 7
229 DL_MBR_MTR_PROFILE_IDX = 7
230 ;List of ADC filter indices
231 SDF_FILTER_IDX = 99998
232
233 [PCC_FILTER_2]
234 RULE_NAME = sdf_rule_1
235 RATING_GROUP = 5
236 SERVICE_ID = 0
237 RULE_STATUS = 0
238 GATE_STATUS = 1
239 SESSION_CONT = 0
240 REPORT_LEVEL = 2
241 CHARGING_MODE = 0
242 METERING_METHOD = 0
243 MUTE_NOTIFY = 0
244 MONITORING_KEY = 0
245 SPONSOR_ID = 0
246 REDIRECT_INFO = 0
247 PRECEDENCE = 1
248 DROP_PKT_COUNT = 0
249 UL_MBR_MTR_PROFILE_IDX = 5
250 DL_MBR_MTR_PROFILE_IDX = 5
251 ;List of SDF filter indices
252 SDF_FILTER_IDX = 1
253
254 [PCC_FILTER_3]
255 RULE_NAME = sdf_rule_2
256 RATING_GROUP = 1
257 SERVICE_ID = 0
258 RULE_STATUS = 0
259 GATE_STATUS = 1
260 SESSION_CONT = 0
261 REPORT_LEVEL = 3
262 CHARGING_MODE = 0
263 METERING_METHOD = 0
264 MUTE_NOTIFY = 0
265 MONITORING_KEY = 0
266 SPONSOR_ID = 0
267 REDIRECT_INFO = 0
268 PRECEDENCE = 18
269 DROP_PKT_COUNT = 0
270 UL_MBR_MTR_PROFILE_IDX = 6
271 DL_MBR_MTR_PROFILE_IDX = 6
272 ;List of SDF filter indices
273 SDF_FILTER_IDX = 2
274
275 [PCC_FILTER_4]
276 RULE_NAME = adc_rule_1
277 RATING_GROUP = Zero-Rate
278 SERVICE_ID = Internet
279 RULE_STATUS = 0
280 GATE_STATUS = 1
281 SESSION_CONT = 0
282 REPORT_LEVEL = 8
283 CHARGING_MODE = 0
284 METERING_METHOD = 0
285 MUTE_NOTIFY = 0
286 MONITORING_KEY = 0
287 REDIRECT_INFO = 0
288 SPONSOR_ID = Example
289 PRECEDENCE = 15
290 DROP_PKT_COUNT = 0
291 UL_MBR_MTR_PROFILE_IDX = 7
292 DL_MBR_MTR_PROFILE_IDX = 7
293 ;List of SDF filter indices
294 ADC_FILTER_IDX = 1
295
296 [PCC_FILTER_5]
297 RULE_NAME = adc_rule_2
298 RATING_GROUP = 0
299 SERVICE_ID = CIPA
300 RULE_STATUS = 0
301 GATE_STATUS = 1
302 SESSION_CONT = 0
303 REPORT_LEVEL = 9
304 CHARGING_MODE = 0
305 METERING_METHOD = 0
306 MUTE_NOTIFY = 0
307 MONITORING_KEY = 0
308 SPONSOR_ID = Example
309 REDIRECT_INFO = 0
310 SPONSOR_ID = Example
311 REDIRECT_INFO = 0
312 PRECEDENCE = 4
313 DROP_PKT_COUNT = 0
314 UL_MBR_MTR_PROFILE_IDX = 0
315 DL_MBR_MTR_PROFILE_IDX = 0
316 ;List of SDF filter indices
317 ADC_FILTER_IDX = 2
318
319 [PCC_FILTER_6]
320 RULE_NAME = sdf_rule_3
321 RATING_GROUP = 7
322 SERVICE_ID = 0
323 RULE_STATUS = 0
324 GATE_STATUS = 1
325 SESSION_CONT = 0
326 REPORT_LEVEL = 4
327 CHARGING_MODE = 0
328 METERING_METHOD = 0
329 MUTE_NOTIFY = 0
330 MONITORING_KEY = 0
331 SPONSOR_ID = 0
332 REDIRECT_INFO = 0
333 PRECEDENCE = 17
334 DROP_PKT_COUNT = 0
335 UL_MBR_MTR_PROFILE_IDX = 5
336 DL_MBR_MTR_PROFILE_IDX = 5
337 ;List of SDF filter indices
338 SDF_FILTER_IDX = 3
339
340 [PCC_FILTER_7]
341 RULE_NAME = adc_rule_3
342 RATING_GROUP = Zero-Rate
343 SERVICE_ID = Internet
344 RULE_STATUS = 0
345 GATE_STATUS = 1
346 SESSION_CONT = 0
347 REPORT_LEVEL = 5
348 CHARGING_MODE = 0
349 METERING_METHOD = 0
350 MUTE_NOTIFY = 0
351 MONITORING_KEY = 0
352 SPONSOR_ID = Example
353 REDIRECT_INFO = 0
354 PRECEDENCE = 210
355 DROP_PKT_COUNT = 0
356 UL_MBR_MTR_PROFILE_IDX = 7
357 DL_MBR_MTR_PROFILE_IDX = 7
358 ;List of SDF filter indices
359 ADC_FILTER_IDX = 4
360
361 [PCC_FILTER_8]
362 RULE_NAME = adc_rule_4
363 RATING_GROUP = Zero-Rate
364 SERVICE_ID = Management
365 RULE_STATUS = 0
366 GATE_STATUS = 1
367 SESSION_CONT = 0
368 REPORT_LEVEL = 6
369 CHARGING_MODE = 0
370 METERING_METHOD = 0
371 MUTE_NOTIFY = 0
372 MONITORING_KEY = 0
373 SPONSOR_ID = Example
374 REDIRECT_INFO = 0
375 PRECEDENCE = 200
376 DROP_PKT_COUNT = 0
377 UL_MBR_MTR_PROFILE_IDX = 7
378 DL_MBR_MTR_PROFILE_IDX = 7
379 ;List of SDF filter indices
380 ADC_FILTER_IDX = 12
381
382 [PCC_FILTER_9]
383 RULE_NAME = adc_rule_5
384 RATING_GROUP = Zero-Rate
385 SERVICE_ID = Provisioning
386 RULE_STATUS = 0
387 GATE_STATUS = 1
388 SESSION_CONT = 0
389 REPORT_LEVEL = 7
390 CHARGING_MODE = 0
391 METERING_METHOD = 0
392 MUTE_NOTIFY = 0
393 MONITORING_KEY = 0
394 SPONSOR_ID = Example
395 REDIRECT_INFO = 0
396 PRECEDENCE = 220
397 DROP_PKT_COUNT = 0
398 UL_MBR_MTR_PROFILE_IDX = 7
399 DL_MBR_MTR_PROFILE_IDX = 7
400 ;List of SDF filter indices
401 ADC_FILTER_IDX = 3
402 sdf_rules.cfg: |
403 [GLOBAL]
404 NUM_SDF_FILTERS = 4
405
406 [SDF_FILTER_1]
407 DIRECTION = downlink_only
408 IPV4_REMOTE = 13.2.1.113
409 IPV4_REMOTE_MASK = 255.255.255.0
410 PROTOCOL = 17
411 LOCAL_LOW_LIMIT_PORT = 0
412 LOCAL_HIGH_LIMIT_PORT = 65535
413 REMOTE_LOW_LIMIT_PORT = 0
414 REMOTE_HIGH_LIMIT_PORT = 65535
415
416 [SDF_FILTER_2]
417 DIRECTION = uplink_only
418 IPV4_LOCAL = 16.255.255.0
419 IPV4_LOCAL_MASK = 255.255.255.0
420 PROTOCOL = 17
421 LOCAL_LOW_LIMIT_PORT = 0
422 LOCAL_HIGH_LIMIT_PORT = 65535
423 REMOTE_LOW_LIMIT_PORT = 0
424 REMOTE_HIGH_LIMIT_PORT = 65535
425
426 [SDF_FILTER_3]
427 DIRECTION = downlink_only
428 IPV4_REMOTE = 130.10.0.0
429 IPV4_REMOTE_MASK = 255.255.0.0
430 PROTOCOL = 17
431 REMOTE_LOW_LIMIT_PORT = 5060
432 REMOTE_HIGH_LIMIT_PORT = 5060
433
434 [SDF_FILTER_4]
435 DIRECTION = uplink_only
436 IPV4_REMOTE = 103.1.0.0
437 IPV4_REMOTE_MASK = 255.255.0.0
438 PROTOCOL = 17
439 LOCAL_LOW_LIMIT_PORT = 17000
440 LOCAL_HIGH_LIMIT_PORT = 17010
441---
442apiVersion: v1
443kind: Service
444metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600445 name: spgwc
446 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600447{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700448spec:
449 selector:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600450{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700451 clusterIP: None
452 ports:
453 - name: s11
454 port: 2123
455 protocol: UDP
456 - name: cpdp
457 port: 21
458 protocol: UDP
459---
460apiVersion: apps/v1
461kind: StatefulSet
462metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600463 name: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700464 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600465{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700466spec:
467 replicas: 1
468 selector:
469 matchLabels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600470{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 6 }}
Hyunsun Moon06f98552019-08-15 13:44:47 -0600471 serviceName: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700472 template:
473 metadata:
474 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600475{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 8 }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700476 spec:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600477 {{- if .Values.nodeSelectors.enabled }}
478 nodeSelector:
479 {{ .Values.nodeSelectors.spgwc.label }}: {{ .Values.nodeSelectors.spgwc.value }}
480 {{- end }}
481 serviceAccountName: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700482 initContainers:
483 - name: init-spgwc
Hyunsun Moon06f98552019-08-15 13:44:47 -0600484 image: {{ .Values.images.tags.init }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700485 command: ["/bin/sh", "-co", "pipefail"]
486 args:
Hyunsun Moon2bed68b2019-07-19 17:15:35 -0600487 - until $(kubectl get pod -ojson spgwu-0 2>/dev/null | jq -r '.metadata.annotations["k8s.v1.cni.cncf.io/networks-status"]' | jq -r '.[] | select(.name=="s1u-net") | .ips[0]' > /opt/cp/config/shared/SGW_S1U_IP | [ -s /opt/cp/config/shared/SGW_S1U_IP ]);
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700488 do echo "waiting for SPGWU"; sleep 2; done
489 volumeMounts:
490 - name: shared-data
491 mountPath: /opt/cp/config/shared
492 containers:
493 - name: spgwc
Hyunsun Moon06f98552019-08-15 13:44:47 -0600494 image: {{ .Values.images.tags.spgwc }}
495 imagePullPolicy: {{ .Values.images.pullPolicy }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700496 stdin: true
497 tty: true
498 command: ["/opt/cp/scripts/launch.sh"]
499 env:
500 - name: MEM_LIMIT
501 valueFrom:
502 resourceFieldRef:
503 containerName: spgwc
504 resource: limits.memory
505 divisor: 1Mi
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700506 - name: CP_ADDR
507 valueFrom:
508 fieldRef:
509 fieldPath: status.podIP
510 - name: DP_ADDR
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600511 value: {{ .Values.config.spgwc.spgwu.addr | quote }}
512 - name: DP_PORT
513 value: {{ .Values.config.spgwc.spgwu.port | quote }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700514 - name: MME_S11_IP
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600515 value: {{ tuple "mme" "identity" . | include "omec-control-plane.endpoint_lookup" | quote }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700516 - name: APN
517 value: apn1
518 - name: IP_POOL_IP
519 value: "16.0.0.0"
520 - name: IP_POOL_MASK
521 value: "255.0.0.0"
Hyunsun Moon06f98552019-08-15 13:44:47 -0600522 {{- if .Values.resources.enabled }}
523 resources:
524{{ toYaml .Values.resources.spgwc | indent 10 }}
525 {{- end }}
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700526 volumeMounts:
527 - name: cp-script
528 mountPath: /opt/cp/scripts/launch.sh
529 subPath: launch.sh
530 - name: cp-config
531 mountPath: /etc/cp/config
532 - name: shared-data
533 mountPath: /opt/cp/config/shared
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700534 volumes:
535 - name: cp-script
536 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600537 name: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700538 defaultMode: 493
539 - name: cp-config
540 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600541 name: spgwc
Wei-Yu Chen0f12b9c2019-04-18 11:12:59 -0700542 defaultMode: 420
543 - name: shared-data
544 emptyDir: {}