A CI/CD system to build, containerize, and deploy AI agents at scale. Agents are packaged as Docker images, deployed via Helm charts, and (eventually) shipped through ArgoCD.
agentic-cicd/
├── agents/
│ └── small-llm-agent/ # Ollama + TinyLLaMA agent
│ ├── Dockerfile
│ ├── app/ # Python client for the Ollama API
│ ├── helm/ # Helm chart for this agent
│ ├── version.txt # Drives Docker image tag (semver)
│ └── TINYLLAMA.md # Model overview: capabilities & limits
├── infra/kind/ # Local Kind cluster config + nginx-ingress
├── .github/workflows/ # CI: build/push images, package/publish charts
├── CLAUDE.md # Guidance for Claude Code in this repo
└── DEPLOYMENT.md # Full Kind cluster deployment guide
A lightweight local LLM agent running TinyLLaMA (1.1B) via Ollama — built for minimal resource use on a laptop. See agents/small-llm-agent/README.md for local run instructions and TINYLLAMA.md for the model's capabilities and limitations.
Two GitHub Actions workflows drive the pipeline, both scoped to whichever agents/* folder changed:
build-and-push.yml— auto-discovers agents (byversion.txt), builds multi-arch (amd64/arm64) Docker images, and pushes them to Docker Hub tagged by semver +latest.release-charts.yml— packages each agent's Helm chart and publishes it to a Helm repository hosted on GitHub Pages (gh-pagesbranch).
Full walkthrough — Kind cluster setup, nginx-ingress, persistent storage, deploying the chart, and consuming the published chart as a client — lives in DEPLOYMENT.md.
Quick start once the cluster and ingress are up:
helm install small-llm-agent agents/small-llm-agent/helm \
-f agents/small-llm-agent/helm/values-dev.yaml \
--namespace small-llm-agent --create-namespace
curl http://small-llm-agent.localhost/api/tagsCI (build + chart publish) is working end-to-end for small-llm-agent, deployed and verified on a local Kind cluster. CD via ArgoCD is planned next.