Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 3 additions & 13 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ env:
# Cache key components for better organization
CACHE_KEY_PREFIX: kagent-v2
BRANCH_CACHE_KEY: ${{ github.head_ref || github.ref_name }}
AGENT_SANDBOX_VERSION: v0.3.10
# Consistent builder configuration
BUILDX_BUILDER_NAME: kagent-builder-v0.23.0
BUILDX_VERSION: v0.23.0
Expand Down Expand Up @@ -78,13 +77,6 @@ jobs:
run: |
make create-kind-cluster

- name: Install agent-sandbox
run: |
kubectl apply -f "https://github.com/kubernetes-sigs/agent-sandbox/releases/download/${AGENT_SANDBOX_VERSION}/manifest.yaml"
timeout 90s bash -c 'until [ "$(kubectl get crd sandboxes.agents.x-k8s.io -o jsonpath="{.status.conditions[?(@.type==\"Established\")].status}" 2>/dev/null)" = "True" ]; do sleep 1; done'
kubectl rollout status deployment/agent-sandbox-controller -n agent-sandbox-system --timeout=120s
kubectl wait --for=condition=Ready pod -l app=agent-sandbox-controller -n agent-sandbox-system --timeout=120s

- name: Install Kagent
id: install-kagent
env:
Expand Down Expand Up @@ -150,10 +142,6 @@ jobs:
echo "::error::Failed to run e2e tests"
echo "::error::Kubectl get pods -n kagent"
kubectl describe pods -n kagent
echo "::error::Kubectl get pods -n agent-sandbox-system"
kubectl get pods -n agent-sandbox-system -o wide || true
echo "::error::Kubectl logs -n agent-sandbox-system deployment/agent-sandbox-controller"
kubectl logs -n agent-sandbox-system deployment/agent-sandbox-controller || true
echo "::error::Kubectl get events -n kagent"
kubectl get events -n kagent
echo "::error::Kubectl get agents -n kagent"
Expand Down Expand Up @@ -258,6 +246,8 @@ jobs:
- golang-adk
- golang-adk-full
- skills-init
- acp-sandbox-hermes
- acp-sandbox-openclaw
runs-on: ubuntu-latest
services:
registry:
Expand Down Expand Up @@ -305,7 +295,7 @@ jobs:
go-version: "1.26"
cache: true
cache-dependency-path: go/go.sum
- name: golangci-lint
- name: golangci-lint
working-directory: go
run: make lint

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
- golang-adk
- golang-adk-full
- skills-init
- acp-sandbox-hermes
- acp-sandbox-openclaw
runs-on: ubuntu-latest
permissions:
contents: read
Expand Down
38 changes: 36 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ APP_IMAGE_NAME ?= app
KAGENT_ADK_IMAGE_NAME ?= kagent-adk
GOLANG_ADK_IMAGE_NAME ?= golang-adk
SKILLS_INIT_IMAGE_NAME ?= skills-init
ACP_SANDBOX_BASE_IMAGE_NAME ?= acp-sandbox-base
ACP_SANDBOX_HERMES_IMAGE_NAME ?= acp-sandbox-hermes
ACP_SANDBOX_OPENCLAW_IMAGE_NAME ?= acp-sandbox-openclaw

CONTROLLER_IMAGE_TAG ?= $(VERSION)
UI_IMAGE_TAG ?= $(VERSION)
Expand All @@ -64,13 +67,17 @@ KAGENT_ADK_IMAGE_TAG ?= $(VERSION)
GOLANG_ADK_IMAGE_TAG ?= $(VERSION)
GOLANG_ADK_FULL_IMAGE_TAG ?= $(VERSION)-full
SKILLS_INIT_IMAGE_TAG ?= $(VERSION)
ACP_SANDBOX_IMAGE_TAG ?= $(VERSION)
CONTROLLER_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(CONTROLLER_IMAGE_NAME):$(CONTROLLER_IMAGE_TAG)
UI_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(UI_IMAGE_NAME):$(UI_IMAGE_TAG)
APP_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(APP_IMAGE_NAME):$(APP_IMAGE_TAG)
KAGENT_ADK_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(KAGENT_ADK_IMAGE_NAME):$(KAGENT_ADK_IMAGE_TAG)
GOLANG_ADK_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(GOLANG_ADK_IMAGE_NAME):$(GOLANG_ADK_IMAGE_TAG)
GOLANG_ADK_FULL_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(GOLANG_ADK_IMAGE_NAME):$(GOLANG_ADK_FULL_IMAGE_TAG)
SKILLS_INIT_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(SKILLS_INIT_IMAGE_NAME):$(SKILLS_INIT_IMAGE_TAG)
ACP_SANDBOX_BASE_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(ACP_SANDBOX_BASE_IMAGE_NAME):$(ACP_SANDBOX_IMAGE_TAG)
ACP_SANDBOX_HERMES_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(ACP_SANDBOX_HERMES_IMAGE_NAME):$(ACP_SANDBOX_IMAGE_TAG)
ACP_SANDBOX_OPENCLAW_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(ACP_SANDBOX_OPENCLAW_IMAGE_NAME):$(ACP_SANDBOX_IMAGE_TAG)

