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 }}