fork download
  1. import re
  2.  
  3. text = """apiVersion: extensions/v1beta1
  4. kind: Deployment
  5. metadata:
  6. name: {{ template "fullname" . }}
  7. labels:
  8. app: {{ template "fullname" . }}
  9. chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
  10. release: "{{ .Release.Name }}"
  11. heritage: "{{ .Release.Service }}"
  12. spec:
  13. replicas: {{ .Values.replicas }}
  14. strategy:
  15. type: RollingUpdate
  16. rollingUpdate:
  17. maxSurge: 1
  18. maxUnavailable: 1
  19. minReadySeconds: 5
  20. template:
  21. metadata:
  22. labels:
  23. name: {{ template "fullname" . }}
  24. app: {{ template "fullname" . }}
  25. spec:
  26. {{- if .Values.pvc.enabled }}
  27. volumes:
  28. - name: {{ template "fullname" . }}
  29. persistentVolumeClaim:
  30. claimName: {{ template "claimname" . }}
  31. {{- end }}
  32. {{- if .Values.k8swait.enabled }}
  33. serviceAccountName: {{ template "fullname" . }}-admin
  34. initContainers:
  35. - env:
  36. - name: CLUSTER
  37. value: "{{ .Values.k8swait.parameters.cluster}}"
  38. - name: NAMESPACE
  39. value: "{{ .Release.Namespace }}"
  40. - name: RESOURCE
  41. value: "{{ .Values.k8swait.parameters.resource}}"
  42. - name: RNAME
  43. value: "{{ .Values.k8swait.job.jobname }}"
  44. - name: TIMEOUT
  45. value: "{{ .Values.k8swait.parameters.timeout}}"
  46. - name: FREQUENCE
  47. value: "{{ .Values.k8swait.parameters.frequence}}"
  48. name: {{ .Values.k8swait.parameters.name}}
  49. image: "{{ .Values.global.registry1 }}/{{ .Values.k8swait.repo }}:{{ .Values.k8swait.tag }}"
  50. resources:
  51. limits:
  52. cpu: "{{ .Values.resources.limits.cpu }}"
  53. memory: "{{ .Values.resources.limits.memory }}"
  54. requests:
  55. cpu: "{{ .Values.resources.requests.cpu }}"
  56. memory: "{{ .Values.resources.requests.memory }}"
  57. {{- end }}
  58. securityContext:
  59. runAsUser: 1000
  60. fsGroup: 1000
  61. containers:
  62. - name: {{ template "fullname" . }}
  63. image: "{{ .Values.global.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  64. imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
  65. ports:
  66. - name: http
  67. containerPort: 9000
  68. {{- if .Values.pvc.enabled }}
  69. image: "{{ .Values.global.registry1 }}/{{ .Values.k8swait.repo }}:{{ .Values.k8swait.tag }}"
  70. volumeMounts:
  71. - mountPath: /BACKUP
  72. name: "{{ template "fullname" . }}"
  73.  
  74. {{- end }}"""
  75.  
  76. start_if = r'{{-?\s*if\s*[^}]+}}' # {{- if }}
  77. end_if = r'{{-?\s*end\s*}}' # {{- end }}
  78. regex = re.compile(f'{start_if}(.*?){end_if}', flags=re.DOTALL)
  79.  
  80. matches = [m.group(0) for m in regex.finditer(text) if 'image: ' in m.group(1)]
  81.  
  82. for match in matches:
  83. print(match)
  84. print()
  85.  
Success #stdin #stdout 0.03s 63940KB
stdin
Standard input is empty
stdout
{{- if .Values.k8swait.enabled }}
      serviceAccountName: {{ template "fullname" . }}-admin
      initContainers:
        - env:
            - name: CLUSTER
              value: "{{ .Values.k8swait.parameters.cluster}}"
            - name: NAMESPACE
              value: "{{ .Release.Namespace }}"
            - name: RESOURCE
              value: "{{ .Values.k8swait.parameters.resource}}"
            - name: RNAME
              value: "{{ .Values.k8swait.job.jobname }}"
            - name: TIMEOUT
              value: "{{ .Values.k8swait.parameters.timeout}}"
            - name: FREQUENCE
              value: "{{ .Values.k8swait.parameters.frequence}}"
          name: {{ .Values.k8swait.parameters.name}}
          image: "{{ .Values.global.registry1 }}/{{ .Values.k8swait.repo }}:{{ .Values.k8swait.tag }}"
          resources:
            limits:
              cpu: "{{ .Values.resources.limits.cpu }}"
              memory: "{{ .Values.resources.limits.memory }}"
            requests:
              cpu: "{{ .Values.resources.requests.cpu }}"
              memory: "{{ .Values.resources.requests.memory }}"
{{- end }}
()
{{- if .Values.pvc.enabled }}
        image: "{{ .Values.global.registry1 }}/{{ .Values.k8swait.repo }}:{{ .Values.k8swait.tag }}"
        volumeMounts:
          - mountPath: /BACKUP
            name: "{{ template "fullname" . }}"

{{- end }}
()