diff --git a/Makefile b/Makefile index 8be88640a..759fb74e9 100644 --- a/Makefile +++ b/Makefile @@ -194,8 +194,8 @@ create-kind-cluster: use-kind-cluster: kind get kubeconfig --name $(KIND_CLUSTER_NAME) > /tmp/kind-config KUBECONFIG=~/.kube/config:/tmp/kind-config kubectl config view --merge --flatten > ~/.kube/config.tmp && mv ~/.kube/config.tmp ~/.kube/config && chmod $(KUBECONFIG_PERM) ~/.kube/config - kubectl create namespace kagent || true - kubectl config set-context --current --namespace kagent || true + kubectl --context kind-$(KIND_CLUSTER_NAME) create namespace kagent || true + kubectl config set-context kind-$(KIND_CLUSTER_NAME) --namespace kagent || true .PHONY: delete-kind-cluster delete-kind-cluster: @@ -425,17 +425,17 @@ kagent-cli-install: use-kind-cluster build-cli-local helm-version helm-install-p .PHONY: kagent-cli-port-forward kagent-cli-port-forward: use-kind-cluster @echo "Port forwarding to kagent CLI..." - kubectl port-forward -n kagent service/kagent-controller 8083:8083 + kubectl --context kind-$(KIND_CLUSTER_NAME) port-forward -n kagent service/kagent-controller 8083:8083 .PHONY: kagent-ui-port-forward kagent-ui-port-forward: use-kind-cluster open http://localhost:8082/ - kubectl port-forward -n kagent service/kagent-ui 8082:8080 + kubectl --context kind-$(KIND_CLUSTER_NAME) port-forward -n kagent service/kagent-ui 8082:8080 .PHONY: kagent-addon-install kagent-addon-install: use-kind-cluster # to test the kagent addons - installing istio, grafana, prometheus, metrics-server - istioctl install --set profile=demo -y + istioctl install --context kind-$(KIND_CLUSTER_NAME) --set profile=demo -y kubectl apply --context kind-$(KIND_CLUSTER_NAME) -f contrib/addons/grafana.yaml kubectl apply --context kind-$(KIND_CLUSTER_NAME) -f contrib/addons/prometheus.yaml kubectl apply --context kind-$(KIND_CLUSTER_NAME) -f contrib/addons/metrics-server.yaml diff --git a/go/Makefile b/go/Makefile index 5d9e6e183..2235111a9 100644 --- a/go/Makefile +++ b/go/Makefile @@ -111,9 +111,19 @@ run: fmt vet ## Run a controller from your host. test: ## Run all unit tests. UPDATE_GOLDEN=$(UPDATE_GOLDEN) go test -race -skip 'TestE2E.*' -v ./... +# Pin e2e tests to the kind cluster so a stray current-context (or an +# ambient KUBECONFIG) can't leak resources onto a remote cluster. Override +# KIND_CLUSTER_NAME to target a differently-named kind cluster. +KIND_CLUSTER_NAME ?= kagent + .PHONY: e2e e2e: ## Run end-to-end tests. - go test -v github.com/kagent-dev/kagent/go/core/test/e2e -failfast + @kind get clusters 2>/dev/null | grep -qx '$(KIND_CLUSTER_NAME)' || { \ + echo "Error: kind cluster '$(KIND_CLUSTER_NAME)' not found. Run 'make create-kind-cluster' first." >&2; \ + exit 1; \ + } + @kind get kubeconfig --name $(KIND_CLUSTER_NAME) > /tmp/kind-config-e2e + KUBECONFIG=/tmp/kind-config-e2e go test -v github.com/kagent-dev/kagent/go/core/test/e2e -failfast ##@ Dependencies diff --git a/scripts/kind/setup-kind.sh b/scripts/kind/setup-kind.sh index ed8a63f83..aeeb11906 100755 --- a/scripts/kind/setup-kind.sh +++ b/scripts/kind/setup-kind.sh @@ -57,7 +57,7 @@ fi # 5. Document the local registry # https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/generic/1755-communicating-a-local-registry -cat <