-
Notifications
You must be signed in to change notification settings - Fork 543
Open
Description
现在的sandbox-server只能获取到通过SDK创建的沙箱,无法获取到通过kubectl apply -f xxxxxx.yaml创建的,例如
apiVersion: sandbox.opensandbox.io/v1alpha1
kind: BatchSandbox
metadata:
name: batch-sample
namespace: sail-workspace
spec:
replicas: 1
template:
metadata:
labels:
app: example
spec:
volumes:
- name: sandbox-storage
emptyDir: {}
- name: opensandbox-bin
emptyDir: {}
initContainers:
- name: task-executor-installer
image: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/task-executor:v0.1.0
command: ["/bin/sh", "-c"]
args:
- |
cp /workspace/server /opt/opensandbox/bin/task-executor &&
chmod +x /opt/opensandbox/bin/task-executor
volumeMounts:
- name: opensandbox-bin
mountPath: /opt/opensandbox/bin
- name: execd-installer
image: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/execd:v1.0.6
command: ["/bin/sh", "-c"]
args:
- |
cp ./execd /opt/opensandbox/bin/execd &&
cp ./bootstrap.sh /opt/opensandbox/bin/bootstrap.sh &&
chmod +x /opt/opensandbox/bin/execd &&
chmod +x /opt/opensandbox/bin/bootstrap.sh
volumeMounts:
- name: opensandbox-bin
mountPath: /opt/opensandbox/bin
containers:
- name: sandbox
image: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/code-interpreter:v1.0.1
command:
- "/bin/sh"
- "-c"
- |
/opt/opensandbox/bin/task-executor -listen-addr=0.0.0.0:5758 >/tmp/task-executor.log 2>&1
env:
- name: SANDBOX_MAIN_CONTAINER
value: main
- name: EXECD_ENVS
value: /opt/opensandbox/.env
- name: EXECD
value: /opt/opensandbox/bin/execd
volumeMounts:
- name: sandbox-storage
mountPath: /var/lib/sandbox
- name: opensandbox-bin
mountPath: /opt/opensandbox/bin
tolerations:
- operator: "Exists"
使用这个yaml创建完成后,通过SDK访问server获取集群中存在的沙箱
import asyncio
import os
from datetime import timedelta
from code_interpreter import CodeInterpreter, SupportedLanguage
from opensandbox import Sandbox
from opensandbox.manager import SandboxManager
from opensandbox.models.sandboxes import SandboxFilter
from opensandbox.config import ConnectionConfig
async def main() -> None:
domain = os.getenv("SANDBOX_DOMAIN", "localhost:32067")
api_key = os.getenv("SANDBOX_API_KEY")
image = os.getenv(
"SANDBOX_IMAGE",
"sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/code-interpreter:v1.0.1",
)
config = ConnectionConfig(
domain=domain,
api_key=api_key,
request_timeout=timedelta(seconds=60),
use_server_proxy=True,
)
async with await SandboxManager.create(connection_config=config) as manager:
# 列出运行中的沙箱
sandboxes = await manager.list_sandbox_infos(
SandboxFilter(
page_size=10
)
)
print(sandboxes.sandbox_infos)
for info in sandboxes.sandbox_infos:
print(f"找到沙箱: {info.id}")
print(info.__dir__())
return
main()
得到的结果是
[]
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels