Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/test-suite-e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,13 @@ jobs:
run: |
./fhevm-cli test random-subset
- name: Host listener poller test
working-directory: test-suite/fhevm
run: |
docker stop coprocessor-host-listener
./fhevm-cli test erc20
docker start coprocessor-host-listener
- name: Show logs on test failure
working-directory: test-suite/fhevm
if: always()
Expand Down
2 changes: 1 addition & 1 deletion charts/coprocessor/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: coprocessor
description: A helm chart to distribute and deploy Zama fhevm Co-Processor services
version: 0.7.6
version: 0.7.7
apiVersion: v2
keywords:
- fhevm
Expand Down
7 changes: 6 additions & 1 deletion charts/coprocessor/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
{{- default $hostListenerNameDefault .Values.hostListener.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "hostListenerPollerName" -}}
{{- $hostListenerPollerNameDefault := printf "%s-%s" .Release.Name "host-listener-poller" }}
{{- default $hostListenerPollerNameDefault .Values.hostListenerPoller.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "txSenderName" -}}
{{- $txSenderNameDefault := printf "%s-%s" .Release.Name "tx-sender" }}
{{- default $txSenderNameDefault .Values.txSender.nameOverride | trunc 63 | trimSuffix "-" -}}
Expand All @@ -26,4 +31,4 @@
{{- define "snsWorkerName" -}}
{{- $snsWorkerNameDefault := printf "%s-%s" .Release.Name "sns-worker" }}
{{- default $snsWorkerNameDefault .Values.zkProofWorker.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{{- if .Values.hostListenerPoller.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
name: {{ include "hostListenerPollerName" . }}
spec:
replicas: {{ .Values.hostListenerPoller.replicas }}
selector:
matchLabels:
app: coprocessor-host-listener-poller
{{- if .Values.hostListenerPoller.updateStrategy }}
strategy:
{{- toYaml .Values.hostListenerPoller.updateStrategy | nindent 4 }}
{{- end }}
template:
metadata:
labels:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
imagePullSecrets:
- name: registry-credentials
restartPolicy: Always
{{- if and .Values.hostListenerPoller.affinity .Values.hostListenerPoller.affinity.enabled }}
affinity:
{{ toYaml (omit .Values.hostListenerPoller.affinity "enabled") | indent 8 }}
{{- end }}
{{- if and .Values.hostListenerPoller.tolerations .Values.hostListenerPoller.tolerations.enabled }}
tolerations:
{{ toYaml .Values.hostListenerPoller.tolerations.items | indent 8 }}
{{- end }}
{{- if .Values.hostListenerPoller.serviceAccountName }}
serviceAccountName: {{ .Values.hostListenerPoller.serviceAccountName }}
{{- end }}
containers:
- name: coprocessor-host-listener-poller
image: {{ .Values.hostListenerPoller.image.name }}:{{ .Values.hostListenerPoller.image.tag }}
command: ["host_listener_poller"]
args:
{{ toYaml .Values.hostListenerPoller.args | nindent 12 }}
env:
{{ toYaml .Values.hostListenerPoller.env | nindent 12 }}
ports:
{{- range $portName, $portValue := .Values.hostListenerPoller.ports }}
- name: {{ $portName }}
containerPort: {{ $portValue }}
protocol: TCP
{{- end }}
resources:
requests:
cpu: {{ .Values.hostListenerPoller.resources.requests.cpu | default "100m" }}
memory: {{ .Values.hostListenerPoller.resources.requests.memory | default "256Mi" }}
limits:
cpu: {{ .Values.hostListenerPoller.resources.limits.cpu | default "500m" }}
memory: {{ .Values.hostListenerPoller.resources.limits.memory | default "512Mi" }}
{{- if and .Values.hostListenerPoller.probes .Values.hostListenerPoller.probes.liveness.enabled }}
livenessProbe:
{{ toYaml (omit .Values.hostListenerPoller.probes.liveness "enabled") | nindent 12 }}
{{- end }}
{{- if and .Values.hostListenerPoller.probes .Values.hostListenerPoller.probes.readiness.enabled }}
readinessProbe:
{{ toYaml (omit .Values.hostListenerPoller.probes.readiness "enabled") | nindent 12 }}
{{- end }}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{{- if .Values.hostListenerPoller.serviceMonitor.enabled -}}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
name: {{ include "hostListenerPollerName" . }}
spec:
selector:
matchLabels:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
endpoints:
- port: metrics
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{{- if .Values.hostListenerPoller.enabled }}
apiVersion: v1
kind: Service
metadata:
labels:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
name: {{ include "hostListenerPollerName" . }}
spec:
ports:
- name: metrics
port: {{ .Values.hostListenerPoller.ports.metrics }}
targetPort: metrics
- name: healthcheck
port: {{ .Values.hostListenerPoller.ports.healthcheck }}
targetPort: healthcheck
selector:
app: coprocessor-host-listener-poller
app.kubernetes.io/name: {{ include "hostListenerPollerName" . }}
type: ClusterIP
{{- end }}
85 changes: 85 additions & 0 deletions charts/coprocessor/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,91 @@ hostListener:
maxSurge: 1
maxUnavailable: 0

# -----------------------------------------------------------------------------
# Host Listener Poller
# -----------------------------------------------------------------------------
# Processes blockchain events from the host chain
hostListenerPoller:
enabled: false
nameOverride:

image:
name: ghcr.io/zama-ai/fhevm-coprocessor
tag: v0.10.0

replicas: 1

# Environment variables
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: coprocessor-db-url
key: coprocessor-db-url
- name: TENANT_API_KEY
valueFrom:
secretKeyRef:
name: coprocessor-api-key
key: coprocessor-api-key

# Command line arguments for the host listener poller
args:
- --database-url=$(DATABASE_URL)
- --coprocessor-api-key=$(TENANT_API_KEY)
- --url=$(ETHEREUM_RPC_HTTP_URL)
- --acl-contract-address=$(ACL_CONTRACT_ADDRESS)
- --tfhe-contract-address=$(FHEVM_EXECUTOR_CONTRACT_ADDRESS)
- --log-level=INFO
- --health-port=8080

# Service ports configuration
ports:
metrics: 9100
healthcheck: 8080

serviceMonitor:
enabled: false

serviceAccountName:

resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi

# Health check probes
probes:
liveness:
enabled: false
httpGet:
path: /liveness
port: healthcheck
initialDelaySeconds: 10
periodSeconds: 10
readiness:
enabled: false
httpGet:
path: /healthz
port: healthcheck
initialDelaySeconds: 5
periodSeconds: 10

affinity:
enabled: false

tolerations:
enabled: false
items: []

updateStrategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0

# -----------------------------------------------------------------------------
# Gateway Listener
# -----------------------------------------------------------------------------
Expand Down
Loading
Loading