github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/helm/burrow/templates/deployments.yaml (about) 1 {{- $workDir := printf "/work" }} 2 {{- $refDir := printf "/ref" }} 3 {{- $keysDir := printf "/keys" }} 4 {{- $burrowImage := include "burrow.image" . }} 5 {{- $restoreImage := include "restore.image" . }} 6 {{- range $index, $val := $.Values.validators }} 7 {{- $nodeNumber := printf "%03d" $index }} 8 --- 9 apiVersion: apps/v1 10 kind: Deployment 11 metadata: 12 labels: 13 app: {{ template "burrow.name" $ }} 14 chart: {{ template "burrow.chart" $ }} 15 heritage: {{ $.Release.Service }} 16 release: {{ $.Release.Name }} 17 nodeNumber: {{ $nodeNumber | quote }} 18 name: {{ template "burrow.fullname" $ }}-{{ $nodeNumber }} 19 spec: 20 replicas: 1 21 selector: 22 matchLabels: 23 app: {{ template "burrow.name" $ }} 24 release: {{ $.Release.Name }} 25 nodeNumber: {{ $nodeNumber | quote }} 26 template: 27 metadata: 28 {{- if (or $.Values.podAnnotations $.Values.config.RPC.Metrics.Enabled) }} 29 annotations: 30 {{- if $.Values.config.RPC.Metrics.Enabled }} 31 prometheus.io/scrape: "true" 32 prometheus.io/port: {{ $.Values.config.RPC.Metrics.ListenPort | quote }} 33 prometheus.io/path: {{ $.Values.config.RPC.Metrics.MetricsPath }} 34 {{- end }} 35 {{- if $.Values.podAnnotations }} 36 {{ toYaml $.Values.podAnnotations | indent 8 }} 37 {{- end }} 38 {{- end }} 39 labels: 40 app: {{ template "burrow.name" $ }} 41 release: {{ $.Release.Name }} 42 nodeNumber: {{ $nodeNumber | quote }} 43 {{- if $.Values.podLabels }} 44 {{ toYaml $.Values.podLabels | indent 8 }} 45 {{- end }} 46 spec: 47 initContainers: 48 - name: init-keys 49 image: busybox 50 imagePullPolicy: IfNotPresent 51 workingDir: {{ $keysDir }} 52 volumeMounts: 53 - name: keys-dir 54 mountPath: {{ $keysDir }} 55 - name: work-dir 56 mountPath: {{ $workDir }} 57 command: 58 - 'sh' 59 - '-xc' 60 - |- 61 mkdir -p {{ $workDir }}/.burrow/config && \ 62 cp node_key.json {{ $workDir }}/.burrow/config/node_key.json && \ 63 chmod 600 {{ $workDir }}/.burrow/config/node_key.json 64 {{- if $.Values.restore.enabled }} 65 - name: retrieve 66 image: {{ $restoreImage | quote }} 67 imagePullPolicy: {{ $.Values.restore.image.pullPolicy }} 68 workingDir: {{ $workDir }} 69 command: 70 - {{ $.Values.restore.command }} 71 args: 72 {{ toYaml $.Values.restore.args | indent 10 }} 73 volumeMounts: 74 - name: work-dir 75 mountPath: {{ $workDir }} 76 - name: restore 77 image: {{ $burrowImage | quote }} 78 imagePullPolicy: {{ $.Values.image.pullPolicy }} 79 workingDir: {{ $workDir }} 80 command: 81 - burrow 82 args: 83 - restore 84 - --config 85 - "{{ $refDir }}/burrow.json" 86 - --genesis 87 - "{{ $refDir }}/genesis.json" 88 - --silent 89 - --address 90 - {{ $val.address | quote }} 91 - --moniker 92 - {{ printf "%s-validator-%s" $.Values.organization $nodeNumber | quote }} 93 - dumpFile 94 volumeMounts: 95 - mountPath: {{ $workDir }} 96 name: work-dir 97 - mountPath: {{ $refDir }} 98 name: ref-dir 99 {{- end }} 100 containers: 101 - name: node 102 image: {{ $burrowImage | quote }} 103 imagePullPolicy: {{ $.Values.image.pullPolicy }} 104 workingDir: {{ $workDir }} 105 command: 106 - burrow 107 args: 108 - start 109 - --config 110 - "{{ $refDir }}/burrow.json" 111 - --genesis 112 - "{{ $refDir }}/genesis.json" 113 - --address 114 - {{ $val.address | quote }} 115 - --moniker 116 - {{ printf "%s-validator-%s" $.Values.organization $nodeNumber | quote }} 117 {{- if (and $.Values.peer.ingress.enabled (not (eq (len $.Values.peer.ingress.hosts) 0))) }} 118 - --external-address 119 - "{{ $nodeNumber }}.{{ index $.Values.peer.ingress.hosts 0 }}:{{ $.Values.config.Tendermint.ListenPort }}" 120 {{- end }} 121 {{- range $key, $value := $.Values.extraArgs }} 122 - --{{ $key }}={{ $value }} 123 {{- end }} 124 env: 125 {{- include "settings" $ | indent 10 }} 126 volumeMounts: 127 - name: ref-dir 128 mountPath: {{ $refDir }} 129 - name: work-dir 130 mountPath: {{ $workDir }} 131 - name: keys-dir 132 mountPath: {{ $keysDir }}/data 133 - name: keys-dir-names 134 mountPath: {{ $keysDir }}/names 135 ports: 136 - name: peer 137 protocol: TCP 138 containerPort: {{ $.Values.config.Tendermint.ListenPort }} 139 {{- if $.Values.config.RPC.GRPC.Enabled }} 140 - name: grpc 141 protocol: TCP 142 containerPort: {{ $.Values.config.RPC.GRPC.ListenPort }} 143 {{- end }} 144 {{- if $.Values.config.RPC.Info.Enabled }} 145 - name: info 146 protocol: TCP 147 containerPort: {{ $.Values.config.RPC.Info.ListenPort }} 148 {{- end }} 149 {{- if $.Values.config.RPC.Metrics.Enabled }} 150 - name: metrics 151 protocol: TCP 152 containerPort: {{ $.Values.config.RPC.Metrics.ListenPort }} 153 {{- end }} 154 {{- if not $.Values.chain.testing }} 155 {{- if $.Values.livenessProbe.enabled }} 156 livenessProbe: 157 httpGet: 158 path: {{ $.Values.livenessProbe.path }} 159 port: info 160 scheme: HTTP 161 initialDelaySeconds: {{ $.Values.livenessProbe.initialDelaySeconds }} 162 timeoutSeconds: {{ $.Values.livenessProbe.timeoutSeconds }} 163 periodSeconds: {{ $.Values.livenessProbe.periodSeconds }} 164 {{- end }} 165 {{- if $.Values.readinessProbe.enabled }} 166 readinessProbe: 167 httpGet: 168 path: {{ $.Values.readinessProbe.path }} 169 port: info 170 scheme: HTTP 171 initialDelaySeconds: {{ $.Values.readinessProbe.initialDelaySeconds }} 172 {{- end }} 173 {{- end }} 174 {{- if $.Values.resources }} 175 resources: 176 {{ toYaml $.Values.resources | indent 12 }} 177 {{- end }} 178 restartPolicy: Always 179 volumes: 180 - name: ref-dir 181 projected: 182 sources: 183 - configMap: 184 name: {{ template "burrow.fullname" $ }}-config 185 - configMap: 186 name: {{ template "burrow.fullname" $ }}-genesis 187 - name: keys-dir 188 projected: 189 sources: 190 - secret: 191 name: {{ template "burrow.fullname" $ }}-keys-{{ $nodeNumber }} 192 - name: keys-dir-names 193 emptyDir: {} 194 - name: work-dir 195 {{- if $.Values.persistence.enabled }} 196 persistentVolumeClaim: 197 claimName: {{ template "burrow.fullname" $ }}-{{ $nodeNumber }} 198 {{- else }} 199 emptyDir: {} 200 {{- end }} 201 securityContext: 202 fsGroup: 101 203 runAsUser: 1000 204 {{- if $.Values.affinity }} 205 affinity: 206 {{ toYaml $.Values.affinity | indent 8 }} 207 {{- end }} 208 {{- if $.Values.nodeSelector }} 209 nodeSelector: 210 {{ toYaml $.Values.nodeSelector | indent 8 }} 211 {{- end }} 212 {{- if $.Values.tolerations }} 213 tolerations: 214 {{ toYaml $.Values.tolerations | indent 8 }} 215 {{- end }} 216 {{- end }}