helm install

This commit is contained in:
Harivansh Rathi 2026-02-07 20:05:55 -05:00
parent f3abdfe7b8
commit 44fe1e1f5c
4 changed files with 90 additions and 4 deletions

View file

@ -25,3 +25,23 @@ jobs:
- name: Test
run: go test ./...
helm-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Helm
uses: azure/setup-helm@v4
- name: Helm lint
run: helm lint chart/agentikube/
- name: Helm template
run: |
helm template agentikube chart/agentikube/ \
--namespace sandboxes \
--set storage.filesystemId=fs-test \
--set sandbox.image=test:latest \
--set compute.clusterName=test-cluster

View file

@ -1,4 +1,4 @@
.PHONY: build install clean fmt vet lint
.PHONY: build install clean fmt vet lint crds helm-lint helm-template
build:
go build -o agentikube ./cmd/agentikube
@ -16,3 +16,16 @@ vet:
go vet ./...
lint: fmt vet
crds:
./scripts/download-crds.sh
helm-lint:
helm lint chart/agentikube/
helm-template:
helm template agentikube chart/agentikube/ \
--namespace sandboxes \
--set storage.filesystemId=fs-test \
--set sandbox.image=test:latest \
--set compute.clusterName=test-cluster

View file

@ -3,7 +3,7 @@
[![Go Version](https://img.shields.io/github/go-mod/go-version/harivansh-afk/agentikube)](https://github.com/harivansh-afk/agentikube/blob/main/go.mod)
[![Release](https://img.shields.io/github/v/release/harivansh-afk/agentikube)](https://github.com/harivansh-afk/agentikube/releases/latest)
A small Go CLI that spins up isolated agent sandboxes on Kubernetes.
A Helm package used for spinning up isolated stateful agent sandboxes via k8 pods
<img width="1023" height="745" alt="image" src="https://github.com/user-attachments/assets/d62b6d99-b6bf-4ac3-9fb3-9b8373afbbec" />
@ -20,6 +20,31 @@ A small Go CLI that spins up isolated agent sandboxes on Kubernetes.
## Quick start
### Option A: Helm chart
```bash
# 1. Create your values file
cat > my-values.yaml <<EOF
compute:
clusterName: my-eks-cluster
storage:
filesystemId: fs-0123456789abcdef0
sandbox:
image: my-registry/sandbox:latest
EOF
# 2. Install
helm install agentikube ./chart/agentikube \
-n sandboxes --create-namespace \
-f my-values.yaml
# 3. Create a sandbox and jump in
agentikube create demo --provider openai --api-key <key>
agentikube ssh demo
```
### Option B: CLI only
```bash
# 1. Copy and fill in your config
cp agentikube.example.yaml agentikube.yaml
@ -53,11 +78,13 @@ Running `create <handle>` adds:
cmd/agentikube/main.go # entrypoint
internal/config/ # config structs + validation
internal/manifest/ # template rendering
internal/manifest/templates/ # k8s YAML templates
internal/manifest/templates/ # k8s YAML templates (used by CLI)
internal/kube/ # kube client helpers
internal/commands/ # command implementations
chart/agentikube/ # Helm chart
scripts/ # helper scripts (CRD download)
agentikube.example.yaml # example config
Makefile # build/install/fmt/vet
Makefile # build/install/fmt/vet/helm
```
## Build and test locally

26
scripts/download-crds.sh Executable file
View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
# Download agent-sandbox CRDs into chart/agentikube/crds/
# Run this before packaging the chart: make crds
REPO="kubernetes-sigs/agent-sandbox"
BRANCH="main"
BASE_URL="https://raw.githubusercontent.com/${REPO}/${BRANCH}/k8s/crds"
DEST="$(cd "$(dirname "$0")/.." && pwd)/chart/agentikube/crds"
CRDS=(
sandboxtemplates.yaml
sandboxclaims.yaml
sandboxwarmpools.yaml
)
echo "Downloading CRDs from ${REPO}@${BRANCH} ..."
mkdir -p "$DEST"
for crd in "${CRDS[@]}"; do
echo " ${crd}"
curl -sSfL "${BASE_URL}/${crd}" -o "${DEST}/${crd}"
done
echo "CRDs written to ${DEST}"