github.com/smartcontractkit/chainlink-testing-framework/libs@v0.0.0-20240227141906-ec710b4eb1a3/charts/geth-prysm/templates/prysm-beacon.deployment.yaml (about) 1 apiVersion: apps/v1 2 kind: Deployment 3 metadata: 4 name: {{ .Release.Name }}-{{ .Values.prysm.beacon.name }} 5 spec: 6 selector: 7 matchLabels: 8 app: {{ .Release.Name }}-{{ .Values.prysm.beacon.name }} 9 template: 10 metadata: 11 labels: 12 app: {{ .Release.Name }}-{{ .Values.prysm.beacon.name }} 13 spec: 14 volumes: 15 - name: {{ .Release.Name }}-chain-state 16 persistentVolumeClaim: 17 claimName: {{ .Release.Name }}-{{ .Values.storage.claim }} 18 - name: {{ .Release.Name }}-geth-config 19 configMap: 20 name: {{ .Release.Name }}-geth-config 21 - name: {{ .Release.Name }}-prysm-config 22 configMap: 23 name: {{ .Release.Name }}-prysm-config 24 containers: 25 - name: {{ .Values.prysm.beacon.name }} 26 image: {{ .Values.prysm.beacon.image.repository }}:{{ .Values.prysm.beacon.image.tag }} 27 imagePullPolicy: {{ .Values.imagePullPolicy }} 28 args: 29 - "--datadir=/data/consensus/beacondata" 30 - "--min-sync-peers=0" 31 - "--genesis-state={{ .Values.prysm.shared.genesisFile }}" 32 - "--bootstrap-node=" 33 - "--chain-config-file={{ .Values.prysm.shared.configFile }}" 34 - "--contract-deployment-block=0" 35 - "--chain-id={{ .Values.general.networkId }}" 36 - "--rpc-host=0.0.0.0" 37 - "--grpc-gateway-host=0.0.0.0" 38 - "--execution-endpoint=http://{{ .Release.Name }}-{{ .Values.geth.name }}-svc:{{ .Values.geth.ports.execution }}" 39 - "--accept-terms-of-use" 40 - "--jwt-secret={{ .Values.shared.jwtSecretFile }}" 41 - "--suggested-fee-recipient={{ .Values.prysm.shared.feeRecipent }}" 42 - "--minimum-peers-per-subnet=0" 43 - "--enable-debug-rpc-endpoints" 44 - "--force-clear-db" 45 - "--interop-eth1data-votes" 46 resources: 47 requests: 48 memory: {{ .Values.prysm.beacon.resources.requests.memory }} 49 cpu: {{ .Values.prysm.beacon.resources.requests.cpu }} 50 limits: 51 memory: {{ .Values.prysm.beacon.resources.limits.memory }} 52 cpu: {{ .Values.prysm.beacon.resources.limits.cpu }} 53 ports: 54 - name: query-rpc 55 containerPort: {{ .Values.prysm.beacon.ports.query }} 56 - name: node-rpc 57 containerPort: {{ .Values.prysm.beacon.ports.node }} 58 - name: status 59 containerPort: {{ .Values.prysm.beacon.ports.status }} 60 volumeMounts: 61 - name: {{ .Release.Name }}-chain-state 62 mountPath: /data 63 - name: {{ .Release.Name }}-geth-config 64 mountPath: {{ .Values.shared.jwtSecretFile }} 65 subPath: jwtsecret 66 - name: {{ .Release.Name }}-prysm-config 67 mountPath: {{ .Values.prysm.shared.configFile }} 68 subPath: config.yml 69 # for some reason doesn't work, the pod is never ready :/ 70 # readinessProbe: 71 # httpGet: 72 # path: /healthz 73 # port: 8080 74 # initialDelaySeconds: 20 75 # periodSeconds: 5 76 # timeoutSeconds: 120 77 # livenessProbe: 78 # httpGet: 79 # path: /healthz 80 # port: 8080 81 # initialDelaySeconds: 5 82 # periodSeconds: 5 83 # timeoutSeconds: 5 84 # failureThreshold: 2 85 initContainers: 86 - name: {{ .Release.Name }}-wait-for-geth 87 image: {{ .Values.busybox.image.repository }}:{{ .Values.busybox.image.tag }} 88 imagePullPolicy: {{ .Values.imagePullPolicy }} 89 command: 90 - "/bin/sh" 91 - "-c" 92 - > 93 timeout 900 sh -c ' 94 start_time=$(date +%s) 95 while ! nc -z -v {{ .Release.Name }}-{{ .Values.geth.name }}-svc {{ .Values.geth.ports.execution }}; do 96 current_time=$(date +%s) 97 elapsed_time=$((current_time - start_time)) 98 remaining_time=$((900 - elapsed_time)) 99 echo "Waiting for Geth (Remaining time: $remaining_time seconds)..." 100 sleep 2 101 done'