#take from go/go.mod
AWK ?= $(shell command -v gawk || command -v awk)
Expand Down Expand Up @@ -238,20 +245,25 @@ build-img-versions: ## Print the fully-qualified image tags for all components
@echo golang-adk=$(GOLANG_ADK_IMG)
@echo golang-adk-full=$(GOLANG_ADK_FULL_IMG)
@echo skills-init=$(SKILLS_INIT_IMG)
@echo acp-sandbox-base=$(ACP_SANDBOX_BASE_IMG)
@echo acp-sandbox-hermes=$(ACP_SANDBOX_HERMES_IMG)
@echo acp-sandbox-openclaw=$(ACP_SANDBOX_OPENCLAW_IMG)

.PHONY: controller-manifests
controller-manifests: ## Regenerate CRD manifests and copy them into the Helm chart
make -C go manifests
cp go/api/config/crd/bases/* helm/kagent-crds/templates/

.PHONY: build-controller
build-controller: ## Build and push the controller image (embeds agent runtime digests via scripts/controller-digest-ldflags.sh)
build-controller: buildx-create controller-manifests build-app build-golang-adk build-golang-adk-full
build-controller: ## Build and push the controller image (embeds agent runtime + acp-sandbox digests via scripts/controller-digest-ldflags.sh)
build-controller: buildx-create controller-manifests build-app build-golang-adk build-golang-adk-full build-acp-sandbox-openclaw build-acp-sandbox-hermes
@set -e; \
DIGEST_LDFLAGS=$$(CONTAINER_RUNTIME=$(CONTAINER_RUNTIME) \
APP_IMG=$(APP_IMG) \
GOLANG_ADK_IMG=$(GOLANG_ADK_IMG) \
GOLANG_ADK_FULL_IMG=$(GOLANG_ADK_FULL_IMG) \
ACP_SANDBOX_OPENCLAW_IMG=$(ACP_SANDBOX_OPENCLAW_IMG) \
ACP_SANDBOX_HERMES_IMG=$(ACP_SANDBOX_HERMES_IMG) \
./scripts/controller-digest-ldflags.sh); \
$(DOCKER_BUILDER) $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) \
--build-arg LDFLAGS="$(LDFLAGS)$$DIGEST_LDFLAGS" \
Expand Down Expand Up @@ -295,6 +307,28 @@ build-skills-init: buildx-create
$(DOCKER_BUILDER) $(DOCKER_BUILD_ARGS) -t $(SKILLS_INIT_IMG) -f docker/skills-init/Dockerfile ./go
$(DOCKER_PUSH) $(SKILLS_INIT_IMG)

.PHONY: build-acp-sandbox
build-acp-sandbox: ## Build and push all ACP sandbox agent images (hermes, openclaw)
build-acp-sandbox: build-acp-sandbox-hermes build-acp-sandbox-openclaw

.PHONY: build-acp-sandbox-base
build-acp-sandbox-base: ## Build and push the ACP sandbox base image (acp-shim only, no agent)
build-acp-sandbox-base: buildx-create
$(DOCKER_BUILDER) $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --target base -t $(ACP_SANDBOX_BASE_IMG) -f docker/acp-sandbox/Dockerfile ./go
$(DOCKER_PUSH) $(ACP_SANDBOX_BASE_IMG)

.PHONY: build-acp-sandbox-hermes
build-acp-sandbox-hermes: ## Build and push the ACP sandbox Hermes image
build-acp-sandbox-hermes: buildx-create
$(DOCKER_BUILDER) $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --target hermes -t $(ACP_SANDBOX_HERMES_IMG) -f docker/acp-sandbox/Dockerfile ./go
$(DOCKER_PUSH) $(ACP_SANDBOX_HERMES_IMG)

.PHONY: build-acp-sandbox-openclaw
build-acp-sandbox-openclaw: ## Build and push the ACP sandbox OpenClaw image
build-acp-sandbox-openclaw: buildx-create
$(DOCKER_BUILDER) $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --target openclaw -t $(ACP_SANDBOX_OPENCLAW_IMG) -f docker/acp-sandbox/Dockerfile ./go
$(DOCKER_PUSH) $(ACP_SANDBOX_OPENCLAW_IMG)

.PHONY: push
push: ## Push all component images (controller, ui, app, ADKs)
push: push-controller push-ui push-app push-kagent-adk push-golang-adk push-golang-adk-full
Expand Down
Loading
Loading