Skip to content

Commit e9650a7

Browse files
EItanyaclaudedimetron
authored
refactor: restructure Go code into workspace with api, core, and adk modules (#1385)
Split the monolithic go/ module into a Go workspace with three modules: - go/api: shared types (CRDs, ADK types, database models, HTTP client SDK) - go/core: infrastructure (controllers, HTTP server, CLI, DB implementation) - go/adk: Go Agent Development Kit (moved from contrib/go-adk/, types deduplicated) Key changes: - Unified Dockerfile parameterized with BUILD_PACKAGE for both controller and adk - Unified go/Makefile with workspace-wide fmt/vet/lint/test targets - ADK types deduplicated: canonical definitions in go/api/adk, re-exported in go/adk/pkg/config - ExecuteCode/Stream fields changed from bool to *bool with helper methods - Fix LLM Name() methods to return model name instead of provider name (fixes 404s) - Add oneshot example tool for quick agent config testing - Update CI workflows, root Makefile, documentation for new paths --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Dmytro Rashko <dmitriy.rashko@amdocs.com>
1 parent 232ca4f commit e9650a7

File tree

452 files changed

+3903
-2094
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

452 files changed

+3903
-2094
lines changed

.github/workflows/ci.yaml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ jobs:
111111
112112
- name: Run e2e tests
113113
if: success()
114-
working-directory: go
114+
working-directory: go/core
115115
run: |
116116
# Get the Kind network gateway IP that pods can reach
117117
HOST_IP=$(docker network inspect kind -f '{{range .IPAM.Config}}{{if .Gateway}}{{.Gateway}}{{"\n"}}{{end}}{{end}}' | grep -E '^[0-9]+\.' | head -1)
@@ -124,7 +124,7 @@ jobs:
124124
125125
# no need to run e2e tests with race, as this will just apply to the test code.
126126
# all objects created in e2e tests have a generated name, so they can run in parallel safely.
127-
go test -v github.com/kagent-dev/kagent/go/test/e2e -failfast -shuffle=on
127+
go test -v github.com/kagent-dev/kagent/go/core/test/e2e -failfast -shuffle=on
128128
- name: fail print info
129129
if: failure()
130130
run: |
@@ -148,12 +148,12 @@ jobs:
148148
with:
149149
go-version: "1.25"
150150
cache: true
151-
cache-dependency-path: go/go.sum
151+
cache-dependency-path: go/*/go.sum
152152

153-
- name: Run cmd/main.go tests
153+
- name: Run Go unit tests
154154
working-directory: go
155155
run: |
156-
go test -race -skip 'TestE2E.*' -v ./...
156+
go test -race -skip 'TestE2E.*' -v ./api/... ./adk/... ./core/...
157157
158158
helm-unit-tests:
159159
env:
@@ -219,6 +219,7 @@ jobs:
219219
- ui
220220
- app
221221
- cli
222+
- golang-adk
222223
- skills-init
223224
runs-on: ubuntu-latest
224225
services:
@@ -266,12 +267,12 @@ jobs:
266267
with:
267268
go-version: "1.25"
268269
cache: true
269-
cache-dependency-path: go/go.sum
270+
cache-dependency-path: go/*/go.sum
270271
- name: golangci-lint
271272
uses: golangci/golangci-lint-action@v9
272273
with:
273274
version: v2.8.0
274-
working-directory: go
275+
working-directory: go/core
275276

276277
python-test:
277278
env:
@@ -341,7 +342,7 @@ jobs:
341342
with:
342343
go-version: "1.25"
343344
cache: true
344-
cache-dependency-path: go/go.sum
345+
cache-dependency-path: go/*/go.sum
345346

346347
- name: Generate controller manifests
347348
run: make controller-manifests

.github/workflows/tag.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Tag and Push
1+
name: Tag and Push
22

33
on:
44
push:
@@ -20,6 +20,7 @@ jobs:
2020
- controller
2121
- ui
2222
- app
23+
- golang-adk
2324
- skills-init
2425
runs-on: ubuntu-latest
2526
permissions:
@@ -122,7 +123,7 @@ jobs:
122123
uv version $VERSION --package agentsts-core
123124
uv build --package agentsts-core
124125
uv publish --token ${{ secrets.PYPI_TOKEN }}
125-
126+
126127
release:
127128
# Only run release after images and helm chart are pushed
128129
# In the future we can take the chart from the helm action,
@@ -152,5 +153,5 @@ jobs:
152153
with:
153154
generate_release_notes: true
154155
files: |
155-
go/bin/kagent-*
156+
go/core/bin/kagent-*
156157
kagent-*.tgz

CLAUDE.md

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,24 @@ This document provides essential guidance for AI agents (Claude Code and others)
4848

4949
```
5050
kagent/
51-
├── go/ # Kubernetes controller, CLI, API server
52-
│ ├── api/ # CRD definitions (v1alpha1, v1alpha2)
53-
│ ├── cmd/ # Binary entry points
54-
│ ├── internal/ # Core implementation
55-
│ │ ├── controller/ # K8s reconciliation logic
56-
│ │ ├── httpserver/ # REST/gRPC API
57-
│ │ ├── database/ # SQLite/Postgres persistence
58-
│ │ ├── a2a/ # Agent-to-Agent communication
59-
│ │ ├── mcp/ # MCP integration
60-
│ │ └── adk/ # Go ADK types
61-
│ ├── pkg/ # Public Go packages
62-
│ └── test/e2e/ # End-to-end tests
51+
├── go/ # Go workspace (go.work)
52+
│ ├── api/ # Shared types module: CRDs, ADK types, DB models, HTTP client
53+
│ │ ├── v1alpha1/ # Legacy CRD types
54+
│ │ ├── v1alpha2/ # Current CRD types
55+
│ │ ├── adk/ # ADK config/model types (shared with go/adk)
56+
│ │ ├── database/ # GORM model structs & Client interface
57+
│ │ ├── httpapi/ # HTTP API request/response types
58+
│ │ ├── client/ # REST HTTP client SDK
59+
│ │ └── utils/ # Shared utilities
60+
│ ├── core/ # Infrastructure module: controllers, HTTP server, CLI
61+
│ │ ├── cmd/ # Binary entry points
62+
│ │ ├── cli/ # CLI application (kagent CLI)
63+
│ │ ├── internal/ # Controllers, HTTP server, DB implementation
64+
│ │ ├── pkg/ # Auth, env vars, translator plugins
65+
│ │ └── test/e2e/ # End-to-end tests
66+
│ ├── adk/ # Go Agent Development Kit module
67+
│ │ ├── cmd/ # ADK binary entry point
68+
│ │ └── pkg/ # Agent runtime, models, MCP, sessions
6369
6470
├── python/ # Agent runtime and ADK
6571
│ ├── packages/ # UV workspace packages
@@ -93,7 +99,7 @@ kagent/
9399
- [Makefile](Makefile) - Root build orchestration
94100
- [DEVELOPMENT.md](DEVELOPMENT.md) - Development setup guide
95101
- [go/api/v1alpha2/agent_types.go](go/api/v1alpha2/agent_types.go) - Agent CRD definition
96-
- [go/internal/controller/reconciler/reconciler.go](go/internal/controller/reconciler/reconciler.go) - Shared reconciler pattern
102+
- [go/core/internal/controller/reconciler/reconciler.go](go/core/internal/controller/reconciler/reconciler.go) - Shared reconciler pattern
97103
- [python/packages/kagent-adk/](python/packages/kagent-adk/) - Python ADK implementation
98104
- [helm/kagent/values.yaml](helm/kagent/values.yaml) - Default configuration
99105

@@ -164,11 +170,10 @@ make -C go generate
164170

165171
### Go Guidelines
166172

167-
**Code Organization:**
168-
- `internal/` - Private implementation details
169-
- `pkg/` - Public libraries (use sparingly)
170-
- `api/` - CRD type definitions only
171-
- `cmd/` - Binary entry points (thin, delegate to internal/)
173+
**Code Organization (Go workspace with 3 modules):**
174+
- `go/api/` - Shared types: CRD definitions, ADK types, database models, HTTP client SDK
175+
- `go/core/` - Infrastructure: controllers, HTTP server, CLI, database implementation
176+
- `go/adk/` - Go Agent Development Kit for building agents
172177

173178
**Error Handling:**
174179
- Always wrap errors with context: `fmt.Errorf("context: %w", err)`
@@ -260,7 +265,7 @@ func TestSomething(t *testing.T) {
260265
**Mock LLMs:**
261266
Use `github.com/kagent-dev/mockllm` for testing LLM interactions.
262267

263-
**E2E tests location:** [go/test/e2e/](go/test/e2e/)
268+
**E2E tests location:** [go/core/test/e2e/](go/core/test/e2e/)
264269

265270
### Python Testing
266271

@@ -280,7 +285,7 @@ make -C python test
280285
make -C ui test
281286

282287
# E2E tests (requires Kind cluster)
283-
make -C go test-e2e
288+
make -C go e2e
284289

285290
# With race detection (Go)
286291
go test -race ./...
@@ -355,7 +360,7 @@ MCPServerController
355360
- No application-level locking needed
356361
- Controllers translate CRs to K8s manifests via translators
357362

358-
**Implementation reference:** [go/internal/controller/reconciler/reconciler.go](go/internal/controller/reconciler/reconciler.go)
363+
**Implementation reference:** [go/core/internal/controller/reconciler/reconciler.go](go/core/internal/controller/reconciler/reconciler.go)
359364

360365
**When NOT to use:**
361366
- Simple controllers without database persistence
@@ -398,7 +403,7 @@ func (r *AgentReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl
398403

399404
**Schema evolution:** GORM AutoMigrate is sufficient during alpha stage.
400405

401-
**Models location:** [go/internal/database/models.go](go/internal/database/models.go)
406+
**Models location:** [go/api/database/models.go](go/api/database/models.go)
402407

403408
**Common operations:**
404409
```go
@@ -461,7 +466,7 @@ return ctrl.Result{}, nil
461466
- KMCP repository for K8s-native tools (Prometheus, Helm, etc.)
462467
- Each MCP server is independently deployable
463468

464-
**MCP protocol implementation:** MCP-related HTTP handlers live under [go/internal/httpserver/handlers/](go/internal/httpserver/handlers/).
469+
**MCP protocol implementation:** MCP-related HTTP handlers live under [go/core/internal/httpserver/handlers/](go/core/internal/httpserver/handlers/).
465470

466471
**Tool discovery:**
467472
- Tools are fetched from MCP servers at runtime
@@ -510,25 +515,25 @@ chore: update trivy action and exit on failures
510515
1. Edit type definition in `go/api/v1alpha2/*_types.go`
511516
2. Add validation markers and JSON tags
512517
3. Run `make -C go generate` to update generated code
513-
4. Update translator in `go/internal/controller/translator/` if needed
514-
5. Add E2E test in `go/test/e2e/`
518+
4. Update translator in `go/core/internal/controller/translator/` if needed
519+
5. Add E2E test in `go/core/test/e2e/`
515520
6. Update Helm chart values/templates if exposed to users
516521

517522
### Creating a New Controller
518523

519-
1. Create controller file in `go/internal/controller/`
524+
1. Create controller file in `go/core/internal/controller/`
520525
2. Implement `Reconcile()` method
521526
3. Decide: use shared reconciler or custom logic
522527
4. Add predicates for event filtering if needed
523-
5. Register in `cmd/controller/main.go`
528+
5. Register in `go/core/cmd/controller/main.go`
524529
6. Add RBAC markers
525530
7. Run `make -C go generate` to update RBAC manifests
526531
8. Add unit and E2E tests
527532

528533
### Adding a New API Endpoint
529534

530-
1. Add handler in `go/internal/httpserver/handlers/`
531-
2. Register route in `go/internal/httpserver/server.go`
535+
1. Add handler in `go/core/internal/httpserver/handlers/`
536+
2. Register route in `go/core/internal/httpserver/server.go`
532537
3. Add auth middleware if needed
533538
4. Update database models if storing data
534539
5. Add unit tests for handler logic
@@ -637,7 +642,7 @@ make create-kind-cluster
637642
| Build all | `make build` |
638643
| Run all tests | `make test` |
639644
| Run E2E tests | `make -C go e2e` |
640-
| Lint code | `make lint` |
645+
| Lint code | `make -C go lint` |
641646
| Generate CRD code | `make -C go generate` |
642647
| Run controller locally | `make -C go run` |
643648
| Access UI | `kubectl port-forward -n kagent svc/kagent-ui 3000:80` |

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ npm run test
185185
#### End-to-End (E2E) Tests
186186

187187
These tests are done in a `kind` cluster with real agents, using real or mock LLM providers.
188-
See: [go/test/e2e](https://github.com/kagent-dev/kagent/tree/main/go/test/e2e)
188+
See: [go/core/test/e2e](https://github.com/kagent-dev/kagent/tree/main/go/core/test/e2e)
189189

190190
Features that introduce behavior changes should be covered by E2E tests (exceptions can be made for minor changes). Testing with real Kubernetes resources and agent invocations is crucial because it:
191191

Makefile

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,32 @@ CONTROLLER_IMAGE_NAME ?= controller
3535
UI_IMAGE_NAME ?= ui
3636
APP_IMAGE_NAME ?= app
3737
KAGENT_ADK_IMAGE_NAME ?= kagent-adk
38+
GOLANG_ADK_IMAGE_NAME ?= golang-adk
3839
SKILLS_INIT_IMAGE_NAME ?= skills-init
3940

4041
CONTROLLER_IMAGE_TAG ?= $(VERSION)
4142
UI_IMAGE_TAG ?= $(VERSION)
4243
APP_IMAGE_TAG ?= $(VERSION)
4344
KAGENT_ADK_IMAGE_TAG ?= $(VERSION)
45+
GOLANG_ADK_IMAGE_TAG ?= $(VERSION)
4446
SKILLS_INIT_IMAGE_TAG ?= $(VERSION)
4547

4648
CONTROLLER_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(CONTROLLER_IMAGE_NAME):$(CONTROLLER_IMAGE_TAG)
4749
UI_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(UI_IMAGE_NAME):$(UI_IMAGE_TAG)
4850
APP_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(APP_IMAGE_NAME):$(APP_IMAGE_TAG)
4951
KAGENT_ADK_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(KAGENT_ADK_IMAGE_NAME):$(KAGENT_ADK_IMAGE_TAG)
52+
GOLANG_ADK_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(GOLANG_ADK_IMAGE_NAME):$(GOLANG_ADK_IMAGE_TAG)
5053
SKILLS_INIT_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_REPO)/$(SKILLS_INIT_IMAGE_NAME):$(SKILLS_INIT_IMAGE_TAG)
5154

52-
#take from go/go.mod
55+
#take from go/core/go.mod
5356
AWK ?= $(shell command -v gawk || command -v awk)
54-
TOOLS_GO_VERSION ?= $(shell $(AWK) '/^go / { print $$2 }' go/go.mod)
57+
TOOLS_GO_VERSION ?= $(shell $(AWK) '/^go / { print $$2 }' go/core/go.mod)
5558
export GOTOOLCHAIN=go$(TOOLS_GO_VERSION)
5659

5760
# Version information for the build
58-
LDFLAGS := "-X github.com/$(DOCKER_REPO)/go/internal/version.Version=$(VERSION) \
59-
-X github.com/$(DOCKER_REPO)/go/internal/version.GitCommit=$(GIT_COMMIT) \
60-
-X github.com/$(DOCKER_REPO)/go/internal/version.BuildDate=$(BUILD_DATE)"
61+
LDFLAGS := "-X github.com/$(DOCKER_REPO)/go/core/internal/version.Version=$(VERSION) \
62+
-X github.com/$(DOCKER_REPO)/go/core/internal/version.GitCommit=$(GIT_COMMIT) \
63+
-X github.com/$(DOCKER_REPO)/go/core/internal/version.BuildDate=$(BUILD_DATE)"
6164

6265
#tools versions
6366
TOOLS_UV_VERSION ?= 0.10.4
@@ -104,7 +107,7 @@ init-git-hooks: ## Use the tracked version of Git hooks from this repo
104107

105108
# KMCP
106109
KMCP_ENABLED ?= true
107-
KMCP_VERSION ?= $(shell $(AWK) '/github\.com\/kagent-dev\/kmcp/ { print substr($$2, 2) }' go/go.mod) # KMCP version defaults to what's referenced in go.mod
110+
KMCP_VERSION ?= $(shell $(AWK) '/github\.com\/kagent-dev\/kmcp/ { print substr($$2, 2) }' go/core/go.mod) # KMCP version defaults to what's referenced in go.mod
108111

109112
HELM_ACTION=upgrade --install
110113

@@ -168,15 +171,15 @@ build-all: buildx-create
168171
.PHONY: push-test-agent
169172
push-test-agent: buildx-create build-kagent-adk
170173
echo "Building FROM DOCKER_REGISTRY=$(DOCKER_REGISTRY)/$(DOCKER_REPO)/kagent-adk:$(VERSION)"
171-
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/kebab:latest -f go/test/e2e/agents/kebab/Dockerfile ./go/test/e2e/agents/kebab
172-
kubectl apply --namespace kagent --context kind-$(KIND_CLUSTER_NAME) -f go/test/e2e/agents/kebab/agent.yaml
174+
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/kebab:latest -f go/core/test/e2e/agents/kebab/Dockerfile ./go/core/test/e2e/agents/kebab
175+
kubectl apply --namespace kagent --context kind-$(KIND_CLUSTER_NAME) -f go/core/test/e2e/agents/kebab/agent.yaml
173176
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/poem-flow:latest -f python/samples/crewai/poem_flow/Dockerfile ./python
174177
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/basic-openai:latest -f python/samples/openai/basic_agent/Dockerfile ./python
175178

176179
.PHONY: push-test-skill
177180
push-test-skill: buildx-create
178181
echo "Building FROM DOCKER_REGISTRY=$(DOCKER_REGISTRY)/$(DOCKER_REPO)/kebab-maker:$(VERSION)"
179-
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/kebab-maker:latest -f go/test/e2e/testdata/skills/kebab-maker/Dockerfile ./go/test/e2e/testdata/skills/kebab-maker
182+
$(DOCKER_BUILDER) build --push $(BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(DOCKER_REGISTRY)/kebab-maker:latest -f go/core/test/e2e/testdata/skills/kebab-maker/Dockerfile ./go/core/test/e2e/testdata/skills/kebab-maker
180183

181184
.PHONY: create-kind-cluster
182185
create-kind-cluster:
@@ -198,7 +201,7 @@ delete-kind-cluster:
198201
clean: prune-kind-cluster
199202
clean: prune-docker-images
200203
docker buildx rm $(BUILDX_BUILDER_NAME) -f || true
201-
rm -rf ./go/bin
204+
rm -rf ./go/core/bin
202205

203206
.PHONY: prune-kind-cluster
204207
prune-kind-cluster:
@@ -214,12 +217,13 @@ prune-docker-images:
214217
docker images --filter dangling=true -q | xargs -r docker rmi || :
215218

216219
.PHONY: build
217-
build: buildx-create build-controller build-ui build-app build-skills-init
220+
build: buildx-create build-controller build-ui build-app build-golang-adk build-skills-init
218221
@echo "Build completed successfully."
219222
@echo "Controller Image: $(CONTROLLER_IMG)"
220223
@echo "UI Image: $(UI_IMG)"
221224
@echo "App Image: $(APP_IMG)"
222225
@echo "Kagent ADK Image: $(KAGENT_ADK_IMG)"
226+
@echo "Golang ADK Image: $(GOLANG_ADK_IMG)"
223227
@echo "Skills Init Image: $(SKILLS_INIT_IMG)"
224228

225229
.PHONY: build-monitor
@@ -233,7 +237,7 @@ build-cli:
233237
.PHONY: build-cli-local
234238
build-cli-local:
235239
make -C go clean
236-
make -C go bin/kagent-local
240+
make -C go core/bin/kagent-local
237241

238242
.PHONY: build-img-versions
239243
build-img-versions:
@@ -248,14 +252,18 @@ lint:
248252
make -C go lint
249253
make -C python lint
250254

255+
.PHONY: push
256+
push: push-controller push-ui push-app push-kagent-adk push-golang-adk
257+
258+
251259
.PHONY: controller-manifests
252260
controller-manifests:
253261
make -C go manifests
254-
cp go/config/crd/bases/* helm/kagent-crds/templates/
262+
cp go/api/config/crd/bases/* helm/kagent-crds/templates/
255263

256264
.PHONY: build-controller
257265
build-controller: buildx-create controller-manifests
258-
$(DOCKER_BUILDER) build $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) -t $(CONTROLLER_IMG) -f go/Dockerfile ./go
266+
$(DOCKER_BUILDER) build $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --build-arg BUILD_PACKAGE=core/cmd/controller/main.go -t $(CONTROLLER_IMG) -f go/Dockerfile ./go
259267

260268
.PHONY: build-ui
261269
build-ui: buildx-create
@@ -269,6 +277,10 @@ build-kagent-adk: buildx-create
269277
build-app: buildx-create build-kagent-adk
270278
$(DOCKER_BUILDER) build $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --build-arg KAGENT_ADK_VERSION=$(KAGENT_ADK_IMAGE_TAG) --build-arg DOCKER_REGISTRY=$(DOCKER_REGISTRY) -t $(APP_IMG) -f python/Dockerfile.app ./python
271279

280+
.PHONY: build-golang-adk
281+
build-golang-adk: buildx-create
282+
$(DOCKER_BUILDER) build $(DOCKER_BUILD_ARGS) $(TOOLS_IMAGE_BUILD_ARGS) --build-arg BUILD_PACKAGE=adk/cmd/main.go -t $(GOLANG_ADK_IMG) -f go/Dockerfile ./go
283+
272284
.PHONY: build-skills-init
273285
build-skills-init: buildx-create
274286
$(DOCKER_BUILDER) build $(DOCKER_BUILD_ARGS) -t $(SKILLS_INIT_IMG) -f docker/skills-init/Dockerfile docker/skills-init
@@ -393,7 +405,7 @@ helm-publish: helm-version
393405

394406
.PHONY: kagent-cli-install
395407
kagent-cli-install: use-kind-cluster build-cli-local helm-version helm-install-provider
396-
KAGENT_HELM_REPO=./helm/ ./go/bin/kagent-local dashboard
408+
KAGENT_HELM_REPO=./helm/ ./go/core/bin/kagent-local dashboard
397409

398410
.PHONY: kagent-cli-port-forward
399411
kagent-cli-port-forward: use-kind-cluster

0 commit comments

Comments
 (0)