Skip to content
Open
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
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
12 changes: 11 additions & 1 deletion go/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion scripts/kind/setup-kind.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<EOF | kubectl apply -f -
cat <<EOF | kubectl --context "kind-${KIND_CLUSTER_NAME}" apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
Expand Down
11 changes: 6 additions & 5 deletions scripts/kind/setup-metallb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ set -o pipefail
set -o nounset

METALLB_VERSION=${METALLB_VERSION:-v0.15.3}
KIND_CLUSTER_NAME=${KIND_CLUSTER_NAME:-kagent}

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/${METALLB_VERSION}/config/manifests/metallb-native.yaml
kubectl --context "kind-${KIND_CLUSTER_NAME}" apply -f https://raw.githubusercontent.com/metallb/metallb/${METALLB_VERSION}/config/manifests/metallb-native.yaml

# Wait for MetalLB to become available.
kubectl rollout status -n metallb-system deployment/controller --timeout 5m
kubectl rollout status -n metallb-system daemonset/speaker --timeout 5m
kubectl wait -n metallb-system pod -l app=metallb --for=condition=Ready --timeout=10s
kubectl --context "kind-${KIND_CLUSTER_NAME}" rollout status -n metallb-system deployment/controller --timeout 5m
kubectl --context "kind-${KIND_CLUSTER_NAME}" rollout status -n metallb-system daemonset/speaker --timeout 5m
kubectl --context "kind-${KIND_CLUSTER_NAME}" wait -n metallb-system pod -l app=metallb --for=condition=Ready --timeout=10s

SUBNET=$(docker network inspect kind | jq -r '.[].IPAM.Config[].Subnet | select(contains(":") | not)' | cut -d '.' -f1,2)
MIN=${SUBNET}.255.0
Expand All @@ -20,7 +21,7 @@ MAX=${SUBNET}.255.231
# Note: each line below must begin with one tab character; this is to get EOF working within
# an if block. The `-` in the `<<-EOF`` strips out the leading tab from each line, see
# https://tldp.org/LDP/abs/html/here-docs.html
kubectl apply -f - <<-EOF
kubectl --context "kind-${KIND_CLUSTER_NAME}" apply -f - <<-EOF
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
Expand Down