@@ -293,10 +293,18 @@ spec:
293293echo " $pvc_yaml " >> " $deployment_file "
294294
295295# Add the new volume to the volumes section
296- sed -i ' 0,/^[[:space:]]*volumes:/s//&\
297- \ - name: trader-data\
298- \ persistentVolumeClaim:\
299- \ claimName: trader-data/' " $deployment_file "
296+ temp_file=$( mktemp)
297+ entered_volumes=false
298+ while IFS= read -r line; do
299+ echo " $line " >> " $temp_file "
300+ if [[ " $line " == * " volumes:" * && " $entered_volumes " != true ]]; then
301+ echo " - name: trader-data" >> " $temp_file "
302+ echo " persistentVolumeClaim:" >> " $temp_file "
303+ echo " claimName: trader-data" >> " $temp_file "
304+ entered_volumes=true
305+ fi
306+ done < " $deployment_file "
307+ mv " $temp_file " " $deployment_file "
300308
301309# Find the line number where the container named 'aea' is defined
302310container_line=$( awk ' /containers:/ {flag=1} flag && /name: aea/ {print NR; exit}' " $deployment_file " )
309317# Check if the container 'aea' already has a volumeMounts section
310318volume_mounts_line=$( awk -v start=" $container_line " ' NR>start && /^[[:space:]]*volumeMounts:/ {print NR; exit}' " $deployment_file " )
311319
320+ temp_file=$( mktemp)
321+ line_number=0
322+ entered_volume_mounts=false
312323if [ -z " $volume_mounts_line " ]; then
313324 # No volumeMounts section; add it
314- sed -i " $(( container_line+ 1 )) i \ volumeMounts:\n\ - name: trader-data\n\ mountPath: /data/" " $deployment_file "
325+ search_after_line=$(( container_line - 1 ))
326+ while IFS= read -r line; do
327+ echo " $line " >> " $temp_file "
328+ line_number=$(( line_number + 1 ))
329+ if [[ " $line " == * " name: aea" * && " $line_number " -gt " $search_after_line " && " $entered_volume_mounts " != true ]]; then
330+ echo " volumeMounts:" >> " $temp_file "
331+ echo " - name: trader-data" >> " $temp_file "
332+ echo " mountPath: /data/" >> " $temp_file "
333+ entered_volume_mounts=true
334+ fi
335+ done < " $deployment_file "
315336else
316337 # volumeMounts section exists; append to it
317- sed -i " $(( volume_mounts_line+ 1 )) i \ - name: trader-data\n\ mountPath: /data/" " $deployment_file "
338+ search_after_line=$(( volume_mounts_line - 1 ))
339+ while IFS= read -r line; do
340+ echo " $line " >> " $temp_file "
341+ line_number=$(( line_number + 1 ))
342+ if [[ " $line " == * " volumeMounts:" * && " $line_number " -gt " $search_after_line " && " $entered_volume_mounts " != true ]]; then
343+ echo " - name: trader-data" >> " $temp_file "
344+ echo " mountPath: /data/" >> " $temp_file "
345+ entered_volume_mounts=true
346+ fi
347+ done < " $deployment_file "
318348fi
349+ mv " $temp_file " " $deployment_file "
319350
320351}
321352
0 commit comments