mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
fix: dashboard deploy, 5-of-3 MPC cluster, pnpm migration
- Dockerfile: use pnpm exclusively (was falling back to npm) - StatefulSet: 5 replicas with threshold 3 (was 3 replicas, threshold 2) - deploy.yml: fix namespace typo (lux-bridge -> lux-mpc), add mpc-api restart - Migrate dashboard from npm to pnpm (pnpm-lock.yaml replaces package-lock.json) Deploying latest code fixes auth (middleware.ts enforces lux_mpc_session), dynamic data fetching (dashboard/page.tsx calls API), and Geist font loading (font files are included in the Next.js build output).
This commit is contained in:
@@ -155,10 +155,12 @@ jobs:
|
||||
|
||||
- name: Restart deployments to pick up new images
|
||||
run: |
|
||||
kubectl rollout restart statefulset/mpc-node -n lux-bridge
|
||||
kubectl rollout restart statefulset/mpc-node -n lux-mpc
|
||||
kubectl rollout restart deployment/mpc-api -n lux-mpc
|
||||
kubectl rollout restart deployment/mpc-dashboard -n lux-mpc
|
||||
|
||||
- name: Wait for rollout
|
||||
run: |
|
||||
kubectl rollout status statefulset/mpc-node -n lux-bridge --timeout=300s
|
||||
kubectl rollout status statefulset/mpc-node -n lux-mpc --timeout=300s
|
||||
kubectl rollout status deployment/mpc-api -n lux-mpc --timeout=180s
|
||||
kubectl rollout status deployment/mpc-dashboard -n lux-mpc --timeout=180s
|
||||
|
||||
@@ -35,6 +35,7 @@ logs/
|
||||
# Dashboard build
|
||||
dashboard/node_modules/
|
||||
dashboard/.next/
|
||||
dashboard/package-lock.json
|
||||
|
||||
# Environment
|
||||
.env
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
FROM node:20-alpine AS deps
|
||||
WORKDIR /app
|
||||
COPY package.json pnpm-lock.yaml* package-lock.json* ./
|
||||
RUN corepack enable && corepack prepare pnpm@latest --activate || true
|
||||
RUN if [ -f pnpm-lock.yaml ]; then pnpm install --frozen-lockfile; \
|
||||
elif [ -f package-lock.json ]; then npm ci; \
|
||||
else npm install; fi
|
||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
FROM node:20-alpine AS builder
|
||||
WORKDIR /app
|
||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
@@ -17,7 +16,7 @@ ARG NEXT_PUBLIC_IAM_CLIENT_ID=lux-mpc
|
||||
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
|
||||
ENV NEXT_PUBLIC_IAM_URL=$NEXT_PUBLIC_IAM_URL
|
||||
ENV NEXT_PUBLIC_IAM_CLIENT_ID=$NEXT_PUBLIC_IAM_CLIENT_ID
|
||||
RUN npm run build
|
||||
RUN pnpm build
|
||||
|
||||
FROM node:20-alpine AS runner
|
||||
WORKDIR /app
|
||||
|
||||
Generated
-6224
File diff suppressed because it is too large
Load Diff
Generated
+3819
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ metadata:
|
||||
app.kubernetes.io/part-of: lux-mpc
|
||||
spec:
|
||||
serviceName: mpc-node-headless
|
||||
replicas: 3
|
||||
replicas: 5
|
||||
podManagementPolicy: Parallel
|
||||
selector:
|
||||
matchLabels:
|
||||
@@ -35,7 +35,7 @@ spec:
|
||||
|
||||
# Build peer list (all other nodes)
|
||||
PEERS=""
|
||||
for i in 0 1 2; do
|
||||
for i in 0 1 2 3 4; do
|
||||
if [ "$i" != "$INDEX" ]; then
|
||||
PEERS="${PEERS}node${i}@mpc-node-${i}.mpc-node-headless.lux-mpc.svc:9651,"
|
||||
fi
|
||||
@@ -66,14 +66,14 @@ spec:
|
||||
NODE_ID="node${INDEX}"
|
||||
|
||||
PEERS=""
|
||||
for i in 0 1 2; do
|
||||
for i in 0 1 2 3 4; do
|
||||
if [ "$i" != "$INDEX" ]; then
|
||||
PEERS="${PEERS} --peer node${i}@mpc-node-${i}.mpc-node-headless.lux-mpc.svc:9651"
|
||||
fi
|
||||
done
|
||||
|
||||
# Build command
|
||||
CMD="mpcd start --mode consensus --node-id ${NODE_ID} --listen :9651 --api :9800 --data /data/mpc --threshold 2 ${PEERS}"
|
||||
CMD="mpcd start --mode consensus --node-id ${NODE_ID} --listen :9651 --api :9800 --data /data/mpc --threshold 3 ${PEERS}"
|
||||
|
||||
# Node 0 also serves the Dashboard API
|
||||
if [ "$INDEX" = "0" ]; then
|
||||
|
||||
Reference in New Issue
Block a user