Files
zeekay b7534970e5 feat: initial Hanzo Bridge white-label shim
White-label tenant shim for the canonical bridge — bridge.hanzo.network.

The shim composes the OSS upstream (ghcr.io/luxfi/bridge:v1.1.39) and
ships:

- tenant.yaml — Hanzo Bridge declarative config (brand=Hanzo Bridge,
  IAM=hanzo.id, KMS=kms.hanzo.ai, network=Hanzo Mainnet chainId 36963,
  pq=strict-pq, chains=eth/btc/sol/ton/xrp/dot/hanzo).
- Dockerfile — FROM upstream + COPY tenant.yaml + --tenant-config pin.
- contracts/tenant.json + Deploy.sh — wraps @luxfi/standard v1.7.5's
  DeployTenant.s.sol with the Hanzo manifest.
- k8s/ — Deployment, Service, IngressRoute (bridge.hanzo.network),
  ConfigMap, Namespace, Kustomization.
- tenant_test.go — go test imports luxfi/bridge/pkg/tenant.Load and
  validates tenant.yaml.
- .github/workflows/build.yml — semver-tag-gated GHCR push via the
  hanzoai org's hanzo-build-linux-amd64 ARC pool.

Tests: GOWORK=off go test ./... → PASS.
2026-05-28 01:45:12 -07:00

82 lines
2.0 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: hanzo-bridge
namespace: hanzo-bridge
labels:
app.kubernetes.io/name: hanzo-bridge
app.kubernetes.io/component: bridge
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app.kubernetes.io/name: hanzo-bridge
template:
metadata:
labels:
app.kubernetes.io/name: hanzo-bridge
app.kubernetes.io/component: bridge
spec:
containers:
- name: bridge
image: ghcr.io/hanzoai/bridge-shim:v0.1.0
imagePullPolicy: IfNotPresent
args:
- --tenant-config=/etc/bridge/tenant.yaml
ports:
- name: http
containerPort: 8080
protocol: TCP
env:
- name: BRIDGE_TENANT_CONFIG
value: /etc/bridge/tenant.yaml
volumeMounts:
- name: tenant-config
mountPath: /etc/bridge
readOnly: true
- name: data
mountPath: /var/lib/hanzo-bridge
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 30
periodSeconds: 30
volumes:
- name: tenant-config
configMap:
name: hanzo-bridge-tenant
- name: data
persistentVolumeClaim:
claimName: hanzo-bridge-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hanzo-bridge-data
namespace: hanzo-bridge
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi