mirror of
https://github.com/harivansh-afk/agentikube.git
synced 2026-04-15 03:00:43 +00:00
helm install
This commit is contained in:
parent
f3abdfe7b8
commit
44fe1e1f5c
4 changed files with 90 additions and 4 deletions
20
.github/workflows/ci.yml
vendored
20
.github/workflows/ci.yml
vendored
|
|
@ -25,3 +25,23 @@ jobs:
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: go 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
|
||||||
|
|
|
||||||
15
Makefile
15
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:
|
build:
|
||||||
go build -o agentikube ./cmd/agentikube
|
go build -o agentikube ./cmd/agentikube
|
||||||
|
|
@ -16,3 +16,16 @@ vet:
|
||||||
go vet ./...
|
go vet ./...
|
||||||
|
|
||||||
lint: fmt 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
|
||||||
|
|
|
||||||
33
README.md
33
README.md
|
|
@ -3,7 +3,7 @@
|
||||||
[](https://github.com/harivansh-afk/agentikube/blob/main/go.mod)
|
[](https://github.com/harivansh-afk/agentikube/blob/main/go.mod)
|
||||||
[](https://github.com/harivansh-afk/agentikube/releases/latest)
|
[](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" />
|
<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
|
## 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
|
```bash
|
||||||
# 1. Copy and fill in your config
|
# 1. Copy and fill in your config
|
||||||
cp agentikube.example.yaml agentikube.yaml
|
cp agentikube.example.yaml agentikube.yaml
|
||||||
|
|
@ -53,11 +78,13 @@ Running `create <handle>` adds:
|
||||||
cmd/agentikube/main.go # entrypoint
|
cmd/agentikube/main.go # entrypoint
|
||||||
internal/config/ # config structs + validation
|
internal/config/ # config structs + validation
|
||||||
internal/manifest/ # template rendering
|
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/kube/ # kube client helpers
|
||||||
internal/commands/ # command implementations
|
internal/commands/ # command implementations
|
||||||
|
chart/agentikube/ # Helm chart
|
||||||
|
scripts/ # helper scripts (CRD download)
|
||||||
agentikube.example.yaml # example config
|
agentikube.example.yaml # example config
|
||||||
Makefile # build/install/fmt/vet
|
Makefile # build/install/fmt/vet/helm
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build and test locally
|
## Build and test locally
|
||||||
|
|
|
||||||
26
scripts/download-crds.sh
Executable file
26
scripts/download-crds.sh
Executable 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}"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue