From 44fe1e1f5cf9311b5e5efc0660651265f91ad715 Mon Sep 17 00:00:00 2001 From: Harivansh Rathi Date: Sat, 7 Feb 2026 20:05:55 -0500 Subject: [PATCH] helm install --- .github/workflows/ci.yml | 20 ++++++++++++++++++++ Makefile | 15 ++++++++++++++- README.md | 33 ++++++++++++++++++++++++++++++--- scripts/download-crds.sh | 26 ++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 4 deletions(-) create mode 100755 scripts/download-crds.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4df1c8..734a833 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/Makefile b/Makefile index 160de4a..f68ed93 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/README.md b/README.md index 21ce483..598fa08 100644 --- a/README.md +++ b/README.md @@ -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 image @@ -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 < +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 ` 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 diff --git a/scripts/download-crds.sh b/scripts/download-crds.sh new file mode 100755 index 0000000..f4090be --- /dev/null +++ b/scripts/download-crds.sh @@ -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}"