AgentSkillsCN

kagenti:operator

在 Kubernetes 上部署并管理 Kagenti Operator、Agent 以及工具。负责安装程序、CRD、流水线以及演示部署的全流程管理。

SKILL.md
--- frontmatter
name: kagenti:operator
description: Deploy and manage Kagenti operator, agents, and tools on Kubernetes. Handles installer, CRDs, pipelines, and demo deployments.

Kagenti Operator Skill

Deploy and manage Kagenti operator, agents, and tools on Kubernetes clusters.

When to Use

  • Deploying Kagenti platform to a cluster
  • Building and deploying agents/tools
  • Running E2E tests
  • User asks "deploy kagenti", "build agent", or "run e2e tests"

Quick Deploy (Kind)

bash
# 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
./.github/scripts/kagenti-operator/42-apply-pipeline-template.sh

Quick Deploy (OpenShift/HyperShift)

bash
# 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
./.github/scripts/kagenti-operator/42-apply-pipeline-template.sh

Deploy Demo Agents

Full demo deployment workflow:

bash
# 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

# 4. Patch weather tool (HTTPRoute, MCP config)
./.github/scripts/kagenti-operator/73-patch-weather-tool.sh

# 5. Deploy weather agent
./.github/scripts/kagenti-operator/74-deploy-weather-agent.sh

Run E2E Tests

bash
# 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 Reference

Core Deployment

ScriptDescription
30-run-installer.shRun Ansible installer for Kagenti platform
41-wait-crds.shWait for Kagenti CRDs to be available
42-apply-pipeline-template.shApply Tekton pipeline templates

Namespace Setup

ScriptDescription
70-setup-team1-namespace.shSetup team1 namespace with required resources

Agent/Tool Deployment

ScriptDescription
71-build-weather-tool.shBuild weather tool via Tekton pipeline
72-deploy-weather-tool.shDeploy weather tool Component CR
73-patch-weather-tool.shPatch weather tool with HTTPRoute/MCP config
74-deploy-weather-agent.shDeploy weather agent Component CR
75-deploy-weather-tool-shipwright.shAlternative: deploy with Shipwright

Testing

ScriptDescription
90-run-e2e-tests.shRun E2E test suite

Environment Variables

Installer

VariableDefaultDescription
--envdevEnvironment (dev, ocp, test)
KUBECONFIG~/.kube/configKubernetes config

E2E Tests

VariableDefaultDescription
AGENT_URLrequiredAgent endpoint URL
KAGENTI_CONFIG_FILErequiredValues file for config
PHOENIX_URL(optional)Phoenix observability URL

Installer Options

bash
# 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

Debugging

Check Operator Status

bash
# 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

Check Agent/Tool Status

bash
# All components
kubectl get components -A

# Agent builds
kubectl get agentbuilds -A

# Deployments
kubectl get deployments -n team1

Check Tekton Pipelines

bash
# Pipeline runs
kubectl get pipelineruns -n team1

# Task runs
kubectl get taskruns -n team1

# Pipeline logs
tkn pipelinerun logs -n team1 <pipeline-run-name>

Check Routes/Ingress

bash
# Kind (HTTPRoutes)
kubectl get httproutes -A

# OpenShift (Routes)
oc get routes -A

Troubleshooting

Installer Fails

bash
# Check Ansible logs
# (Logs are output during run)

# Check namespace
kubectl get ns kagenti-system

# Check pods
kubectl get pods -n kagenti-system

CRDs Not Available

bash
# Check CRD installation
kubectl get crd | grep kagenti

# Re-run wait script
./.github/scripts/kagenti-operator/41-wait-crds.sh

Build Fails

bash
# 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

Agent Not Responding

bash
# 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

Related Skills

  • kind:cluster: Manage Kind clusters
  • hypershift:cluster: Manage HyperShift clusters
  • k8s:pods: Debug pod issues
  • k8s:logs: Query logs

Related Documentation

  • deployments/ansible/README.md - Ansible deployment guide
  • docs/install.md - Installation guide
  • docs/components.md - Component details