主要更新: - 新增 external_tool_api.py: 外部工具管理 API - 新增 tool_storage.py: 工具存储管理器 - 新增回调功能用于计费 (agent_callback_utils) - 支持多工具创建 Agent - 新增 CI/CD 构建状态查询 API - 新增部署信息查询 API - 更新文档 (EXTERNAL_TOOL_API.md v2.0) - 更新 Dockerfile 添加新模块 - 更新 app.py 集成外部工具路由
80 lines
2.2 KiB
Bash
Executable File
80 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Non-destructive redeploy for agent-manager to a target cluster via kubeconfig/context.
|
|
# - Applies: namespace, RBAC, deployment, service
|
|
# - Does NOT apply configmap/secret by default (to avoid overwriting real credentials)
|
|
#
|
|
# Usage:
|
|
# ./scripts/redeploy-agent-manager-with-kubeconfig.sh /path/to/kubeconfig [context]
|
|
#
|
|
# Optional env:
|
|
# APPLY_CONFIG=1 -> also apply k8s/agent-manager-configmap.yaml
|
|
# APPLY_SECRET=1 -> also apply k8s/agent-manager-secret.yaml (DANGEROUS unless you edited it)
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
K8S_DIR="${ROOT_DIR}/k8s"
|
|
|
|
KUBECONFIG_FILE="${1:-}"
|
|
CONTEXT="${2:-}"
|
|
|
|
if [[ -z "${KUBECONFIG_FILE}" ]]; then
|
|
echo "ERROR: kubeconfig path required."
|
|
echo "Usage: $0 /path/to/kubeconfig [context]"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "${KUBECONFIG_FILE}" ]]; then
|
|
echo "ERROR: kubeconfig not found: ${KUBECONFIG_FILE}"
|
|
exit 1
|
|
fi
|
|
|
|
export KUBECONFIG="${KUBECONFIG_FILE}"
|
|
|
|
echo "Using kubeconfig: ${KUBECONFIG}"
|
|
if [[ -n "${CONTEXT}" ]]; then
|
|
echo "Switching context: ${CONTEXT}"
|
|
kubectl config use-context "${CONTEXT}" >/dev/null
|
|
fi
|
|
|
|
echo "Target cluster:"
|
|
kubectl cluster-info
|
|
|
|
echo "Applying namespace..."
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-namespace.yaml"
|
|
|
|
if [[ "${APPLY_CONFIG:-0}" == "1" ]]; then
|
|
echo "Applying configmap (APPLY_CONFIG=1)..."
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-configmap.yaml"
|
|
else
|
|
echo "Skipping configmap (set APPLY_CONFIG=1 to apply)."
|
|
fi
|
|
|
|
if [[ "${APPLY_SECRET:-0}" == "1" ]]; then
|
|
echo "Applying secret (APPLY_SECRET=1)..."
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-secret.yaml"
|
|
else
|
|
echo "Skipping secret (set APPLY_SECRET=1 to apply)."
|
|
fi
|
|
|
|
echo "Applying RBAC..."
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-rbac.yaml"
|
|
|
|
echo "Applying deployment + service..."
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-deployment.yaml"
|
|
kubectl apply -f "${K8S_DIR}/agent-manager-service.yaml"
|
|
|
|
echo "Waiting for rollout..."
|
|
kubectl rollout status deployment/agent-manager -n agent-manager --timeout=300s
|
|
|
|
echo ""
|
|
echo "Pods:"
|
|
kubectl get pods -n agent-manager -o wide
|
|
echo ""
|
|
echo "Service:"
|
|
kubectl get svc agent-manager -n agent-manager -o wide
|
|
|
|
echo ""
|
|
echo "Done."
|
|
|