Skip to content

Deployments: Docker/Helm/Kustomize quickstarts + demo agents#81

Merged
AbirAbbas merged 3 commits intomainfrom
santy/cube
Dec 17, 2025
Merged

Deployments: Docker/Helm/Kustomize quickstarts + demo agents#81
AbirAbbas merged 3 commits intomainfrom
santy/cube

Conversation

@santoshkumarradha
Copy link
Member

@santoshkumarradha santoshkumarradha commented Dec 17, 2025

Summary

Adds a complete set of “evaluate AgentField” deployment options with consistent docs across Docker Compose, Helm, and plain Kubernetes manifests (Kustomize). Includes runnable demo agents and clearer guidance around agent callback/public URLs (Docker vs Kubernetes).

What changed

Docker (local)

  • Updated deployments/docker/README.md with a quick start, execute examples, and VC validation steps.
  • Extended deployments/docker/docker-compose.yml with optional demo agents:
    • demo-go-agent (default)
    • demo-python-agent (enabled via Compose profile python-demo)
  • Added Dockerfiles for demo agents:
    • deployments/docker/Dockerfile.demo-go-agent
    • deployments/docker/Dockerfile.demo-python-agent

Helm (Kubernetes)

  • Added a Helm chart under deployments/helm/agentfield that installs:
    • Control plane (UI + REST API + gRPC service port)
    • Optional PostgreSQL (pgvector) for production-like storage
    • Optional demo agents (Go + Python)
  • Added values.yaml + values.schema.json and a recommended quick start in deployments/helm/agentfield/README.md.
  • Chart defaults AGENTFIELD_CONFIG_FILE=/dev/null so installs work without requiring a mounted config file.

Kubernetes (Kustomize)

  • Added a Kustomize base + overlays:
    • deployments/kubernetes/overlays/python-demo (recommended; installs the Python SDK from PyPI at startup)
    • deployments/kubernetes/overlays/local-demo (Go demo agent; requires a custom image)
    • deployments/kubernetes/overlays/postgres-demo (PostgreSQL + Go demo agent; production-like storage)
  • Updated deployments/kubernetes/README.md with quickstart, wait-for-ready commands, and VC checks.

Control plane config + docs polish

  • Added mapstructure tags to config structs so Viper config/env loading is more reliable for nested keys.
  • Added TestLoadConfig_VCRequirementsFromConfigFile to validate features.did.vc_requirements.* loads from YAML.
  • Updated docs/ENVIRONMENT_VARIABLES.md with clearer Docker/K8s callback URL guidance and Postgres DSN examples.
  • Updated Python examples to read the control plane URL from AGENTFIELD_URL.

Testing

Executed locally:

  • cd control-plane && go test ./...
  • helm lint deployments/helm/agentfield
  • helm template agentfield deployments/helm/agentfield -n agentfield --set postgres.enabled=true --set controlPlane.storage.mode=postgres --set demoPythonAgent.enabled=true
  • kubectl kustomize deployments/kubernetes/overlays/python-demo
  • kubectl kustomize deployments/kubernetes/overlays/local-demo
  • kubectl kustomize deployments/kubernetes/overlays/postgres-demo
  • docker compose --profile python-demo up --build + curl /api/v1/execute/...
  • Full in-cluster verification (Ingress, persistence, auth)

TODO:

Notes for reviewers

  • The main functional code changes are limited to config struct tagging + one config-loading test; most of the PR is docs and manifests.
  • The python-demo overlay installs Python dependencies at container startup; clusters need outbound network access (or swap to a prebuilt image).

Refactors the Docker deployment documentation and configuration to improve clarity and flexibility for setting up control planes and agents.

Key changes include:
- Enhancing the README for Docker deployments with more detailed instructions for running agents in Docker, distinguishing between agents on the host and agents within the same Docker Compose network.
- Adding specific guidance on using `host.docker.internal` for host-based agents and service names for agents within the same network.
- Introducing new Docker Compose services for a demo Go agent and a demo Python agent, enabling them to be run with Docker Compose profiles.
- Updating configuration options in `control-plane/internal/config/config.go` to include `mapstructure` tags, improving the flexibility of configuration loading.
- Adding a new test case `TestLoadConfig_VCRequirementsFromConfigFile` to verify loading VC requirements from a configuration file.
- Modifying the Python hello world example to use an environment variable for the AgentField server URL, making it more adaptable to different deployment scenarios.
- Updating the Dockerized README to include validation steps for execution paths and Verifiable Credentials (VCs).
Updates the README files for Docker, Helm, and Kubernetes deployments to improve clarity and provide more streamlined quick-start guides.

The changes include:
- Simplifying the Docker Compose setup instructions.
- Refining the Helm chart documentation to recommend PostgreSQL and the Python demo agent by default.
- Streamlining the Kubernetes manifests to suggest the Python demo agent overlay as a recommended starting point.
- Modifying the Python demo agent deployment in Kubernetes to directly install the AgentField SDK from PyPI instead of relying on a pre-built local image. This simplifies the local development workflow for the Python agent.
Adds instructions for waiting for demo agents to become ready and for building/loading the Go demo agent image with Minikube.

Also includes an example of how to use the API key when authentication is enabled.

Updates the control plane deployment configuration to default `AGENTFIELD_CONFIG_FILE` to `/dev/null`.

Adjusts the kustomization file for the postgres demo overlay to use the standard `patches` key.
@santoshkumarradha santoshkumarradha changed the title K8/helm Guide and example Deployments: Docker/Helm/Kustomize quickstarts + demo agents Dec 17, 2025
@santoshkumarradha santoshkumarradha marked this pull request as ready for review December 17, 2025 18:35
@AbirAbbas AbirAbbas merged commit b6b0cd3 into main Dec 17, 2025
16 checks passed
@AbirAbbas AbirAbbas deleted the santy/cube branch December 17, 2025 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants