mirror of
https://github.com/labring/FastGPT.git
synced 2026-04-27 02:08:10 +08:00
567d408158
* action * action * action * build: integrate OpenSandbox as Agent Execution Sandbox (#6490) * Update action (#6571) * action * action * action * action * action * build: integrate OpenSandbox as Agent Execution Sandbox # Conflicts: # deploy/args.json # deploy/dev/docker-compose.cn.yml # deploy/dev/docker-compose.yml # deploy/docker/cn/docker-compose.milvus.yml # deploy/docker/cn/docker-compose.oceanbase.yml # deploy/docker/cn/docker-compose.pg.yml # deploy/docker/cn/docker-compose.seekdb.yml # deploy/docker/cn/docker-compose.zilliz.yml # deploy/docker/global/docker-compose.milvus.yml # deploy/docker/global/docker-compose.oceanbase.yml # deploy/docker/global/docker-compose.pg.yml # deploy/docker/global/docker-compose.seekdb.yml # deploy/docker/global/docker-compose.ziliiz.yml # deploy/templates/docker-compose.prod.yml # document/public/deploy/docker/cn/docker-compose.milvus.yml # document/public/deploy/docker/cn/docker-compose.oceanbase.yml # document/public/deploy/docker/cn/docker-compose.pg.yml # document/public/deploy/docker/cn/docker-compose.seekdb.yml # document/public/deploy/docker/cn/docker-compose.zilliz.yml # document/public/deploy/docker/global/docker-compose.milvus.yml # document/public/deploy/docker/global/docker-compose.oceanbase.yml # document/public/deploy/docker/global/docker-compose.pg.yml # document/public/deploy/docker/global/docker-compose.seekdb.yml # document/public/deploy/docker/global/docker-compose.ziliiz.yml * remove invalid action --------- Co-authored-by: Archer <545436317@qq.com> Co-authored-by: xqvvu <whoeverimf5@gmail.com> * action --------- Co-authored-by: chanzany <chenzhi@sangfor.com.cn> Co-authored-by: xqvvu <whoeverimf5@gmail.com>
231 lines
5.0 KiB
Markdown
231 lines
5.0 KiB
Markdown
# OpenSandbox Helm Chart Scripts
|
|
|
|
This directory contains utility scripts for OpenSandbox Controller deployment and testing.
|
|
|
|
## Script List
|
|
|
|
### 1. install.sh - Installation Script
|
|
|
|
Interactive installation of OpenSandbox Controller to Kubernetes cluster.
|
|
|
|
**Features:**
|
|
- Automatic detection of sudo privilege requirements
|
|
- Validation of dependency tools (helm, kubectl)
|
|
- Cluster connection verification
|
|
- Support for multiple deployment environments:
|
|
- Default configuration (values.yaml)
|
|
- E2E testing (values-e2e.yaml)
|
|
- Custom configuration (via --set or custom values file)
|
|
- Helm Chart validation
|
|
- Display verification commands after deployment
|
|
|
|
**Usage:**
|
|
```bash
|
|
cd scripts
|
|
./install.sh
|
|
```
|
|
|
|
**Environment Variables:**
|
|
- `IMAGE_REPO` - Override controller image repository
|
|
- `IMAGE_TAG` - Override controller image tag
|
|
- `SERVER_IMAGE_REPO` - Override server image repository
|
|
- `SERVER_IMAGE_TAG` - Override server image tag
|
|
|
|
**Example:**
|
|
```bash
|
|
# Using custom images
|
|
IMAGE_REPO=myregistry.com/controller \
|
|
IMAGE_TAG=v1.0.0 \
|
|
SERVER_IMAGE_REPO=myregistry.com/server \
|
|
SERVER_IMAGE_TAG=v0.1.0 \
|
|
./install.sh
|
|
```
|
|
|
|
### 2. uninstall.sh - Uninstallation Script
|
|
|
|
Uninstall OpenSandbox Controller and clean up related resources.
|
|
|
|
**Features:**
|
|
- Check running BatchSandbox and Pool resources
|
|
- Display Controller and Server deployment status
|
|
- Optional CRD deletion
|
|
- Optional namespace deletion
|
|
- Post-uninstall cleanup verification
|
|
|
|
**Usage:**
|
|
```bash
|
|
cd scripts
|
|
./uninstall.sh
|
|
```
|
|
|
|
**Environment Variables:**
|
|
- `RELEASE_NAME` - Release name (default: opensandbox-controller)
|
|
- `NAMESPACE` - Namespace (default: opensandbox)
|
|
|
|
**Example:**
|
|
```bash
|
|
# Uninstall specific release
|
|
RELEASE_NAME=my-release NAMESPACE=my-namespace ./uninstall.sh
|
|
```
|
|
|
|
### 3. e2e-test.sh - End-to-End Test Script
|
|
|
|
Execute complete end-to-end test workflow.
|
|
|
|
**Test Workflow:**
|
|
1. Helm Install (using values-e2e.yaml)
|
|
2. Verify Controller and Server deployment
|
|
3. Verify Pool deployment
|
|
4. Verify SDK calls
|
|
5. Helm Uninstall
|
|
|
|
**Features:**
|
|
- Automatic Server port-forward setup
|
|
- Server API health check validation
|
|
- Pool Pod execd process verification
|
|
- SDK integration test execution
|
|
- Automatic resource cleanup (including port-forward processes)
|
|
|
|
**Usage:**
|
|
```bash
|
|
cd scripts
|
|
./e2e-test.sh [VALUES_FILE]
|
|
|
|
# Using default values-e2e.yaml
|
|
./e2e-test.sh
|
|
|
|
# Using custom values file
|
|
./e2e-test.sh custom-values.yaml
|
|
```
|
|
|
|
**Prerequisites:**
|
|
- Required Docker images must be loaded:
|
|
- opensandbox/controller:dev
|
|
- opensandbox/server:v0.1.0
|
|
- opensandbox/task-executor:dev
|
|
- opensandbox/execd:v1.0.5
|
|
- nginx:latest
|
|
- Python SDK installed (using uv)
|
|
- Cluster has sufficient resources to run test Pods
|
|
|
|
## General Instructions
|
|
|
|
### Sudo Privileges
|
|
|
|
All scripts automatically detect whether sudo privileges are required to execute kubectl and helm commands.
|
|
|
|
### Script Paths
|
|
|
|
Scripts use relative paths to locate the Chart directory and can be invoked from any location:
|
|
```bash
|
|
# From chart root directory
|
|
./scripts/install.sh
|
|
|
|
# From scripts directory
|
|
cd scripts
|
|
./install.sh
|
|
|
|
# From other directory
|
|
/path/to/opensandbox-controller/scripts/install.sh
|
|
```
|
|
|
|
### Colored Output
|
|
|
|
Scripts use ANSI color codes to enhance readability:
|
|
- 🟢 Green - Success messages
|
|
- 🟡 Yellow - Warnings and step titles
|
|
- 🔴 Red - Error messages
|
|
|
|
### Error Handling
|
|
|
|
All scripts use `set -e`, exiting immediately on errors. The e2e-test.sh uses trap to ensure cleanup functions execute on exit.
|
|
|
|
## Troubleshooting
|
|
|
|
### install.sh
|
|
|
|
**Issue: Cannot connect to Kubernetes cluster**
|
|
```bash
|
|
# Check kubeconfig
|
|
kubectl cluster-info
|
|
|
|
# Check context
|
|
kubectl config current-context
|
|
```
|
|
|
|
**Issue: Chart validation fails**
|
|
```bash
|
|
# Manual validation
|
|
helm lint ../
|
|
```
|
|
|
|
### uninstall.sh
|
|
|
|
**Issue: Resources are still running**
|
|
```bash
|
|
# View all BatchSandbox
|
|
kubectl get batchsandboxes -A
|
|
|
|
# View all Pool
|
|
kubectl get pools -A
|
|
|
|
# Delete all resources
|
|
kubectl delete batchsandboxes --all -A
|
|
kubectl delete pools --all -A
|
|
```
|
|
|
|
### e2e-test.sh
|
|
|
|
**Issue: Port-forward fails**
|
|
```bash
|
|
# Check if any process is using port 8080
|
|
lsof -i :8080
|
|
|
|
# Manual port-forward test
|
|
kubectl port-forward -n opensandbox svc/opensandbox-controller-server 8080:8080
|
|
```
|
|
|
|
**Issue: SDK test fails**
|
|
```bash
|
|
# Check Server logs
|
|
kubectl logs -n opensandbox -l app.kubernetes.io/component=server
|
|
|
|
# Check Pool Pod logs
|
|
kubectl logs -n opensandbox -l pool=agent-pool
|
|
|
|
# Test Server API
|
|
curl http://localhost:8080/health
|
|
```
|
|
|
|
**Issue: Image not found**
|
|
```bash
|
|
# Check if images are loaded
|
|
docker images | grep opensandbox
|
|
|
|
# Reload images
|
|
docker load -i /path/to/image.tar
|
|
```
|
|
|
|
## Development Guide
|
|
|
|
### Modifying Scripts
|
|
|
|
After modifying scripts, ensure:
|
|
1. Maintain consistent error handling
|
|
2. Update related documentation
|
|
3. Use meaningful colored output
|
|
4. Add appropriate validation steps
|
|
|
|
### Adding New Scripts
|
|
|
|
New scripts should follow these conventions:
|
|
- Use `#!/bin/bash` shebang
|
|
- Use `set -e` to enable exit-on-error
|
|
- Implement automatic sudo detection
|
|
- Add colored output for readability
|
|
- Add documentation in this README
|
|
|
|
## License
|
|
|
|
Apache License 2.0
|