Created
March 15, 2025 19:49
-
-
Save drewstone/491ba2e497e35ac119d0a82f5ce070ce to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| cargo t test_deploy_agent_tee -- --nocapture | |
| Compiling coinbase-agent-kit-blueprint v0.1.0 (/Users/drew/webb/coinbase-agent-kit-blueprint) | |
| Finished `test` profile [unoptimized + debuginfo] target(s) in 5.36s | |
| Running unittests src/lib.rs (target/debug/deps/coinbase_agent_kit_blueprint-28e0891cfb14f1ad) | |
| running 1 test | |
| [21:49:02.867] Starting TEE agent deployment test | |
| [21:49:02.868] Creating agent with TEE enabled | |
| INFO gadget: Creating agent with ID: 13e5e695-8ec6-4f25-a896-337b15161363 | |
| INFO gadget: Template files copied successfully to agent directory | |
| INFO gadget: Created agent directory: /var/folders/wk/qcfly3h940s4cfmlpxbyf21w0000gn/T/.tmphXdQxg/13e5e695-8ec6-4f25-a896-337b15161363 | |
| INFO gadget: Created environment configuration | |
| INFO gadget: Registered agent 13e5e695-8ec6-4f25-a896-337b15161363 with ports HTTP:3000, WS:3001 | |
| INFO gadget: Initializing TeeDeployer for public key retrieval | |
| INFO gadget: Discovering available TEEPods... | |
| π Discovering available TEEPods... | |
| Requesting TEEPods from: https://cloud-api.phala.network/api/v1/teepods/available | |
| β TEEPod discovered: ID 2 with image dstack-0.3.5 | |
| INFO gadget: Requesting encryption public key with VM Config: Object { | |
| "advanced_features": Object { | |
| "docker_config": Object { | |
| "password": String(""), | |
| "registry": Null, | |
| "username": String(""), | |
| }, | |
| "kms": Bool(true), | |
| "listed": Bool(true), | |
| "public_logs": Bool(true), | |
| "public_sys_info": Bool(true), | |
| "tproxy": Bool(true), | |
| }, | |
| "compose_manifest": Object { | |
| "docker_compose_file": String("version: '3.8'\nservices:\n agent:\n build:\n context: .\n dockerfile: Dockerfile\n container_name: ${CONTAINER_NAME:-coinbase-agent}\n ports:\n - ${PORT:-3000}:3000\n - ${WEBSOCKET_PORT:-3001}:3001\n environment:\n - AGENT_MODE=${AGENT_MODE:-http}\n - CDP_API_KEY_NAME=${CDP_API_KEY_NAME}\n - CDP_API_KEY_PRIVATE_KEY=${CDP_API_KEY_PRIVATE_KEY}\n - LOG_LEVEL=${LOG_LEVEL:-debug}\n - MODEL=${MODEL:-gpt-4o-mini}\n - NODE_ENV=${NODE_ENV:-development}\n - OPENAI_API_KEY=${OPENAI_API_KEY}\n - PORT=${PORT:-3000}\n - WEBSOCKET_PORT=${WEBSOCKET_PORT:-3001}\n - WEBSOCKET_URL=${WEBSOCKET_URL}\n volumes:\n - ./.env:/app/.env:ro\n command: sh -c \"yarn install && yarn dev\"\n restart: unless-stopped\n healthcheck:\n test:\n - CMD\n - curl\n - -f\n - http://localhost:${PORT:-3000}/health\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n"), | |
| "features": Array [ | |
| String("kms"), | |
| String("tproxy-net"), | |
| ], | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| }, | |
| "disk_size": Number(10), | |
| "image": String("dstack-0.3.5"), | |
| "memory": Number(2048), | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| "teepod_id": Number(2), | |
| "vcpu": Number(2), | |
| } | |
| INFO gadget: Successfully obtained TEE public key | |
| [21:49:04.033] Created agent with ID: 13e5e695-8ec6-4f25-a896-337b15161363 | |
| [21:49:04.033] Preparing encrypted environment variables | |
| Encrypting environment variables | |
| [21:49:04.037] Deploying agent to TEE with encrypted environment | |
| INFO gadget: Deploying agent to TEE with normalized Docker compose YAML | |
| INFO gadget: Initializing TeeDeployer for deployment | |
| INFO gadget: Discovering available TEEPods... | |
| π Discovering available TEEPods... | |
| Requesting TEEPods from: https://cloud-api.phala.network/api/v1/teepods/available | |
| β TEEPod discovered: ID 2 with image dstack-0.3.5 | |
| INFO gadget: Creating VM configuration from Docker Compose | |
| INFO gadget: Deploying agent to TEE with VM configuration: Object { | |
| "advanced_features": Object { | |
| "docker_config": Object { | |
| "password": String(""), | |
| "registry": Null, | |
| "username": String(""), | |
| }, | |
| "kms": Bool(true), | |
| "listed": Bool(true), | |
| "public_logs": Bool(true), | |
| "public_sys_info": Bool(true), | |
| "tproxy": Bool(true), | |
| }, | |
| "compose_manifest": Object { | |
| "docker_compose_file": String("version: '3.8'\nservices:\n agent:\n build:\n context: .\n dockerfile: Dockerfile\n container_name: ${CONTAINER_NAME:-coinbase-agent}\n ports:\n - ${PORT:-3000}:3000\n - ${WEBSOCKET_PORT:-3001}:3001\n environment:\n - AGENT_MODE=${AGENT_MODE:-http}\n - CDP_API_KEY_NAME=${CDP_API_KEY_NAME}\n - CDP_API_KEY_PRIVATE_KEY=${CDP_API_KEY_PRIVATE_KEY}\n - LOG_LEVEL=${LOG_LEVEL:-debug}\n - MODEL=${MODEL:-gpt-4o-mini}\n - NODE_ENV=${NODE_ENV:-development}\n - OPENAI_API_KEY=${OPENAI_API_KEY}\n - PORT=${PORT:-3000}\n - WEBSOCKET_PORT=${WEBSOCKET_PORT:-3001}\n - WEBSOCKET_URL=${WEBSOCKET_URL}\n volumes:\n - ./.env:/app/.env:ro\n command: sh -c \"yarn install && yarn dev\"\n restart: unless-stopped\n healthcheck:\n test:\n - CMD\n - curl\n - -f\n - http://localhost:${PORT:-3000}/health\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n"), | |
| "features": Array [ | |
| String("kms"), | |
| String("tproxy-net"), | |
| ], | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| }, | |
| "disk_size": Number(10), | |
| "image": String("dstack-0.3.5"), | |
| "memory": Number(2048), | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| "teepod_id": Number(2), | |
| "vcpu": Number(2), | |
| } | |
| INFO gadget: Requesting encryption public key... | |
| INFO gadget: Deploying agent to TEE with encrypted environment variables | |
| request_body: { | |
| "advanced_features": Object { | |
| "docker_config": Object { | |
| "password": String(""), | |
| "registry": Null, | |
| "username": String(""), | |
| }, | |
| "kms": Bool(true), | |
| "listed": Bool(true), | |
| "public_logs": Bool(true), | |
| "public_sys_info": Bool(true), | |
| "tproxy": Bool(true), | |
| }, | |
| "app_env_encrypt_pubkey": String("b96a45c8f88b32cc53e07af476e09743782c76c55717eb26212a819d6ad7ee6a"), | |
| "app_id_salt": String("ce4dc6cd-c870-4cfd-ba8d-c9ab07a20f65"), | |
| "compose_manifest": Object { | |
| "docker_compose_file": String("version: '3.8'\nservices:\n agent:\n build:\n context: .\n dockerfile: Dockerfile\n container_name: ${CONTAINER_NAME:-coinbase-agent}\n ports:\n - ${PORT:-3000}:3000\n - ${WEBSOCKET_PORT:-3001}:3001\n environment:\n - AGENT_MODE=${AGENT_MODE:-http}\n - CDP_API_KEY_NAME=${CDP_API_KEY_NAME}\n - CDP_API_KEY_PRIVATE_KEY=${CDP_API_KEY_PRIVATE_KEY}\n - LOG_LEVEL=${LOG_LEVEL:-debug}\n - MODEL=${MODEL:-gpt-4o-mini}\n - NODE_ENV=${NODE_ENV:-development}\n - OPENAI_API_KEY=${OPENAI_API_KEY}\n - PORT=${PORT:-3000}\n - WEBSOCKET_PORT=${WEBSOCKET_PORT:-3001}\n - WEBSOCKET_URL=${WEBSOCKET_URL}\n volumes:\n - ./.env:/app/.env:ro\n command: sh -c \"yarn install && yarn dev\"\n restart: unless-stopped\n healthcheck:\n test:\n - CMD\n - curl\n - -f\n - http://localhost:${PORT:-3000}/health\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n"), | |
| "features": Array [ | |
| String("kms"), | |
| String("tproxy-net"), | |
| ], | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| }, | |
| "disk_size": Number(10), | |
| "encrypted_env": String("9b5d54a78c9864af1ce0695907bec13d2a31faccd91a8209dd4e6531362c846ca3b60bbff14a2258c26560210267f314b847376f6676eecbad678060ad81c9912beae243481a3d8037356ddd9d866255a00b90c50bb1941d729c5a22f957d4910fe151415216c8b9cf095c3cd2d9c532806f321eb1ba37b890823b4515f35c575b04a2394c826982afd074831d25b387ab64af5332dc04078c97b03e34c05b2236a06b72276dcfd9245aa65c5f74026bea32c9aafa1fd4077cee08bb7e53a9fa16a7013fa9c66766473a10f106b41005fca06a7c448dfcc4666dfef8002203a2171b36063f7dc925da5db042200b1669ad6c058a6ace8e328d3e99933b5cf6a213c93efb6fb7852a7a5a4e2284605e7de477a1cb46b69e9956d1e4defc5724ffce44c6754fa1eac5ce9dce2c41110cbe2c57064ccc678724558781866c31d7d11717dfc394e1e7286c98469b2cb1edd85f1bfe32ef16076edbeaceaaba3960d6308b2aa98c0956de21b7ff49536858304adb056d4bb6e144f37cfedad0cfddee0a2599e43fb8d6bd38f80e2fff405f2b0ce4fcd7e12b898a0b8622069b9b037eee22bf681c99ae93448490f648eb1a15c37454e2bef30b1f43ad0063c961a65a5f224243717ced3c19dd4f5bf2c9dbe74a9ffb6e1587912032458f3d1416584ef716531e86d03296685daabba2f567a42603d597faaa36ae0c7449d98a6493c475e4bd7e0aceb79839ed43d9ceadd8c47ffed6253514edb2f3903965c831cbc019be0d6ffd629e528a6888e4f13f3334f436413e98239c71c2c44795ce43ecd56473f18969f68f76a6e311dc8903ab06937abfd77fdbb500fa5a8bf729383ed32b805056aafc2b67f6105a2963edfe819c2f62fa1c7b59939f9533492d57b6052044ba9ae87284b557775fd93fc08956f222e964aafb5b4ad6a64b57d61449fc1d869638062f31a7b3a22618acfd32e1840b783432e9a4727bd0fb6bb588f737408520b5bbc48e563bc606cc12506082e44486ea79795646682d489f08d8a671b5671db1c854747d3ac34bad462abd0904d4f71c5b717f86a64c3ff0cbd1683e46795b3f6c00c9837864538b8b07be76b970c1b34f5da128ce64e01cc08d17e9b624d5297f1fbd3e910931f613f41aa6efde598335d5c81f605ed07ee1483ca6ce751ffc5e32683812f4a83587421d119674b5b2833f8bbbd31e4a2c93eab6753166bb4f5a3e03c2c9647d8049c297583ab94742b4f1d0df4936eec53102e062b35b6a4009b3ba3951f0c92ff5694f8beb6fcc5746885529ac51ca3d00c71701e33673781a6381acba0360ef67c076e7ef6ed67d56a1ce53fe3597f8e7ff2556e03c4f995c38b2507c862a48fc5fccebf2108d8fffa642b434235d583b37413dbfe918d35f23034d693f54071bd78c74871c1df2aaec495606d0a47c94a57fa8d90a6c7f29770506b24be3b841008889b9"), | |
| "image": String("dstack-0.3.5"), | |
| "memory": Number(2048), | |
| "name": String("coinbase-agent-13e5e695-8ec6-4f25-a896-337b15161363"), | |
| "teepod_id": Number(2), | |
| "vcpu": Number(2), | |
| } | |
| INFO gadget: TEE deployment completed. Deployment: DeploymentResponse { | |
| id: 3089, | |
| status: "creating", | |
| details: None, | |
| } | |
| [21:49:05.454] Successfully deployed agent to TEE: AgentDeploymentResult { agent_id: "13e5e695-8ec6-4f25-a896-337b15161363", tee_pubkey: Some("b96a45c8f88b32cc53e07af476e09743782c76c55717eb26212a819d6ad7ee6a"), tee_app_id: Some("dda90c4286c951db4854587e50bd091fc09f7201") } | |
| INFO gadget: Health check attempt 1 of 30 for http://localhost:3000 | |
| INFO gadget: Sending health check request to: http://localhost:3000/health | |
| WARN gadget: Connection error during health check: error sending request for url (http://localhost:3000/health): error trying to connect: tcp connect error: Connection refused (os error 61) | |
| WARN gadget: Health check attempt 1 failed: Connection error during health check: error sending request for url (http://localhost:3000/health): error trying to connect: tcp connect error: Connection refused (os error 61) | |
| INFO gadget: Waiting 1s before next attempt | |
| ^C |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment