{{- if .Values.proverBroker.enabled }} apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "aztec-network.fullname" . }}-prover-broker labels: {{- include "aztec-network.labels" . | nindent 4 }} spec: replicas: {{ .Values.proverBroker.replicas }} selector: matchLabels: {{- include "aztec-network.selectorLabels" . | nindent 6 }} app: prover-broker {{- if not .Values.storage.localSsd }} volumeClaimTemplates: - metadata: name: prover-broker-data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: {{ .Values.proverBroker.storageSize }} {{- end }} template: metadata: labels: {{- include "aztec-network.selectorLabels" . | nindent 8 }} app: prover-broker spec: {{- if .Values.network.gke }} nodeSelector: local-ssd: "{{ .Values.storage.localSsd }}" node-type: network {{- end }} {{- if .Values.network.public }} serviceAccountName: {{ include "aztec-network.fullname" . }}-node hostNetwork: true dnsPolicy: ClusterFirstWithHostNet {{- include "aztec-network.publicAntiAffinity" . | nindent 6 }} {{- end }} volumes: - name: config emptyDir: {} - name: prover-broker-data emptyDir: {} - name: scripts configMap: name: {{ include "aztec-network.fullname" . }}-scripts initContainers: {{- include "aztec-network.serviceAddressSetupContainer" . | nindent 8 }} - name: wait-for-prover-node {{- include "aztec-network.image" . | nindent 10 }} command: - /bin/bash - -c - | source /shared/config/service-addresses cat /shared/config/service-addresses volumeMounts: - name: config mountPath: /shared/config containers: - name: prover-broker {{- include "aztec-network.image" . | nindent 10 }} volumeMounts: - name: config mountPath: /shared/config - name: prover-broker-data mountPath: {{ .Values.proverBroker.dataDir }} command: - "/bin/bash" - "-c" - | source /shared/config/service-addresses && \ node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start --prover-broker env: - name: K8S_POD_UID valueFrom: fieldRef: fieldPath: metadata.uid - name: K8S_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: OTEL_SERVICE_NAME value: prover-broker - name: K8S_NAMESPACE_NAME valueFrom: fieldRef: fieldPath: metadata.namespace - name: NODE_OPTIONS value: "--max-old-space-size={{ .Values.proverBroker.maxOldSpaceSize}}" - name: AZTEC_PORT value: "{{ .Values.proverBroker.service.nodePort }}" - name: LOG_LEVEL value: "{{ .Values.proverBroker.logLevel }}" - name: LOG_JSON value: "1" - name: PROVER_BROKER_POLL_INTERVAL_MS value: "{{ .Values.proverBroker.pollIntervalMs }}" - name: PROVER_BROKER_JOB_TIMEOUT_MS value: "{{ .Values.proverBroker.jobTimeoutMs }}" - name: PROVER_BROKER_JOB_MAX_RETRIES value: "{{ .Values.proverBroker.jobMaxRetries }}" - name: DATA_DIRECTORY value: "{{ .Values.proverBroker.dataDir }}" - name: DATA_STORE_MAP_SIZE_KB value: "{{ .Values.storage.dataStoreMapSize }}" - name: OTEL_RESOURCE_ATTRIBUTES value: service.name={{ .Release.Name }},service.namespace={{ .Release.Namespace }},service.version={{ .Chart.AppVersion }},environment={{ .Values.environment | default "production" }} - name: USE_GCLOUD_OBSERVABILITY value: "{{ .Values.telemetry.useGcloudObservability }}" - name: OTEL_EXCLUDE_METRICS value: "{{ .Values.telemetry.excludeMetrics }}" resources: {{- toYaml .Values.proverBroker.resources | nindent 12 }} volumes: - name: scripts configMap: name: {{ include "aztec-network.fullname" . }}-scripts - name: config emptyDir: {} {{- if .Values.storage.localSsd }} - name: prover-broker-data emptyDir: {} {{ else }} - name: prover-broker-data persistentVolumeClaim: claimName: prover-broker-data {{- end }} {{- end }} --- # Headless service for StatefulSet DNS entries apiVersion: v1 kind: Service metadata: name: {{ include "aztec-network.fullname" . }}-prover-broker labels: {{- include "aztec-network.labels" . | nindent 4 }} app: prover-broker spec: type: ClusterIP selector: {{- include "aztec-network.selectorLabels" . | nindent 4 }} app: prover-broker ports: - port: {{ .Values.proverBroker.service.nodePort }} name: node