terradev-cli 3.5.3__tar.gz → 3.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- terradev_cli-3.7.1/.clawhubignore +5 -0
- terradev_cli-3.7.1/.ebextensions/python.config +6 -0
- terradev_cli-3.7.1/.env.example +84 -0
- terradev_cli-3.7.1/.env.template +164 -0
- terradev_cli-3.7.1/.github/workflows/ci.yml +105 -0
- terradev_cli-3.7.1/.github/workflows/deploy.yml +30 -0
- terradev_cli-3.7.1/.github/workflows/release.yml +50 -0
- terradev_cli-3.7.1/.github/workflows/static.yml +42 -0
- terradev_cli-3.7.1/BingSiteAuth.xml +4 -0
- terradev_cli-3.7.1/Dockerfile +55 -0
- terradev_cli-3.7.1/Dockerfile.hub +70 -0
- terradev_cli-3.7.1/LICENSE +114 -0
- terradev_cli-3.7.1/MANIFEST.in +33 -0
- terradev_cli-3.7.1/PAGES_README.md +45 -0
- terradev_cli-3.7.1/PKG-INFO +470 -0
- terradev_cli-3.7.1/PROGRESS_UPDATE_JUPYTER.ipynb +445 -0
- terradev_cli-3.7.1/README.md +384 -0
- terradev_cli-3.7.1/README_ACTION.md +200 -0
- terradev_cli-3.7.1/README_DOCKER.md +287 -0
- terradev_cli-3.7.1/README_JUPYTER.md +382 -0
- terradev_cli-3.5.3/PKG-INFO → terradev_cli-3.7.1/README_long.md +235 -94
- terradev_cli-3.7.1/SKILL.md +241 -0
- terradev_cli-3.7.1/USER_GUIDE.md +601 -0
- terradev_cli-3.7.1/VLLM_AUTO_OPTIMIZATION_GUIDE.md +294 -0
- terradev_cli-3.7.1/VLLM_OPTIMIZATION_GUIDE.md +220 -0
- terradev_cli-3.7.1/VLLM_OPTIMIZATION_SUMMARY.md +155 -0
- terradev_cli-3.7.1/action.py +106 -0
- terradev_cli-3.7.1/action.yml +50 -0
- terradev_cli-3.7.1/activations/973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b.json +1 -0
- terradev_cli-3.7.1/ai-discovery.json +114 -0
- terradev_cli-3.7.1/analysis/api-differences-comparison.tf +311 -0
- terradev_cli-3.7.1/analysis/cost-structure-differences.tf +198 -0
- terradev_cli-3.7.1/analysis/inference-arbitrage-pivot.tf +322 -0
- terradev_cli-3.7.1/apis/free-apis-latency-arbitrage.tf +504 -0
- terradev_cli-3.7.1/b2b_roi_analysis.json +142 -0
- terradev_cli-3.7.1/bucket-policy.json +12 -0
- terradev_cli-3.7.1/business/compute-arbitrage-business.md +383 -0
- terradev_cli-3.7.1/byoapi_real_snapshot.json +107 -0
- terradev_cli-3.7.1/clusters/glm-5/README.md +73 -0
- terradev_cli-3.7.1/clusters/glm-5/helm/values-glm5.yaml +152 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/hpa.yaml +55 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/model-cache-pvc.yaml +35 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/namespace.yaml +8 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/pdb.yaml +14 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/service.yaml +49 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/sglang-deployment.yaml +176 -0
- terradev_cli-3.7.1/clusters/glm-5/k8s/vllm-deployment.yaml +215 -0
- terradev_cli-3.7.1/clusters/glm-5/task.yaml +81 -0
- terradev_cli-3.7.1/clusters/glm-5/terraform/main.tf +190 -0
- terradev_cli-3.7.1/clusters/glm-5/terraform/outputs.tf +60 -0
- terradev_cli-3.7.1/clusters/glm-5/terraform/variables.tf +108 -0
- terradev_cli-3.7.1/clusters/moe-template/README.md +141 -0
- terradev_cli-3.7.1/clusters/moe-template/helm/values-moe.yaml +231 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/deployment.yaml +358 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/hpa.yaml +51 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/model-cache-pvc.yaml +19 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/namespace.yaml +9 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/pdb.yaml +14 -0
- terradev_cli-3.7.1/clusters/moe-template/k8s/service.yaml +47 -0
- terradev_cli-3.7.1/clusters/moe-template/task.yaml +159 -0
- terradev_cli-3.7.1/clusters/moe-template/terraform/main.tf +213 -0
- terradev_cli-3.7.1/clusters/moe-template/terraform/outputs.tf +60 -0
- terradev_cli-3.7.1/clusters/moe-template/terraform/variables.tf +170 -0
- terradev_cli-3.7.1/clusters/rag-template/README.md +60 -0
- terradev_cli-3.7.1/clusters/rag-template/helm/values-rag.yaml +106 -0
- terradev_cli-3.7.1/clusters/rag-template/k8s/deployment.yaml +290 -0
- terradev_cli-3.7.1/clusters/rag-template/terraform/main.tf +84 -0
- terradev_cli-3.7.1/complete_weakness_resolution_report.json +1336 -0
- terradev_cli-3.7.1/config.json +1 -0
- terradev_cli-3.7.1/demo/RECORDING_GUIDE.md +80 -0
- terradev_cli-3.7.1/demo/generate_gif.py +339 -0
- terradev_cli-3.7.1/demo/terradev-demo.gif +0 -0
- terradev_cli-3.7.1/demo_k8s_config.yaml +35 -0
- terradev_cli-3.7.1/docker-compose.yml +101 -0
- terradev_cli-3.7.1/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +173 -0
- terradev_cli-3.7.1/docs/API_DOCUMENTATION.md +901 -0
- terradev_cli-3.7.1/docs/BingSiteAuth.xml +4 -0
- terradev_cli-3.7.1/docs/FINOPS_ATTRIBUTION_SYSTEM.md +286 -0
- terradev_cli-3.7.1/docs/USER_GUIDE.md +952 -0
- terradev_cli-3.7.1/docs/architecture.md +228 -0
- terradev_cli-3.7.1/docs/index.html +167 -0
- terradev_cli-3.7.1/docs/robots.txt +28 -0
- terradev_cli-3.7.1/docs/sitemap.xml +45 -0
- terradev_cli-3.7.1/eb_deploy.zip +1 -0
- terradev_cli-3.7.1/genius_data_storage/data_compressor.py +377 -0
- terradev_cli-3.7.1/genius_data_storage/genius_data_demo.py +357 -0
- terradev_cli-3.7.1/genius_data_storage/integrity_verifier.py +582 -0
- terradev_cli-3.7.1/genius_data_storage/main.tf +682 -0
- terradev_cli-3.7.1/genius_data_storage/zero_egress_accessor.py +524 -0
- terradev_cli-3.7.1/gpu-check.sh +84 -0
- terradev_cli-3.7.1/grafana_training_dashboard.json +385 -0
- terradev_cli-3.7.1/helm/terradev/Chart.yaml +38 -0
- terradev_cli-3.7.1/helm/terradev/templates/_helpers.tpl +127 -0
- terradev_cli-3.7.1/helm/terradev/templates/deployment.yaml +176 -0
- terradev_cli-3.7.1/helm/terradev/values.yaml +423 -0
- terradev_cli-3.7.1/high_throughput_workload.json +5 -0
- terradev_cli-3.7.1/index.html +167 -0
- terradev_cli-3.7.1/infrastructure/kubernetes/microservices.yaml +633 -0
- terradev_cli-3.7.1/infrastructure/terraform/main.tf +1304 -0
- terradev_cli-3.7.1/infrastructure/terraform/parallelism.tf +86 -0
- terradev_cli-3.7.1/integrations/cli-tool.tf +606 -0
- terradev_cli-3.7.1/integrations/cloud-management-widgets.tf +131 -0
- terradev_cli-3.7.1/integrations/cloud-provider-apis.py +602 -0
- terradev_cli-3.7.1/integrations/critical-widgets.tf +933 -0
- terradev_cli-3.7.1/integrations/devops-cicd-widgets.tf +243 -0
- terradev_cli-3.7.1/integrations/devops-essential-tools.tf +314 -0
- terradev_cli-3.7.1/integrations/docker-integration.tf +423 -0
- terradev_cli-3.7.1/integrations/kubernetes-operator.tf +276 -0
- terradev_cli-3.7.1/integrations/mlflow-integration.tf +366 -0
- terradev_cli-3.7.1/kaggle_notebooks/01_hf_spaces_cost_optimization.ipynb +456 -0
- terradev_cli-3.7.1/kubernetes_training_deployment.yaml +253 -0
- terradev_cli-3.7.1/llms.txt +209 -0
- terradev_cli-3.7.1/modules/datadog/README.md +59 -0
- terradev_cli-3.7.1/modules/datadog/dashboard.tf +237 -0
- terradev_cli-3.7.1/modules/datadog/monitors.tf +203 -0
- terradev_cli-3.7.1/modules/datadog/outputs.tf +21 -0
- terradev_cli-3.7.1/modules/datadog/provider.tf +5 -0
- terradev_cli-3.7.1/modules/datadog/variables.tf +77 -0
- terradev_cli-3.7.1/modules/datadog/versions.tf +10 -0
- terradev_cli-3.7.1/nginx.conf +30 -0
- terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/.clawhubignore +5 -0
- terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/LICENSE +21 -0
- terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/README.md +106 -0
- terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/SKILL.md +314 -0
- terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/gpu-check.sh +84 -0
- terradev_cli-3.7.1/parallel_provisioning.tf +338 -0
- terradev_cli-3.7.1/partnerships/brand-partnerships.tf +523 -0
- terradev_cli-3.7.1/partnerships/partnership-roadmap.tf +232 -0
- terradev_cli-3.7.1/pricing_analysis_report.json +164 -0
- terradev_cli-3.7.1/prometheus_training_config.yml +185 -0
- terradev_cli-3.7.1/provision_based_pricing_analysis.json +111 -0
- terradev_cli-3.7.1/pypi_traffic_report.json +84 -0
- terradev_cli-3.7.1/pyproject.toml +184 -0
- terradev_cli-3.7.1/pyproject_v2.toml +119 -0
- terradev_cli-3.7.1/real_day_one_snapshot.json +52 -0
- terradev_cli-3.7.1/remaining_25_analysis_report.json +722 -0
- terradev_cli-3.7.1/render.yaml +18 -0
- terradev_cli-3.7.1/requirements-render.txt +1 -0
- terradev_cli-3.7.1/requirements.txt +56 -0
- terradev_cli-3.7.1/requirements_api.txt +8 -0
- terradev_cli-3.7.1/requirements_eb.txt +4 -0
- terradev_cli-3.7.1/requirements_stripe.txt +5 -0
- terradev_cli-3.7.1/robots.txt +28 -0
- terradev_cli-3.7.1/sample_workload.json +7 -0
- terradev_cli-3.7.1/setup/Lambda Cloud API spec 1.8.3.json +4816 -0
- terradev_cli-3.7.1/setup/account-setup-guide.tf +393 -0
- terradev_cli-3.7.1/setup/setup.sh +411 -0
- terradev_cli-3.7.1/sitemap.xml +45 -0
- terradev_cli-3.7.1/telemetry_production.db-shm +0 -0
- terradev_cli-3.7.1/telemetry_production.db-wal +0 -0
- terradev_cli-3.7.1/terradev_cli/CHANGELOG.md +163 -0
- terradev_cli-3.7.1/terradev_cli/README.md +384 -0
- terradev_cli-3.7.1/terradev_cli/README_old.md +492 -0
- terradev_cli-3.5.3/README.md → terradev_cli-3.7.1/terradev_cli/README_with_emojis.md +127 -57
- terradev_cli-3.7.1/terradev_cli/__init__.py +11 -0
- terradev_cli-3.7.1/terradev_cli/__main__.py +31 -0
- terradev_cli-3.7.1/terradev_cli/bandit-report.json +388 -0
- terradev_cli-3.7.1/terradev_cli/build/lib/core/helm_generator.py +923 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/stripe_manager.py +90 -9
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/training_orchestrator.py +162 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_enhanced.py +249 -13
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_service.py +4 -4
- terradev_cli-3.7.1/terradev_cli/build/lib/terradev_cli/__init__.py +1 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib/terradev_cli}/cli.py +264 -193
- terradev_cli-3.7.1/terradev_cli/cli.py +8542 -0
- terradev_cli-3.7.1/terradev_cli/cli_clean.py +35 -0
- terradev_cli-3.7.1/terradev_cli/cli_enhanced.py +577 -0
- terradev_cli-3.7.1/terradev_cli/cli_final.py +823 -0
- terradev_cli-3.7.1/terradev_cli/cli_optimization.py +479 -0
- terradev_cli-3.7.1/terradev_cli/cli_optimization_fixed.py +875 -0
- terradev_cli-3.7.1/terradev_cli/cli_optimization_simple.py +850 -0
- terradev_cli-3.7.1/terradev_cli/cli_simple.py +249 -0
- terradev_cli-3.7.1/terradev_cli/cli_tiered.py +372 -0
- terradev_cli-3.7.1/terradev_cli/core/__init__.py +78 -0
- terradev_cli-3.7.1/terradev_cli/core/auth.py +293 -0
- terradev_cli-3.7.1/terradev_cli/core/checkpoint_manager.py +570 -0
- terradev_cli-3.7.1/terradev_cli/core/config.py +274 -0
- terradev_cli-3.7.1/terradev_cli/core/cost_scaler.py +474 -0
- terradev_cli-3.7.1/terradev_cli/core/cost_tracker.py +341 -0
- terradev_cli-3.7.1/terradev_cli/core/cuda_graph_integrator.py +278 -0
- terradev_cli-3.7.1/terradev_cli/core/dag_executor.py +636 -0
- terradev_cli-3.7.1/terradev_cli/core/data_governance.py +796 -0
- terradev_cli-3.7.1/terradev_cli/core/dataset_stager.py +519 -0
- terradev_cli-3.7.1/terradev_cli/core/deployment_router.py +412 -0
- terradev_cli-3.7.1/terradev_cli/core/drift_detector.py +243 -0
- terradev_cli-3.7.1/terradev_cli/core/egress_optimizer.py +743 -0
- terradev_cli-3.7.1/terradev_cli/core/gitops_manager.py +745 -0
- terradev_cli-3.7.1/terradev_cli/core/gpu_topology.py +1213 -0
- terradev_cli-3.7.1/terradev_cli/core/helm_generator.py +923 -0
- terradev_cli-3.5.3/core/helm_generator.py → terradev_cli-3.7.1/terradev_cli/core/helm_generator_old.py +69 -67
- terradev_cli-3.7.1/terradev_cli/core/hf_cli_integration.py +439 -0
- terradev_cli-3.7.1/terradev_cli/core/hf_smart_templates.py +996 -0
- terradev_cli-3.7.1/terradev_cli/core/hf_spaces.py +348 -0
- terradev_cli-3.7.1/terradev_cli/core/inference_router.py +1312 -0
- terradev_cli-3.7.1/terradev_cli/core/job_state_manager.py +420 -0
- terradev_cli-3.7.1/terradev_cli/core/manifest_cache.py +114 -0
- terradev_cli-3.7.1/terradev_cli/core/manifest_example.json +1 -0
- terradev_cli-3.7.1/terradev_cli/core/model_orchestrator.py +740 -0
- terradev_cli-3.7.1/terradev_cli/core/optimization_config.py +206 -0
- terradev_cli-3.7.1/terradev_cli/core/parallel_provisioner.py +194 -0
- terradev_cli-3.7.1/terradev_cli/core/preflight_validator.py +820 -0
- terradev_cli-3.7.1/terradev_cli/core/price_discovery.py +385 -0
- terradev_cli-3.7.1/terradev_cli/core/price_discovery_mock.py +407 -0
- terradev_cli-3.7.1/terradev_cli/core/price_intelligence.py +897 -0
- terradev_cli-3.7.1/terradev_cli/core/quick_start.py +307 -0
- terradev_cli-3.7.1/terradev_cli/core/rate_limiter.py +428 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_router.py +1185 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/__init__.py +35 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/base_signal.py +121 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/complexity_signal.py +184 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/domain_signal.py +144 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/keyword_signal.py +139 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/language_signal.py +164 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/modality_signal.py +150 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/orchestrator.py +341 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/routing_policy.yaml +135 -0
- terradev_cli-3.7.1/terradev_cli/core/semantic_signals/safety_signal.py +164 -0
- terradev_cli-3.7.1/terradev_cli/core/ssh_key_manager.py +182 -0
- terradev_cli-3.7.1/terradev_cli/core/stripe_manager.py +563 -0
- terradev_cli-3.7.1/terradev_cli/core/telemetry.py +463 -0
- terradev_cli-3.7.1/terradev_cli/core/telemetry_backup.py +490 -0
- terradev_cli-3.7.1/terradev_cli/core/terradev_engine.py +530 -0
- terradev_cli-3.7.1/terradev_cli/core/tier_manager.py +330 -0
- terradev_cli-3.7.1/terradev_cli/core/trace_viewer.py +157 -0
- terradev_cli-3.7.1/terradev_cli/core/training_monitor.py +546 -0
- terradev_cli-3.7.1/terradev_cli/core/training_orchestrator.py +692 -0
- terradev_cli-3.7.1/terradev_cli/core/warm_pool_manager.py +726 -0
- terradev_cli-3.7.1/terradev_cli/cost_optimizer.py +518 -0
- terradev_cli-3.7.1/terradev_cli/credential_prompt.py +164 -0
- terradev_cli-3.7.1/terradev_cli/demo.py +375 -0
- terradev_cli-3.7.1/terradev_cli/entry_point.py +210 -0
- terradev_cli-3.7.1/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
- terradev_cli-3.7.1/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
- terradev_cli-3.7.1/terradev_cli/integrations/__init__.py +1 -0
- terradev_cli-3.7.1/terradev_cli/integrations/datadog_integration.py +688 -0
- terradev_cli-3.7.1/terradev_cli/integrations/prometheus_integration.py +302 -0
- terradev_cli-3.7.1/terradev_cli/integrations/wandb_integration.py +134 -0
- terradev_cli-3.7.1/terradev_cli/k8s/terraform_wrapper.py +425 -0
- terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-cost-optimized.yaml +630 -0
- terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-infrastructure.yaml +404 -0
- terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-models.yaml +531 -0
- terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-platform.yaml +619 -0
- terradev_cli-3.7.1/terradev_cli/kubernetes/inferx_setup.py +550 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/__init__.py +41 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/dvc_service.py +561 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/guardrails_service.py +395 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/huggingface_service.py +483 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/kserve_service.py +584 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_enhanced.py +960 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_enhanced_fixed.py +408 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_service.py +572 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/langchain_service.py +560 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/langgraph_service.py +615 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/langsmith_service.py +481 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/lmcache_service.py +457 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/mlflow_service.py +585 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/ollama_service.py +492 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/phoenix_service.py +301 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/qdrant_service.py +253 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/ray_enhanced.py +1100 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/ray_service.py +555 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/sglang_service.py +526 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/vllm_service.py +1180 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/wandb_enhanced.py +788 -0
- terradev_cli-3.7.1/terradev_cli/ml_services/wandb_service.py +426 -0
- terradev_cli-3.7.1/terradev_cli/optimization/__init__.py +25 -0
- terradev_cli-3.7.1/terradev_cli/optimization/auto_optimizer.py +679 -0
- terradev_cli-3.7.1/terradev_cli/optimization/cuco_optimizer.py +750 -0
- terradev_cli-3.7.1/terradev_cli/providers/__init__.py +1 -0
- terradev_cli-3.7.1/terradev_cli/providers/alibaba_provider.py +492 -0
- terradev_cli-3.7.1/terradev_cli/providers/aws_provider.py +540 -0
- terradev_cli-3.7.1/terradev_cli/providers/azure_provider.py +303 -0
- terradev_cli-3.7.1/terradev_cli/providers/base_provider.py +194 -0
- terradev_cli-3.7.1/terradev_cli/providers/baseten_provider.py +193 -0
- terradev_cli-3.7.1/terradev_cli/providers/coreweave_provider.py +226 -0
- terradev_cli-3.7.1/terradev_cli/providers/crusoe_provider.py +463 -0
- terradev_cli-3.7.1/terradev_cli/providers/demo_mode.py +123 -0
- terradev_cli-3.7.1/terradev_cli/providers/digitalocean_provider.py +310 -0
- terradev_cli-3.7.1/terradev_cli/providers/fluidstack_provider.py +359 -0
- terradev_cli-3.7.1/terradev_cli/providers/gcp_provider.py +362 -0
- terradev_cli-3.7.1/terradev_cli/providers/hetzner_provider.py +469 -0
- terradev_cli-3.7.1/terradev_cli/providers/huggingface_provider.py +244 -0
- terradev_cli-3.7.1/terradev_cli/providers/hyperstack_provider.py +353 -0
- terradev_cli-3.7.1/terradev_cli/providers/inferx_provider.py +374 -0
- terradev_cli-3.7.1/terradev_cli/providers/lambda_labs_provider.py +215 -0
- terradev_cli-3.7.1/terradev_cli/providers/oracle_provider.py +254 -0
- terradev_cli-3.7.1/terradev_cli/providers/ovhcloud_provider.py +429 -0
- terradev_cli-3.7.1/terradev_cli/providers/provider_factory.py +107 -0
- terradev_cli-3.7.1/terradev_cli/providers/real_pricing.py +293 -0
- terradev_cli-3.7.1/terradev_cli/providers/runpod_provider.py +258 -0
- terradev_cli-3.7.1/terradev_cli/providers/siliconflow_provider.py +454 -0
- terradev_cli-3.7.1/terradev_cli/providers/tensordock_provider.py +237 -0
- terradev_cli-3.7.1/terradev_cli/providers/vastai_provider.py +197 -0
- terradev_cli-3.7.1/terradev_cli/requirements.txt +3 -0
- terradev_cli-3.7.1/terradev_cli/requirements_minimal.txt +3 -0
- terradev_cli-3.7.1/terradev_cli/safety-report.json +18554 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli}/setup.py +4 -4
- terradev_cli-3.7.1/terradev_cli/telemetry_protection.py +180 -0
- terradev_cli-3.7.1/terradev_cli/terradev_cli/__init__.py +1 -0
- terradev_cli-3.7.1/terradev_cli/terradev_cli/cli.py +8366 -0
- terradev_cli-3.7.1/terradev_cli/terraform/main.tf +139 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/__init__.py +19 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +271 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/main.tf +143 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +69 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +83 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +12 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +231 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +107 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +59 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +63 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +12 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +231 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +107 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +59 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +63 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +12 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +231 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +107 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +59 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +63 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +12 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +95 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +29 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/main.tf +183 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +50 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +59 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +16 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/main.tf +193 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/outputs.tf +50 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/variables.tf +52 -0
- terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/versions.tf +12 -0
- terradev_cli-3.7.1/terradev_cli/terraform/outputs.tf +118 -0
- terradev_cli-3.7.1/terradev_cli/terraform/price-optimizer/optimal-allocation.py +188 -0
- terradev_cli-3.7.1/terradev_cli/terraform/providers.tf +22 -0
- terradev_cli-3.7.1/terradev_cli/terraform/variables.tf +95 -0
- terradev_cli-3.7.1/terradev_cli/utils/__init__.py +1 -0
- terradev_cli-3.7.1/terradev_cli/utils/formatters.py +235 -0
- terradev_cli-3.7.1/terradev_cli.egg-info/PKG-INFO +470 -0
- terradev_cli-3.7.1/terradev_cli.egg-info/SOURCES.txt +481 -0
- terradev_cli-3.7.1/terradev_cli.egg-info/entry_points.txt +2 -0
- terradev_cli-3.7.1/terradev_cli.egg-info/requires.txt +59 -0
- terradev_cli-3.7.1/terradev_cli.egg-info/top_level.txt +1 -0
- terradev_cli-3.7.1/terraform.tfvars.example +50 -0
- terradev_cli-3.7.1/terraform_cli/README.md +471 -0
- terradev_cli-3.7.1/terraform_cli/demo_usage.py +152 -0
- terradev_cli-3.7.1/terraform_cli/install.sh +346 -0
- terradev_cli-3.7.1/terraform_cli/terradev_cli.py +717 -0
- terradev_cli-3.7.1/terraform_optimization/backend.tf +606 -0
- terradev_cli-3.7.1/terraform_optimization/error_handling.py +742 -0
- terradev_cli-3.7.1/terraform_optimization/storage_choice_matrix.py +681 -0
- terradev_cli-3.7.1/terraform_optimization/test_error_handler.py +83 -0
- terradev_cli-3.7.1/terraform_optimization/versions.tf +668 -0
- terradev_cli-3.7.1/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +428 -0
- terradev_cli-3.7.1/terraform_transparency/audit_trail.py +610 -0
- terradev_cli-3.7.1/terraform_transparency/audit_trails.json +430 -0
- terradev_cli-3.7.1/terraform_transparency/decision_engine.py +671 -0
- terradev_cli-3.7.1/terraform_transparency/decision_logs.json +192 -0
- terradev_cli-3.7.1/terraform_transparency/operations.json +45 -0
- terradev_cli-3.7.1/terraform_transparency/terraform_manager.py +627 -0
- terradev_cli-3.7.1/terraform_transparency/terraform_plans.json +1 -0
- terradev_cli-3.7.1/terraform_transparency/transparency_demo.py +417 -0
- terradev_cli-3.7.1/terraform_transparency/transparency_report.json +33 -0
- terradev_cli-3.7.1/test_vllm_optimization.py +182 -0
- terradev_cli-3.7.1/tests/INTEGRATION_STRATEGY.md +337 -0
- terradev_cli-3.7.1/tests/Makefile +201 -0
- terradev_cli-3.7.1/tests/ci_pipeline.py +480 -0
- terradev_cli-3.7.1/tests/conftest.py +10 -0
- terradev_cli-3.7.1/tests/simple_test.py +181 -0
- terradev_cli-3.7.1/tests/test_checkpoint_manager.py +198 -0
- terradev_cli-3.7.1/tests/test_cli_smoke.py +200 -0
- terradev_cli-3.7.1/tests/test_dag_executor.py +400 -0
- terradev_cli-3.7.1/tests/test_integration.py +577 -0
- terradev_cli-3.7.1/tests/test_job_state_manager.py +307 -0
- terradev_cli-3.7.1/tests/test_providers.py +264 -0
- terradev_cli-3.7.1/tests/test_semantic_router.py +1474 -0
- terradev_cli-3.7.1/tests/test_ssh_key_manager.py +154 -0
- terradev_cli-3.7.1/tests/test_training_monitor.py +237 -0
- terradev_cli-3.7.1/tests/test_training_orchestrator.py +321 -0
- terradev_cli-3.7.1/volatility_charts/aws_a100_volatility.png +0 -0
- terradev_cli-3.7.1/volatility_charts/aws_v100_volatility.png +0 -0
- terradev_cli-3.7.1/volatility_charts/runpod_a100_volatility.png +0 -0
- terradev_cli-3.7.1/volatility_charts/runpod_v100_volatility.png +0 -0
- terradev_cli-3.5.3/terradev_cli.egg-info/PKG-INFO +0 -337
- terradev_cli-3.5.3/terradev_cli.egg-info/SOURCES.txt +0 -113
- terradev_cli-3.5.3/terradev_cli.egg-info/entry_points.txt +0 -2
- terradev_cli-3.5.3/terradev_cli.egg-info/not-zip-safe +0 -1
- terradev_cli-3.5.3/terradev_cli.egg-info/requires.txt +0 -29
- terradev_cli-3.5.3/terradev_cli.egg-info/top_level.txt +0 -6
- {terradev_cli-3.5.3 → terradev_cli-3.7.1}/setup.cfg +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/auth.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/checkpoint_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/config.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/cost_scaler.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/cost_tracker.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/dag_executor.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/data_governance.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/dataset_stager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/deployment_router.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/drift_detector.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/egress_optimizer.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/gitops_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/gpu_topology.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/helm_generator_old.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_cli_integration.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_smart_templates.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_spaces.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/inference_router.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/job_state_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/manifest_cache.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/model_orchestrator.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/parallel_provisioner.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/preflight_validator.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_discovery.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_discovery_mock.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_intelligence.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/quick_start.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/rate_limiter.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_router.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/base_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/complexity_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/domain_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/keyword_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/language_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/modality_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/orchestrator.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/safety_signal.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/ssh_key_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/telemetry.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/telemetry_backup.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/terradev_engine.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/tier_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/trace_viewer.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/training_monitor.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/warm_pool_manager.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/datadog_integration.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/prometheus_integration.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/wandb_integration.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/dvc_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/guardrails_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/huggingface_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kserve_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_enhanced_fixed.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langchain_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langgraph_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langsmith_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/lmcache_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/mlflow_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ollama_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/phoenix_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/qdrant_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ray_enhanced.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ray_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/sglang_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/vllm_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/wandb_enhanced.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/wandb_service.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/alibaba_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/aws_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/azure_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/base_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/baseten_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/coreweave_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/crusoe_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/demo_mode.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/digitalocean_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/fluidstack_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/gcp_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/hetzner_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/huggingface_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/hyperstack_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/inferx_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/lambda_labs_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/oracle_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/ovhcloud_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/provider_factory.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/real_pricing.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/runpod_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/siliconflow_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/tensordock_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/vastai_provider.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/utils/__init__.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1/terradev_cli/build/lib}/utils/formatters.py +0 -0
- {terradev_cli-3.5.3 → terradev_cli-3.7.1}/terradev_cli.egg-info/dependency_links.txt +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Terradev Environment Configuration
|
|
2
|
+
# Copy this file to .env and fill in your actual values
|
|
3
|
+
|
|
4
|
+
# Database Configuration
|
|
5
|
+
DATABASE_URL=postgresql://user:password@localhost:5432/terradev
|
|
6
|
+
REDIS_URL=redis://localhost:6379/0
|
|
7
|
+
|
|
8
|
+
# Security Configuration
|
|
9
|
+
SECRET_KEY=your-secret-key-here
|
|
10
|
+
JWT_SECRET=your-jwt-secret-here
|
|
11
|
+
ENCRYPTION_KEY=your-encryption-key-here
|
|
12
|
+
|
|
13
|
+
# Cloud Provider Credentials
|
|
14
|
+
# TensorDock
|
|
15
|
+
TENSORDOCK_API_KEY=your-tensordock-api-key
|
|
16
|
+
TENSORDOCK_SECRET=your-tensordock-secret
|
|
17
|
+
|
|
18
|
+
# Vast.AI
|
|
19
|
+
VAST_API_KEY=your-vast-api-key
|
|
20
|
+
|
|
21
|
+
# Google Cloud Platform
|
|
22
|
+
GCP_PROJECT_ID=your-gcp-project-id
|
|
23
|
+
GCP_CREDENTIALS_PATH=path/to/gcp-credentials.json
|
|
24
|
+
GCP_ZONE=us-central1-a
|
|
25
|
+
|
|
26
|
+
# AWS
|
|
27
|
+
AWS_ACCESS_KEY_ID=your-aws-access-key
|
|
28
|
+
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
|
|
29
|
+
AWS_REGION=us-west-2
|
|
30
|
+
|
|
31
|
+
# RunPod
|
|
32
|
+
RUNPOD_API_KEY=your-runpod-api-key
|
|
33
|
+
|
|
34
|
+
# Lambda Labs
|
|
35
|
+
LAMBDA_API_KEY=your-lambda-api-key
|
|
36
|
+
|
|
37
|
+
# CoreWeave
|
|
38
|
+
COREWEAVE_API_KEY=your-coreweave-api-key
|
|
39
|
+
|
|
40
|
+
# Application Configuration
|
|
41
|
+
DEBUG=false
|
|
42
|
+
LOG_LEVEL=INFO
|
|
43
|
+
PORT=8000
|
|
44
|
+
HOST=0.0.0.0
|
|
45
|
+
|
|
46
|
+
# Monitoring Configuration
|
|
47
|
+
PROMETHEUS_PORT=9090
|
|
48
|
+
GRAFANA_PORT=3000
|
|
49
|
+
GRAFANA_ADMIN_PASSWORD=your-grafana-admin-password
|
|
50
|
+
|
|
51
|
+
# Rate Limiting
|
|
52
|
+
RATE_LIMIT_PER_MINUTE=60
|
|
53
|
+
RATE_LIMIT_BURST=10
|
|
54
|
+
|
|
55
|
+
# Cache Configuration
|
|
56
|
+
CACHE_TTL=300
|
|
57
|
+
CACHE_MAX_SIZE=1000
|
|
58
|
+
|
|
59
|
+
# Email Configuration (optional)
|
|
60
|
+
SMTP_HOST=smtp.gmail.com
|
|
61
|
+
SMTP_PORT=587
|
|
62
|
+
SMTP_USERNAME=your-email@gmail.com
|
|
63
|
+
SMTP_PASSWORD=your-email-password
|
|
64
|
+
SENDER_EMAIL=noreply@terradev.com
|
|
65
|
+
|
|
66
|
+
# Stripe Configuration (REQUIRED for payments)
|
|
67
|
+
STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key_here
|
|
68
|
+
STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
|
|
69
|
+
STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key_here
|
|
70
|
+
|
|
71
|
+
# Webhook Configuration (optional)
|
|
72
|
+
SLACK_WEBHOOK_URL=your-slack-webhook-url
|
|
73
|
+
DISCORD_WEBHOOK_URL=your-discord-webhook-url
|
|
74
|
+
|
|
75
|
+
# Feature Flags
|
|
76
|
+
ENABLE_MONITORING=true
|
|
77
|
+
ENABLE_LOGGING=true
|
|
78
|
+
ENABLE_METRICS=true
|
|
79
|
+
ENABLE_TRACING=false
|
|
80
|
+
|
|
81
|
+
# Performance Configuration
|
|
82
|
+
MAX_WORKERS=4
|
|
83
|
+
WORKER_TIMEOUT=30
|
|
84
|
+
MAX_CONNECTIONS=100
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Production Environment Variables Template
|
|
4
|
+
Copy this to .env and fill in your actual values
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
# Database Configuration
|
|
8
|
+
DB_HOST=localhost
|
|
9
|
+
DB_PORT=5432
|
|
10
|
+
DB_NAME=terradev
|
|
11
|
+
DB_USERNAME=terradev_user
|
|
12
|
+
DB_PASSWORD=your_secure_password_here
|
|
13
|
+
DB_SSL_MODE=require
|
|
14
|
+
DB_POOL_SIZE=20
|
|
15
|
+
DB_MAX_OVERFLOW=30
|
|
16
|
+
|
|
17
|
+
# Redis Configuration
|
|
18
|
+
REDIS_HOST=localhost
|
|
19
|
+
REDIS_PORT=6379
|
|
20
|
+
REDIS_PASSWORD=your_redis_password_here
|
|
21
|
+
REDIS_DB=0
|
|
22
|
+
REDIS_SSL=true
|
|
23
|
+
REDIS_MAX_CONNECTIONS=100
|
|
24
|
+
|
|
25
|
+
# Security Configuration
|
|
26
|
+
SECRET_KEY=your_very_secure_secret_key_here_at_least_32_characters
|
|
27
|
+
JWT_ALGORITHM=HS256
|
|
28
|
+
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
|
29
|
+
REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
30
|
+
BCRYPT_ROUNDS=12
|
|
31
|
+
|
|
32
|
+
# CORS Configuration
|
|
33
|
+
CORS_ORIGINS=https://yourdomain.com,https://app.yourdomain.com
|
|
34
|
+
|
|
35
|
+
# AWS Configuration
|
|
36
|
+
AWS_ACCESS_KEY_ID=your_aws_access_key_here
|
|
37
|
+
AWS_SECRET_ACCESS_KEY=your_aws_secret_key_here
|
|
38
|
+
AWS_REGION=us-east-1
|
|
39
|
+
AWS_ENDPOINT=
|
|
40
|
+
AWS_TIMEOUT=30
|
|
41
|
+
AWS_RETRY_ATTEMPTS=3
|
|
42
|
+
AWS_RETRY_DELAY=1.0
|
|
43
|
+
|
|
44
|
+
# GCP Configuration
|
|
45
|
+
GCP_PROJECT_ID=your_gcp_project_id
|
|
46
|
+
GCP_SERVICE_ACCOUNT_KEY=path/to/your/service-account-key.json
|
|
47
|
+
GCP_REGION=us-central1
|
|
48
|
+
GCP_ENDPOINT=
|
|
49
|
+
GCP_TIMEOUT=30
|
|
50
|
+
GCP_RETRY_ATTEMPTS=3
|
|
51
|
+
GCP_RETRY_DELAY=1.0
|
|
52
|
+
|
|
53
|
+
# Azure Configuration
|
|
54
|
+
AZURE_CLIENT_ID=your_azure_client_id
|
|
55
|
+
AZURE_CLIENT_SECRET=your_azure_client_secret
|
|
56
|
+
AZURE_TENANT_ID=your_azure_tenant_id
|
|
57
|
+
AZURE_SUBSCRIPTION_ID=your_azure_subscription_id
|
|
58
|
+
AZURE_REGION=eastus
|
|
59
|
+
AZURE_ENDPOINT=
|
|
60
|
+
AZURE_TIMEOUT=30
|
|
61
|
+
AZURE_RETRY_ATTEMPTS=3
|
|
62
|
+
AZURE_RETRY_DELAY=1.0
|
|
63
|
+
|
|
64
|
+
# OCI Configuration
|
|
65
|
+
OCI_TENANCY_OCID=your_oci_tenancy_ocid
|
|
66
|
+
OCI_USER_OCID=your_oci_user_ocid
|
|
67
|
+
OCI_FINGERPRINT=your_oci_fingerprint
|
|
68
|
+
OCI_PRIVATE_KEY_PATH=~/.oci/oci_api_key.pem
|
|
69
|
+
OCI_REGION=us-ashburn-1
|
|
70
|
+
OCI_ENDPOINT=
|
|
71
|
+
OCI_TIMEOUT=30
|
|
72
|
+
OCI_RETRY_ATTEMPTS=3
|
|
73
|
+
OCI_RETRY_DELAY=1.0
|
|
74
|
+
|
|
75
|
+
# HuggingFace Configuration
|
|
76
|
+
HUGGINGFACE_TOKEN=your_huggingface_token_here
|
|
77
|
+
HF_TIMEOUT=30
|
|
78
|
+
HF_RETRY_ATTEMPTS=3
|
|
79
|
+
HF_RETRY_DELAY=1.0
|
|
80
|
+
|
|
81
|
+
# Vast.ai Configuration
|
|
82
|
+
VAST_API_KEY=your_vast_api_key_here
|
|
83
|
+
VAST_TIMEOUT=30
|
|
84
|
+
VAST_RETRY_ATTEMPTS=3
|
|
85
|
+
VAST_RETRY_DELAY=1.0
|
|
86
|
+
|
|
87
|
+
# RunPod Configuration
|
|
88
|
+
RUNPOD_API_KEY=your_runpod_api_key_here
|
|
89
|
+
RUNPOD_TIMEOUT=30
|
|
90
|
+
RUNPOD_RETRY_ATTEMPTS=3
|
|
91
|
+
RUNPOD_RETRY_DELAY=1.0
|
|
92
|
+
|
|
93
|
+
# Monitoring Configuration
|
|
94
|
+
PROMETHEUS_ENABLED=true
|
|
95
|
+
PROMETHEUS_PORT=9090
|
|
96
|
+
GRAFANA_ENABLED=true
|
|
97
|
+
GRAFANA_PORT=3000
|
|
98
|
+
GRAFANA_ADMIN_PASSWORD=your_grafana_password
|
|
99
|
+
|
|
100
|
+
# Logging Configuration
|
|
101
|
+
LOG_LEVEL=INFO
|
|
102
|
+
LOG_FILE=/var/log/terradev/production.log
|
|
103
|
+
LOG_MAX_SIZE=100MB
|
|
104
|
+
LOG_BACKUP_COUNT=5
|
|
105
|
+
|
|
106
|
+
# Rate Limiting Configuration
|
|
107
|
+
RATE_LIMIT_DEFAULT=100/minute
|
|
108
|
+
RATE_LIMIT_AUTH=10/minute
|
|
109
|
+
RATE_LIMIT_DEPLOY=5/minute
|
|
110
|
+
RATE_LIMIT_UPLOAD=20/minute
|
|
111
|
+
RATE_LIMIT_API=1000/hour
|
|
112
|
+
|
|
113
|
+
# Performance Configuration
|
|
114
|
+
MAX_WORKERS=4
|
|
115
|
+
WORKER_TIMEOUT=300
|
|
116
|
+
KEEPALIVE_TIMEOUT=30
|
|
117
|
+
MAX_CONNECTIONS=100
|
|
118
|
+
MAX_CONNECTIONS_PER_HOST=25
|
|
119
|
+
|
|
120
|
+
# Security Configuration
|
|
121
|
+
ENABLE_HTTPS=true
|
|
122
|
+
SSL_CERT_PATH=/etc/ssl/cert.pem
|
|
123
|
+
SSL_KEY_PATH=/etc/ssl/key.pem
|
|
124
|
+
ALLOWED_HOSTS=yourdomain.com,app.yourdomain.com
|
|
125
|
+
|
|
126
|
+
# Feature Flags
|
|
127
|
+
ENABLE_CLOUD_ADVISOR=true
|
|
128
|
+
ENABLE_MULTICLOUD_DB=true
|
|
129
|
+
ENABLE_ADVANCED_ANALYTICS=true
|
|
130
|
+
ENABLE_BETA_FEATURES=false
|
|
131
|
+
|
|
132
|
+
# Backup Configuration
|
|
133
|
+
BACKUP_ENABLED=true
|
|
134
|
+
BACKUP_SCHEDULE=0 2 * * * # Daily at 2 AM
|
|
135
|
+
BACKUP_RETENTION_DAYS=30
|
|
136
|
+
BACKUP_S3_BUCKET=your-backup-bucket
|
|
137
|
+
|
|
138
|
+
# Alert Configuration
|
|
139
|
+
ALERT_EMAIL_ENABLED=true
|
|
140
|
+
ALERT_EMAIL_SMTP_HOST=smtp.gmail.com
|
|
141
|
+
ALERT_EMAIL_SMTP_PORT=587
|
|
142
|
+
ALERT_EMAIL_USERNAME=your_email@gmail.com
|
|
143
|
+
ALERT_EMAIL_PASSWORD=your_email_password
|
|
144
|
+
ALERT_EMAIL_FROM=alerts@yourdomain.com
|
|
145
|
+
ALERT_EMAIL_TO=admin@yourdomain.com
|
|
146
|
+
|
|
147
|
+
# Slack Configuration
|
|
148
|
+
SLACK_WEBHOOK_URL=your_slack_webhook_url
|
|
149
|
+
SLACK_CHANNEL=#alerts
|
|
150
|
+
|
|
151
|
+
# Environment Configuration
|
|
152
|
+
ENVIRONMENT=production
|
|
153
|
+
DEBUG=false
|
|
154
|
+
TESTING=false
|
|
155
|
+
|
|
156
|
+
# Application Configuration
|
|
157
|
+
APP_NAME=Terradev
|
|
158
|
+
APP_VERSION=1.0.0
|
|
159
|
+
APP_DESCRIPTION=ML Training Optimization Platform
|
|
160
|
+
|
|
161
|
+
# External Services Configuration
|
|
162
|
+
SENTRY_DSN=your_sentry_dsn_here
|
|
163
|
+
NEW_RELIC_LICENSE_KEY=your_new_relic_key_here
|
|
164
|
+
DATADOG_API_KEY=your_datadog_api_key_here
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
name: Terradev CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ['3.9', '3.11', '3.12']
|
|
15
|
+
env:
|
|
16
|
+
TERRADEV_SKIP_ONBOARDING: "1"
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
|
|
26
|
+
- name: Install package + test deps
|
|
27
|
+
run: |
|
|
28
|
+
pip install -e ".[dev]" 2>/dev/null || pip install -e .
|
|
29
|
+
pip install pytest pytest-asyncio
|
|
30
|
+
|
|
31
|
+
- name: CLI smoke test
|
|
32
|
+
run: |
|
|
33
|
+
terradev --version
|
|
34
|
+
terradev --help
|
|
35
|
+
|
|
36
|
+
- name: Run test suite
|
|
37
|
+
run: pytest tests/ -v --tb=short
|
|
38
|
+
|
|
39
|
+
build:
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
needs: test
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v4
|
|
44
|
+
|
|
45
|
+
- uses: actions/setup-python@v5
|
|
46
|
+
with:
|
|
47
|
+
python-version: '3.11'
|
|
48
|
+
|
|
49
|
+
- name: Build wheel + sdist
|
|
50
|
+
run: |
|
|
51
|
+
pip install build
|
|
52
|
+
python -m build
|
|
53
|
+
|
|
54
|
+
- name: Verify built package installs
|
|
55
|
+
run: |
|
|
56
|
+
pip install dist/*.whl
|
|
57
|
+
terradev --version
|
|
58
|
+
|
|
59
|
+
- name: Upload artifacts
|
|
60
|
+
uses: actions/upload-artifact@v4
|
|
61
|
+
with:
|
|
62
|
+
name: dist
|
|
63
|
+
path: dist/
|
|
64
|
+
|
|
65
|
+
security:
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v4
|
|
69
|
+
|
|
70
|
+
- uses: actions/setup-python@v5
|
|
71
|
+
with:
|
|
72
|
+
python-version: '3.11'
|
|
73
|
+
|
|
74
|
+
- name: Install + scan
|
|
75
|
+
run: |
|
|
76
|
+
pip install bandit
|
|
77
|
+
bandit -r terradev_cli/ -f json -o bandit-report.json -ll || true
|
|
78
|
+
|
|
79
|
+
- uses: actions/upload-artifact@v4
|
|
80
|
+
with:
|
|
81
|
+
name: security-reports
|
|
82
|
+
path: bandit-report.json
|
|
83
|
+
|
|
84
|
+
publish:
|
|
85
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
86
|
+
needs: [test, build]
|
|
87
|
+
runs-on: ubuntu-latest
|
|
88
|
+
permissions:
|
|
89
|
+
id-token: write
|
|
90
|
+
steps:
|
|
91
|
+
- uses: actions/checkout@v4
|
|
92
|
+
|
|
93
|
+
- uses: actions/setup-python@v5
|
|
94
|
+
with:
|
|
95
|
+
python-version: '3.11'
|
|
96
|
+
|
|
97
|
+
- name: Build
|
|
98
|
+
run: |
|
|
99
|
+
pip install build
|
|
100
|
+
python -m build
|
|
101
|
+
|
|
102
|
+
- name: Publish to PyPI
|
|
103
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
104
|
+
with:
|
|
105
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Deploy GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
deploy:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
pages: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Setup Pages
|
|
21
|
+
uses: actions/configure-pages@v4
|
|
22
|
+
|
|
23
|
+
- name: Upload artifact
|
|
24
|
+
uses: actions/upload-pages-artifact@v4
|
|
25
|
+
with:
|
|
26
|
+
path: './docs'
|
|
27
|
+
|
|
28
|
+
- name: Deploy to GitHub Pages
|
|
29
|
+
id: deployment
|
|
30
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Release to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
releases: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
release:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout code
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Set up Python
|
|
21
|
+
uses: actions/setup-python@v4
|
|
22
|
+
with:
|
|
23
|
+
python-version: '3.9'
|
|
24
|
+
|
|
25
|
+
- name: Install build dependencies
|
|
26
|
+
run: |
|
|
27
|
+
cd terradev_cli
|
|
28
|
+
pip install build twine
|
|
29
|
+
|
|
30
|
+
- name: Build package
|
|
31
|
+
run: |
|
|
32
|
+
cd terradev_cli
|
|
33
|
+
python -m build
|
|
34
|
+
|
|
35
|
+
- name: Check package
|
|
36
|
+
run: |
|
|
37
|
+
cd terradev_cli
|
|
38
|
+
twine check dist/*
|
|
39
|
+
|
|
40
|
+
- name: Publish to PyPI
|
|
41
|
+
env:
|
|
42
|
+
TWINE_USERNAME: __token__
|
|
43
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
44
|
+
run: |
|
|
45
|
+
cd terradev_cli
|
|
46
|
+
twine upload dist/*
|
|
47
|
+
|
|
48
|
+
- name: Create GitHub Release
|
|
49
|
+
run: |
|
|
50
|
+
gh release create ${{ github.ref_name }} --generate-notes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Simple workflow for deploying static content to GitHub Pages
|
|
2
|
+
name: Deploy static content to Pages
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
# Runs on pushes targeting the default branch
|
|
6
|
+
push:
|
|
7
|
+
branches: ["main"]
|
|
8
|
+
|
|
9
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
pages: write
|
|
16
|
+
id-token: write
|
|
17
|
+
|
|
18
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
19
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
20
|
+
concurrency:
|
|
21
|
+
group: "pages"
|
|
22
|
+
cancel-in-progress: false
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
# Single deploy job since we're just deploying
|
|
26
|
+
deploy:
|
|
27
|
+
environment:
|
|
28
|
+
name: github-pages
|
|
29
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- name: Checkout
|
|
33
|
+
uses: actions/checkout@v4
|
|
34
|
+
- name: Setup Pages
|
|
35
|
+
uses: actions/configure-pages@v5
|
|
36
|
+
- name: Upload artifact
|
|
37
|
+
uses: actions/upload-pages-artifact@v4
|
|
38
|
+
with:
|
|
39
|
+
path: './docs'
|
|
40
|
+
- name: Deploy to GitHub Pages
|
|
41
|
+
id: deployment
|
|
42
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Terradev CLI Docker Image
|
|
2
|
+
FROM python:3.9-slim
|
|
3
|
+
|
|
4
|
+
# Set environment variables
|
|
5
|
+
ENV PYTHONUNBUFFERED=1 \
|
|
6
|
+
PYTHONDONTWRITEBYTECODE=1 \
|
|
7
|
+
TERRADEV_CLI_VERSION=2.9.2
|
|
8
|
+
|
|
9
|
+
# Set working directory
|
|
10
|
+
WORKDIR /app
|
|
11
|
+
|
|
12
|
+
# Install system dependencies
|
|
13
|
+
RUN apt-get update && apt-get install -y \
|
|
14
|
+
curl \
|
|
15
|
+
git \
|
|
16
|
+
wget \
|
|
17
|
+
unzip \
|
|
18
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
19
|
+
|
|
20
|
+
# Copy requirements and install Python dependencies
|
|
21
|
+
COPY requirements.txt .
|
|
22
|
+
RUN pip install --no-cache-dir -r requirements.txt
|
|
23
|
+
|
|
24
|
+
# Install Terradev CLI
|
|
25
|
+
COPY . .
|
|
26
|
+
RUN pip install -e .
|
|
27
|
+
|
|
28
|
+
# Create non-root user
|
|
29
|
+
RUN useradd --create-home --shell /bin/bash terradev
|
|
30
|
+
USER terradev
|
|
31
|
+
WORKDIR /home/terradev
|
|
32
|
+
|
|
33
|
+
# Copy CLI to user home
|
|
34
|
+
COPY --chown=terradev:terradev /app /home/terradev/terradev-cli
|
|
35
|
+
RUN pip install -e /home/terradev/terradev-cli
|
|
36
|
+
|
|
37
|
+
# Add CLI to PATH
|
|
38
|
+
ENV PATH="/home/terradev/terradev-cli:$PATH"
|
|
39
|
+
|
|
40
|
+
# Expose common ports
|
|
41
|
+
EXPOSE 8000 8080 8888
|
|
42
|
+
|
|
43
|
+
# Health check
|
|
44
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
45
|
+
CMD python -m terradev_cli --version || exit 1
|
|
46
|
+
|
|
47
|
+
# Default command
|
|
48
|
+
CMD ["python", "-m", "terradev_cli", "--help"]
|
|
49
|
+
|
|
50
|
+
# Labels for Docker Hub
|
|
51
|
+
LABEL maintainer="theoddden" \
|
|
52
|
+
version="2.9.2" \
|
|
53
|
+
description="Terradev CLI - Cross-cloud GPU optimization platform" \
|
|
54
|
+
org.opencontainers.image.source="https://github.com/theoddden/terradev" \
|
|
55
|
+
org.opencontainers.image.licenses="BUSL-1.1"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Terradev CLI - Docker Hub Distribution
|
|
2
|
+
FROM python:3.9-slim
|
|
3
|
+
|
|
4
|
+
# Metadata for Docker Hub
|
|
5
|
+
LABEL maintainer="theoddden" \
|
|
6
|
+
version="2.9.2" \
|
|
7
|
+
description="Terradev CLI - Cross-cloud GPU optimization platform" \
|
|
8
|
+
org.opencontainers.image.source="https://github.com/theoddden/terradev" \
|
|
9
|
+
org.opencontainers.image.licenses="BUSL-1.1" \
|
|
10
|
+
org.opencontainers.image.title="Terradev CLI" \
|
|
11
|
+
org.opencontainers.image.description="BYOAPI: Cross-cloud GPU provisioning and cost optimization platform" \
|
|
12
|
+
org.opencontainers.image.url="https://github.com/theoddden/terradev"
|
|
13
|
+
|
|
14
|
+
# Environment variables
|
|
15
|
+
ENV PYTHONUNBUFFERED=1 \
|
|
16
|
+
PYTHONDONTWRITEBYTECODE=1 \
|
|
17
|
+
TERRADEV_CLI_VERSION=2.9.2 \
|
|
18
|
+
DEBIAN_FRONTEND=noninteractive
|
|
19
|
+
|
|
20
|
+
# Set working directory
|
|
21
|
+
WORKDIR /app
|
|
22
|
+
|
|
23
|
+
# Install system dependencies
|
|
24
|
+
RUN apt-get update && apt-get install -y \
|
|
25
|
+
curl \
|
|
26
|
+
git \
|
|
27
|
+
wget \
|
|
28
|
+
unzip \
|
|
29
|
+
ca-certificates \
|
|
30
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
31
|
+
&& apt-get clean
|
|
32
|
+
|
|
33
|
+
# Create non-root user for security
|
|
34
|
+
RUN groupadd -r terradev && useradd -r -g terradev -d /home/terradev -s /bin/bash terradev \
|
|
35
|
+
&& mkdir -p /home/terradev \
|
|
36
|
+
&& chown -R terradev:terradev /home/terradev
|
|
37
|
+
|
|
38
|
+
# Copy requirements first for better caching
|
|
39
|
+
COPY requirements.txt .
|
|
40
|
+
RUN pip install --no-cache-dir --upgrade pip \
|
|
41
|
+
&& pip install --no-cache-dir -r requirements.txt
|
|
42
|
+
|
|
43
|
+
# Copy and install Terradev CLI
|
|
44
|
+
COPY . .
|
|
45
|
+
RUN pip install --no-cache-dir -e .
|
|
46
|
+
|
|
47
|
+
# Switch to non-root user
|
|
48
|
+
USER terradev
|
|
49
|
+
WORKDIR /home/terradev
|
|
50
|
+
|
|
51
|
+
# Copy CLI to user home and set up PATH
|
|
52
|
+
COPY --chown=terradev:terradev /app /home/terradev/terradev-cli
|
|
53
|
+
RUN pip install --no-cache-dir -e /home/terradev/terradev-cli \
|
|
54
|
+
&& echo 'export PATH="/home/terradev/terradev-cli:$PATH"' >> /home/terradev/.bashrc
|
|
55
|
+
|
|
56
|
+
# Expose common ports for different services
|
|
57
|
+
EXPOSE 8000 8080 8888
|
|
58
|
+
|
|
59
|
+
# Health check
|
|
60
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
61
|
+
CMD python -m terradev_cli --version || exit 1
|
|
62
|
+
|
|
63
|
+
# Default command - show help
|
|
64
|
+
CMD ["python", "-m", "terradev_cli", "--help"]
|
|
65
|
+
|
|
66
|
+
# Docker Hub search tags
|
|
67
|
+
LABEL com.docker.compose.version="2.9.2" \
|
|
68
|
+
com.docker.compose.project="terradev-cli" \
|
|
69
|
+
com.docker.compose.service="gpu-optimization" \
|
|
70
|
+
com.docker.compose.description="Cross-cloud GPU cost optimization and provisioning"
|