mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
- Add StatefulSet discovery fallback for kubectl-deployed fleets (non-Helm) - Add in-cluster mode: auto-detect pod ServiceAccount, skip kubeconfig fetch - Add list_fleets_incluster() for direct K8s API fleet discovery - Add get_statefulsets() to HelmDeployer for kubectl-based fleet listing - Make helm_revision optional (null for non-Helm fleets) - Add Lux devnet network (chain_id 96370), fix testnet chain_id (96368) - Add in-cluster self-detection for /v1/infra/clusters endpoint - Fix kubeconfig fetch: use raw HTTP (pydo can't deserialize YAML), doctl fallback - Install kubectl in API Dockerfile for fleet management operations
29 lines
872 B
Docker
29 lines
872 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM python:3.12-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Install system dependencies + kubectl for fleet management
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
curl \
|
|
&& curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
|
|
&& install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
|
|
&& rm kubectl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install uv for faster dependency installation
|
|
RUN pip install uv
|
|
|
|
# Copy project files
|
|
COPY pyproject.toml README.md ./
|
|
COPY bootnode/ bootnode/
|
|
|
|
# Install dependencies
|
|
# Hanzo SDKs are optional - in K8s, the KMS operator injects secrets as env vars
|
|
RUN uv pip install --system -e .
|
|
|
|
# Run the application
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "bootnode.main:app", "--host", "0.0.0.0", "--port", "8000"]
|