Deploy and manage Kagenti operator, agents, and tools on Kubernetes. Handles installer, CRDs, pipelines, and demo deployments.
Deploy and manage Kagenti operator, agents, and tools on Kubernetes clusters.
Deploy/build commands produce large output. Always redirect to files:
export LOG_DIR="${LOG_DIR:-${WORKSPACE_DIR:-/tmp}/kagenti-deploy}"
mkdir -p "$LOG_DIR"
# Pattern: redirect build/deploy output
command > $LOG_DIR/<name>.log 2>&1; echo "EXIT:$?"
# On failure: Task(subagent_type='Explore') with Grep to find errors
# Deploy everything to Kind cluster
./.github/scripts/kagenti-operator/30-run-installer.sh
# Wait for CRDs and apply pipeline template
./.github/scripts/kagenti-operator/41-wait-crds.sh
# Set kubeconfig for target cluster
export KUBECONFIG=~/clusters/hcp/<cluster-name>/auth/kubeconfig
# Deploy with OCP values
./.github/scripts/kagenti-operator/30-run-installer.sh --env ocp
# Wait for CRDs and apply pipeline template
./.github/scripts/kagenti-operator/41-wait-crds.sh
Full demo deployment workflow:
# 1. Setup team1 namespace (if not exists)
./.github/scripts/kagenti-operator/70-setup-team1-namespace.sh
# 2. Build weather tool (Tekton pipeline)
./.github/scripts/kagenti-operator/71-build-weather-tool.sh
# 3. Deploy weather tool
./.github/scripts/kagenti-operator/72-deploy-weather-tool.sh
# 5. Deploy weather agent
./.github/scripts/kagenti-operator/74-deploy-weather-agent.sh
# Set agent URL (Kind)
export AGENT_URL="http://localhost:8000"
kubectl port-forward -n team1 svc/weather-service 8000:8000 &
# Set agent URL (OpenShift)
export AGENT_URL="https://$(oc get route -n team1 weather-service -o jsonpath='{.spec.host}')"
# Set config file
export KAGENTI_CONFIG_FILE=deployments/envs/dev_values.yaml # Kind
export KAGENTI_CONFIG_FILE=deployments/envs/ocp_values.yaml # OpenShift
# Run tests
./.github/scripts/kagenti-operator/90-run-e2e-tests.sh
| Script | Description |
|---|---|
30-run-installer.sh | Run Ansible installer for Kagenti platform |
41-wait-crds.sh | Wait for Kagenti CRDs to be available |
| Script | Description |
|---|---|
70-setup-team1-namespace.sh | Setup team1 namespace with required resources |
| Script | Description |
|---|---|
71-build-weather-tool.sh | Build weather tool via Tekton pipeline |
72-deploy-weather-tool.sh | Deploy weather tool Component CR |
74-deploy-weather-agent.sh | Deploy weather agent Component CR |
75-deploy-weather-tool-shipwright.sh | Alternative: deploy with Shipwright |
| Script | Description |
|---|---|
90-run-e2e-tests.sh | Run E2E test suite |
| Variable | Default | Description |
|---|---|---|
--env | dev | Environment (dev, ocp, test) |
KUBECONFIG | ~/.kube/config | Kubernetes config |
| Variable | Default | Description |
|---|---|---|
AGENT_URL | required | Agent endpoint URL |
KAGENTI_CONFIG_FILE | required | Values file for config |
PHOENIX_URL | (optional) | Phoenix observability URL |
# View all options
./.github/scripts/kagenti-operator/30-run-installer.sh --help
# Common options:
./.github/scripts/kagenti-operator/30-run-installer.sh --env dev # Kind/local
./.github/scripts/kagenti-operator/30-run-installer.sh --env ocp # OpenShift
./.github/scripts/kagenti-operator/30-run-installer.sh --env test # CI testing
# Operator pods
kubectl get pods -n kagenti-system -l app=kagenti-operator
# Operator logs
kubectl logs -n kagenti-system -l app=kagenti-operator --tail=100
# CRDs
kubectl get crd | grep kagenti
# All components
kubectl get components -A
# Shipwright builds
kubectl get builds -A
kubectl get buildruns -A
# Deployments
kubectl get deployments -n team1
# Pipeline runs
kubectl get pipelineruns -n team1
# Task runs
kubectl get taskruns -n team1
# Pipeline logs
tkn pipelinerun logs -n team1 <pipeline-run-name>
# Kind (HTTPRoutes)
kubectl get httproutes -A
# OpenShift (Routes)
oc get routes -A
# Check Ansible logs
# (Logs are output during run)
# Check namespace
kubectl get ns kagenti-system
# Check pods
kubectl get pods -n kagenti-system
# Check CRD installation
kubectl get crd | grep kagenti
# Re-run wait script
./.github/scripts/kagenti-operator/41-wait-crds.sh
# Check Tekton pipeline run
kubectl get pipelineruns -n team1
# View pipeline logs
kubectl logs -n team1 -l tekton.dev/pipelineRun=<run-name>
# Check Tekton controller
kubectl logs -n tekton-pipelines deployment/tekton-pipelines-controller --tail=100
# Check pod status
kubectl get pods -n team1 -l app=weather-service
# View agent logs
kubectl logs -n team1 deployment/weather-service --tail=100
# Check service
kubectl get svc -n team1 weather-service
# Test connectivity
kubectl port-forward -n team1 svc/weather-service 8000:8000
curl http://localhost:8000/.well-known/agent.json
deployments/ansible/README.md - Ansible deployment guidedocs/install.md - Installation guidedocs/components.md - Component details