terradev-cli 5.3.8__tar.gz → 5.4.0__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-5.3.8 → terradev_cli-5.4.0}/Deployment Package/BNF_GRAMMAR.md +28 -3
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Deployment Package/LIFECYCLES.md +355 -1
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/PKG-INFO +33 -1
- {terradev_cli-5.3.8/terradev_cli → terradev_cli-5.4.0}/README.md +32 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/Chart.yaml +17 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/templates/_helpers.tpl +29 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/templates/deployment.yaml +77 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/templates/pvc.yaml +20 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/templates/service.yaml +25 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/templates/serviceaccount.yaml +9 -0
- terradev_cli-5.4.0/clusters/lorax-template/helm/values-lorax.yaml +66 -0
- terradev_cli-5.4.0/docs/LORA_COMMAND_LIFECYCLE.md +509 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/pyproject.toml +1 -1
- {terradev_cli-5.3.8 → terradev_cli-5.4.0/terradev_cli}/README.md +32 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/cli.py +416 -18
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/__init__.py +6 -0
- terradev_cli-5.4.0/terradev_cli/ml_services/lorax_service.py +327 -0
- terradev_cli-5.4.0/terradev_cli/ml_services/peft_import_service.py +214 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/PKG-INFO +33 -1
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/SOURCES.txt +10 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.env.example +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.github/workflows/action.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.github/workflows/ci.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.github/workflows/release.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.github/workflows/static.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/.terradev/custom_providers.example.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/CODEMAP.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Deployment Package/architecture.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Deployment Package/overview.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Deployment Package/security.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Deployment Package/troubleshooting.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Dockerfile +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/Dockerfile.test +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/LICENSE +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/MANIFEST.in +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/agentic-template/helm/values-agentic.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/agentic-template/k8s/fleet-manifests.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/helm/values-glm5.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/hpa.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/namespace.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/pdb.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/service.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/task.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/terraform/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/terraform/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/glm-5/terraform/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/helm/values-llmd.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/k8s/gateway.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/k8s/leaderworkerset.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/k8s/llminferenceservice.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/llmd-template/task.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/Chart.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/_helpers.tpl +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/pvc-adapter.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/pvc-registry.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/service.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/templates/serviceaccount.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/helm/values-lora.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/adapter-pvc.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/namespace.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/registry-pvc.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/service.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/lora-template/k8s/serviceaccount.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/helm/values-moe.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/hpa.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/namespace.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/pdb.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/k8s/service.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/task.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/terraform/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/terraform/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/moe-template/terraform/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/rag-template/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/rag-template/helm/values-rag.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/rag-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/clusters/rag-template/terraform/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/demo/RECORDING_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/demo/generate_gif.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/demo/terradev-demo.gif +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/API_DOCUMENTATION.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/BingSiteAuth.xml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/USER_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/VLLM_OPTIMIZATION_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/architecture.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/index.html +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/overview.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/robots.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/sitemap.xml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/docs/test_spot_provision.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/aws_ssm_starter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/config.example.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/demo_k8s_config.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/direct_aws_starter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/ec2_user_data_starter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/example-pipeline.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/kubernetes_training_deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/simple_ssm_starter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/ssh_server_starter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/examples/start_aws_servers.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/helm/terradev/Chart.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/helm/terradev/templates/_helpers.tpl +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/helm/terradev/templates/deployment.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/helm/terradev/values.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/infrastructure/bucket-policy.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/infrastructure/grafana_training_dashboard.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/infrastructure/kubernetes/microservices.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/infrastructure/terraform/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/infrastructure/terraform/parallelism.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/cli-tool.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/cloud-management-widgets.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/cloud-provider-apis.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/critical-widgets.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/devops-cicd-widgets.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/devops-essential-tools.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/docker-integration.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/kubernetes-operator.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/integrations/mlflow-integration.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/marketing/bare-metal-latitude-post.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/dashboard.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/monitors.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/provider.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/datadog/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/modules/prometheus_training_config.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/INTEGRATION_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/PERFORMANCE_OPTIMIZATIONS.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/README.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-artifact-verification/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-artifact-verification/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-artifact-verification/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-artifact-verification/src/verifier.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-authentication/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-authentication/src/encoding.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-authentication/src/hmac.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-authentication/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-authentication/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cache-eviction/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cache-eviction/src/cache.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cache-eviction/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cache-eviction/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-command-executor/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-command-executor/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-config-validator/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-config-validator/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-config-validator/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-config-validator/src/validator.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-connection-pool/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-connection-pool/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-connection-pool/src/pool.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-connection-pool/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-calculator/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-calculator/src/calculator.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-calculator/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-calculator/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-scaler/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-cost-scaler/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-credential-vault/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-credential-vault/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-credential-vault/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-credential-vault/src/vault.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-dag-executor/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-dag-executor/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-distributed-lock/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-distributed-lock/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-distributed-lock/src/lock.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-distributed-lock/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-egress-optimizer/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-egress-optimizer/src/graph.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-egress-optimizer/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-egress-optimizer/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-event-bus/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-event-bus/src/bus.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-event-bus/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-event-bus/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-governance/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-governance/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-discovery/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-discovery/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-topology/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-topology/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-topology/src/topology.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-gpu-topology/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-helm-generator/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-helm-generator/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-mcp-codec/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-mcp-codec/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-mcp-optimizer/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-mcp-optimizer/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-price-intelligence/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-price-intelligence/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-quota-manager/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-quota-manager/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-quota-manager/src/manager.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-quota-manager/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-resource-pool/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-resource-pool/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-resource-pool/src/pool.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-resource-pool/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-result-compressor/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-result-compressor/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-semantic-router/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-semantic-router/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-snapshot-manager/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-snapshot-manager/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-snapshot-manager/src/snapshot.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-snapshot-manager/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-state-machine/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-state-machine/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-state-machine/src/state.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-state-machine/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-telemetry/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-telemetry/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-telemetry/src/pipeline.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-telemetry/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-tool-registry/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-tool-registry/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-vram-estimator/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-vram-estimator/src/estimator.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-vram-estimator/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-vram-estimator/src/types.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-warm-pool/Cargo.toml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/rust/terradev-warm-pool/src/lib.rs +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/scripts/action.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/scripts/gpu-check.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/setup/docker-compose.yml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/setup/nginx.conf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/setup/setup.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/setup.cfg +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/CHANGELOG.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/COMPLETE_COMMAND_REFERENCE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/COMPLETE_INTEGRATION_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/IMPLEMENTATION_SUMMARY.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/MAKING_SPOT_WORK_FOR_STATEFUL_WORKLOADS.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/SGLANG_COMMAND_GUIDE.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/TERRADEV_STACK_CHART.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/__main__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/cli_hf_spaces.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/cli_karpenter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/agentic_provisioner.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/agentic_topology.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/async_config.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/auth.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/auto_lineage.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/cache_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/checkpoint_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/command_executor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/config.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/config_validator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/cost_scaler.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/cost_tracker.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/credential_vault.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/cuda_graph_integrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/dag_executor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/data_governance.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/dataset_stager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/deployment_router.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/distributed_lock.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/drift_detector.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/egress_cost_monitor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/egress_optimizer.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/evaluation_orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/event_system.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/gitops_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/gpu_discovery.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/gpu_topology.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/helm_generator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/hf_cli_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/hf_smart_templates.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/hf_spaces.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/inference_router.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/inference_spot_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/job_state_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/kv_cache_checkpoint_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/kv_cache_checkpoint_tests.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/kv_sharing.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/lora_consistency.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/lora_cost_attribution.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/lora_versioning.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/manifest_cache.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/manifest_example.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/mig_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/migration_orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/mla_vram_estimator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/mla_vram_tests.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/model_orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/oidc_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/optimization_config.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/parallel_provisioner.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/pd_transport.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/pipeline_schema.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/preflight_validator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/price_discovery.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/price_intelligence.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/public_ip_billing_tracker.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/quick_start.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/quota_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/rate_limiter.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/rust_telemetry.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_router.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/session_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/ssh_key_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/telemetry.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/terradev_engine.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/trace_viewer.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/training_monitor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/training_orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/user_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/warm_pool_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/weight_streaming_benchmarks.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/core/weight_streaming_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/cost_optimizer.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/credential_prompt.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/demo.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/entry_point.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/databricks_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/datadog_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/helicone_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/prometheus_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/integrations/wandb_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/k8s/terraform_wrapper.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/kubernetes/inferx_setup.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/mcp/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/mcp/server.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/agentic_serving.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/drift_retrain_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/dvc_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/guardrails_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/huggingface_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/kserve_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/kubernetes_enhanced.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/kubernetes_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/langchain_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/langfuse_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/langgraph_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/lmcache_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/lora_registry.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/mlflow_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/model_router.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/ollama_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/phoenix_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/qdrant_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/ray_enhanced.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/ray_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/sglang_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/vllm_service.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/optimization/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/optimization/auto_optimizer.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/optimization/cuco_optimizer.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/LATITUDE_PROVIDER.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/alibaba_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/aws_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/azure_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/base_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/baseten_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/coreweave_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/crusoe_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/demo_mode.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/digitalocean_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/e2e_networks_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/fluidstack_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/gcp_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/gpu_catalog.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/hetzner_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/huggingface_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/hyperstack_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/inferx_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/lambda_labs_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/latitude_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/oracle_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/ovhcloud_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/provider_factory.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/provider_profiles.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/real_pricing.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/registry.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/runpod_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/siliconflow_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/tensordock_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/types.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/vastai_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/providers/yottalabs_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/requirements.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/requirements_minimal.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/networking/main.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/outputs.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/providers.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/terraform/variables.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/test_summary.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/utils/__init__.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli/utils/formatters.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/dependency_links.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/entry_points.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/requires.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terradev_cli.egg-info/top_level.txt +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform.tfvars.example +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/backend.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/error_handling.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/parallel_provisioning.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/storage_choice_matrix.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/test_error_handler.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_optimization/versions.tf +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/audit_trail.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/audit_trails.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/decision_engine.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/decision_logs.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/operations.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/terraform_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/terraform_plans.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/transparency_demo.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/terraform_transparency/transparency_report.json +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/CREDENTIAL_STRATEGY.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/INTEGRATION_STRATEGY.md +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/Makefile +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/ci_pipeline.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/conftest.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_cli_ux_battle.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_cli_ux_battle_fixed.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_cli_ux_final.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_final_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_integrated_optimization.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_p10_production_failover.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_sso_phase1.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/root_tests/test_vllm_optimization.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/simple_test.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_ai_integrations.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_checkpoint_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_cli_smoke.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_dag_executor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_flashoptim.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_integration.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_job_state_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_k8s_regression.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_latitude_provider.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_major_providers.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_mcp_handlers.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_new_providers.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_provider_conformance.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_providers.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_semantic_router.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_sglang_optimization.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_ssh_key_manager.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_training_monitor.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_training_orchestrator.py +0 -0
- {terradev_cli-5.3.8 → terradev_cli-5.4.0}/tests/test_vllm_features.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Terradev CLI BNF Grammar
|
|
2
|
-
# Complete syntax specification for all commands and options — v5.3.
|
|
2
|
+
# Complete syntax specification for all commands and options — v5.3.9
|
|
3
3
|
|
|
4
4
|
<terradev-cli> ::= <global-options> <command>
|
|
5
5
|
|
|
@@ -605,8 +605,8 @@
|
|
|
605
605
|
<lora-commands> ::= lora <lora-subcommand>
|
|
606
606
|
|
|
607
607
|
<lora-subcommand> ::=
|
|
608
|
-
| list -e <url> [--api-key <string>]
|
|
609
|
-
| add -e <url> -n <string> --path <path> [--api-key <string>]
|
|
608
|
+
| list -e <url> [--api-key <string>] [--registry]
|
|
609
|
+
| add -e <url> -n <string> --path <path> [--api-key <string>] [--register] [-b <string>] [--rank <integer>]
|
|
610
610
|
| remove -e <url> -n <string> [--api-key <string>]
|
|
611
611
|
| register -n <string> --path <path> -b <string> [--rank <integer>] [--tenant <string>] [--metadata <string>]
|
|
612
612
|
| versions -n <string>
|
|
@@ -615,6 +615,31 @@
|
|
|
615
615
|
| rollback -n <string> [-v <string>] [--replicas <string>]
|
|
616
616
|
| drift-check -n <string> [-v <string>] [-t <float>] [--source <string>]
|
|
617
617
|
| cost-report [-d <integer>] [-a <string>] [-t <string>]
|
|
618
|
+
| lorax <lorax-subcommand>
|
|
619
|
+
| peft <peft-subcommand>
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
# ── LoRAX Subcommands (under lora) ──
|
|
623
|
+
|
|
624
|
+
<lorax-subcommand> ::=
|
|
625
|
+
| deploy -m <string> [--host <string>] [-p <integer>] [--quantization <lorax-quant>] [--gpu-memory-fraction <float>] [--max-loras <integer>] [--docker] [--k8s] [--namespace <string>]
|
|
626
|
+
| test [--host <string>] [-p <integer>]
|
|
627
|
+
| list-adapters [--host <string>] [-p <integer>]
|
|
628
|
+
| load-adapter -a <string> [--adapter-name <string>] [--host <string>] [-p <integer>]
|
|
629
|
+
| unload-adapter -a <string> [--host <string>] [-p <integer>]
|
|
630
|
+
| sync-registry [--host <string>] [-p <integer>] [-a <string>]
|
|
631
|
+
| generate -p <string> [-a <string>] [--max-tokens <integer>] [--temperature <float>] [--host <string>] [-p <integer>]
|
|
632
|
+
|
|
633
|
+
<lorax-quant> ::= none | bitsandbytes | gptq | awq
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
# ── PEFT Subcommands (under lora) ──
|
|
637
|
+
|
|
638
|
+
<peft-subcommand> ::=
|
|
639
|
+
| import -a <string> [--local-name <string>] [--token <string>] [--register] [-b <string>] [--rank <integer>]
|
|
640
|
+
| list
|
|
641
|
+
| validate -p <path>
|
|
642
|
+
| delete -a <string>
|
|
618
643
|
|
|
619
644
|
|
|
620
645
|
# ════════════════════════════════════════════════════════════════════
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Terradev CLI Lifecycles (v5.
|
|
1
|
+
# Terradev CLI Lifecycles (v5.3.9)
|
|
2
2
|
|
|
3
3
|
Complete end-to-end workflows covering nearly every command in the CLI. These have been updated to match the current CLI signatures and remove deprecated commands.
|
|
4
4
|
|
|
@@ -1388,6 +1388,158 @@ terradev local scan \
|
|
|
1388
1388
|
terradev local scan --register --name workstation-4090
|
|
1389
1389
|
```
|
|
1390
1390
|
|
|
1391
|
+
---
|
|
1392
|
+
|
|
1393
|
+
## Lifecycle 17 — LoRAX Multi-LoRA Inference (NEW)
|
|
1394
|
+
|
|
1395
|
+
**Goal:** Deploy LoRAX server for serving thousands of fine-tuned models on a single GPU with dynamic adapter loading.
|
|
1396
|
+
|
|
1397
|
+
### Phase 1: Import Adapter from HuggingFace
|
|
1398
|
+
|
|
1399
|
+
```bash
|
|
1400
|
+
# Import LoRA adapter from HuggingFace
|
|
1401
|
+
terradev lora peft import \
|
|
1402
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k \
|
|
1403
|
+
--local-name gsm8k-adapter
|
|
1404
|
+
|
|
1405
|
+
# Import and register in Terradev registry
|
|
1406
|
+
terradev lora peft import \
|
|
1407
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k \
|
|
1408
|
+
--local-name gsm8k-adapter \
|
|
1409
|
+
--register \
|
|
1410
|
+
--base-model mistralai/Mistral-7B-Instruct-v0.1
|
|
1411
|
+
|
|
1412
|
+
# Import from private repo
|
|
1413
|
+
terradev lora peft import \
|
|
1414
|
+
-a username/private-adapter \
|
|
1415
|
+
--token hf_xxx
|
|
1416
|
+
```
|
|
1417
|
+
|
|
1418
|
+
### Phase 2: List Local Adapters
|
|
1419
|
+
|
|
1420
|
+
```bash
|
|
1421
|
+
# List all imported adapters
|
|
1422
|
+
terradev lora peft list
|
|
1423
|
+
|
|
1424
|
+
# Validate adapter structure
|
|
1425
|
+
terradev lora peft validate -p ~/.terradev/peft_adapters/username--adapter
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1428
|
+
### Phase 3: Deploy LoRAX Server (Docker)
|
|
1429
|
+
|
|
1430
|
+
```bash
|
|
1431
|
+
# Deploy LoRAX with Docker
|
|
1432
|
+
terradev lora lorax deploy \
|
|
1433
|
+
-m mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1434
|
+
--docker
|
|
1435
|
+
|
|
1436
|
+
# Deploy with quantization
|
|
1437
|
+
terradev lora lorax deploy \
|
|
1438
|
+
-m mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1439
|
+
--quantization bitsandbytes \
|
|
1440
|
+
--max-loras 16 \
|
|
1441
|
+
--docker
|
|
1442
|
+
```
|
|
1443
|
+
|
|
1444
|
+
### Phase 4: Deploy LoRAX Server (Kubernetes)
|
|
1445
|
+
|
|
1446
|
+
```bash
|
|
1447
|
+
# Deploy LoRAX to Kubernetes
|
|
1448
|
+
terradev lora lorax deploy \
|
|
1449
|
+
-m mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1450
|
+
--k8s \
|
|
1451
|
+
--namespace lorax
|
|
1452
|
+
|
|
1453
|
+
# Install via Helm
|
|
1454
|
+
helm install lorax ./clusters/lorax-template/helm \
|
|
1455
|
+
-f clusters/lorax-template/helm/values-lorax.yaml \
|
|
1456
|
+
--set model.id=mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1457
|
+
--set maxLoras=8
|
|
1458
|
+
```
|
|
1459
|
+
|
|
1460
|
+
### Phase 5: Test LoRAX Server
|
|
1461
|
+
|
|
1462
|
+
```bash
|
|
1463
|
+
# Test server connectivity
|
|
1464
|
+
terradev lora lorax test --host localhost --port 8080
|
|
1465
|
+
|
|
1466
|
+
# Test with custom host/port
|
|
1467
|
+
terradev lora lorax test --host 10.0.0.1 --port 8080
|
|
1468
|
+
```
|
|
1469
|
+
|
|
1470
|
+
### Phase 6: Load Adapters
|
|
1471
|
+
|
|
1472
|
+
```bash
|
|
1473
|
+
# Load adapter from HuggingFace
|
|
1474
|
+
terradev lora lorax load-adapter \
|
|
1475
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1476
|
+
|
|
1477
|
+
# Load local adapter with custom name
|
|
1478
|
+
terradev lora lorax load-adapter \
|
|
1479
|
+
-a ~/.terradev/peft_adapters/gsm8k-adapter \
|
|
1480
|
+
--adapter-name gsm8k-adapter \
|
|
1481
|
+
--host localhost --port 8080
|
|
1482
|
+
```
|
|
1483
|
+
|
|
1484
|
+
### Phase 7: List Loaded Adapters
|
|
1485
|
+
|
|
1486
|
+
```bash
|
|
1487
|
+
# List all loaded adapters
|
|
1488
|
+
terradev lora lorax list-adapters
|
|
1489
|
+
|
|
1490
|
+
# List from specific server
|
|
1491
|
+
terradev lora lorax list-adapters --host 10.0.0.1 --port 8080
|
|
1492
|
+
```
|
|
1493
|
+
|
|
1494
|
+
### Phase 8: Generate Text
|
|
1495
|
+
|
|
1496
|
+
```bash
|
|
1497
|
+
# Generate with base model
|
|
1498
|
+
terradev lora lorax generate \
|
|
1499
|
+
-p "What is 2+2?" \
|
|
1500
|
+
--max-tokens 64
|
|
1501
|
+
|
|
1502
|
+
# Generate with adapter
|
|
1503
|
+
terradev lora lorax generate \
|
|
1504
|
+
-p "Natalia sold clips to 48 of her friends..." \
|
|
1505
|
+
-a gsm8k-adapter \
|
|
1506
|
+
--temperature 0.7
|
|
1507
|
+
```
|
|
1508
|
+
|
|
1509
|
+
### Phase 9: Unload Adapter
|
|
1510
|
+
|
|
1511
|
+
```bash
|
|
1512
|
+
# Unload adapter
|
|
1513
|
+
terradev lora lorax unload-adapter -a gsm8k-adapter
|
|
1514
|
+
```
|
|
1515
|
+
|
|
1516
|
+
### Phase 10: Sync Registry
|
|
1517
|
+
|
|
1518
|
+
```bash
|
|
1519
|
+
# Sync Terradev registry with LoRAX state
|
|
1520
|
+
terradev lora lorax sync-registry
|
|
1521
|
+
|
|
1522
|
+
# Sync specific adapter
|
|
1523
|
+
terradev lora lorax sync-registry -a gsm8k-adapter
|
|
1524
|
+
```
|
|
1525
|
+
|
|
1526
|
+
### Phase 11: Delete Local Adapter
|
|
1527
|
+
|
|
1528
|
+
```bash
|
|
1529
|
+
# Delete imported adapter
|
|
1530
|
+
terradev lora peft delete -a username/adapter
|
|
1531
|
+
```
|
|
1532
|
+
|
|
1533
|
+
### Phase 12: Cleanup
|
|
1534
|
+
|
|
1535
|
+
```bash
|
|
1536
|
+
# Terminate LoRAX server
|
|
1537
|
+
docker stop <container-id>
|
|
1538
|
+
|
|
1539
|
+
# Or delete Kubernetes deployment
|
|
1540
|
+
helm uninstall lorax -n lorax
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1391
1543
|
### Phase 4: View Hybrid Pool
|
|
1392
1544
|
|
|
1393
1545
|
```bash
|
|
@@ -1404,6 +1556,208 @@ terradev provision --gpu rtx4090 --count 1 --pool hybrid
|
|
|
1404
1556
|
|
|
1405
1557
|
---
|
|
1406
1558
|
|
|
1559
|
+
## Lifecycle 18 — HuggingFace PEFT Import (NEW)
|
|
1560
|
+
|
|
1561
|
+
**Goal:** Import, validate, and manage LoRA adapters from HuggingFace using the PEFT library.
|
|
1562
|
+
|
|
1563
|
+
### Phase 1: Import Adapter from HuggingFace
|
|
1564
|
+
|
|
1565
|
+
```bash
|
|
1566
|
+
# Import public adapter
|
|
1567
|
+
terradev lora peft import \
|
|
1568
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1569
|
+
|
|
1570
|
+
# Import with custom local name
|
|
1571
|
+
terradev lora peft import \
|
|
1572
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k \
|
|
1573
|
+
--local-name gsm8k-adapter
|
|
1574
|
+
|
|
1575
|
+
# Import from private repository
|
|
1576
|
+
terradev lora peft import \
|
|
1577
|
+
-a username/private-adapter \
|
|
1578
|
+
--token hf_xxx
|
|
1579
|
+
```
|
|
1580
|
+
|
|
1581
|
+
**What happens:**
|
|
1582
|
+
- Downloads adapter from HuggingFace Hub using PEFT library
|
|
1583
|
+
- Auto-detects rank, alpha, and target modules from adapter config
|
|
1584
|
+
- Stores adapter in `~/.terradev/peft_adapters/username--adapter/`
|
|
1585
|
+
- Validates adapter structure and compatibility
|
|
1586
|
+
|
|
1587
|
+
### Phase 2: Import and Register in Terradev Registry
|
|
1588
|
+
|
|
1589
|
+
```bash
|
|
1590
|
+
# Import and register in one step
|
|
1591
|
+
terradev lora peft import \
|
|
1592
|
+
-a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k \
|
|
1593
|
+
--local-name gsm8k-adapter \
|
|
1594
|
+
--register \
|
|
1595
|
+
--base-model mistralai/Mistral-7B-Instruct-v0.1
|
|
1596
|
+
|
|
1597
|
+
# Import with custom rank override
|
|
1598
|
+
terradev lora peft import \
|
|
1599
|
+
-a username/adapter \
|
|
1600
|
+
--register \
|
|
1601
|
+
--base-model meta-llama/Llama-2-7b-hf \
|
|
1602
|
+
--rank 128
|
|
1603
|
+
```
|
|
1604
|
+
|
|
1605
|
+
**What happens:**
|
|
1606
|
+
- Downloads and validates adapter (same as Phase 1)
|
|
1607
|
+
- Registers adapter in Terradev LoRA registry (`~/.terradev/lora_registry.db`)
|
|
1608
|
+
- Creates version entry with auto-generated version ID
|
|
1609
|
+
- Associates with base model for compatibility tracking
|
|
1610
|
+
- Captures metadata for cost attribution
|
|
1611
|
+
|
|
1612
|
+
### Phase 3: List Local Adapters
|
|
1613
|
+
|
|
1614
|
+
```bash
|
|
1615
|
+
# List all imported adapters
|
|
1616
|
+
terradev lora peft list
|
|
1617
|
+
```
|
|
1618
|
+
|
|
1619
|
+
**Output:**
|
|
1620
|
+
```
|
|
1621
|
+
Imported PEFT Adapters:
|
|
1622
|
+
vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1623
|
+
Local name: gsm8k-adapter
|
|
1624
|
+
Base model: mistralai/Mistral-7B-Instruct-v0.1
|
|
1625
|
+
Rank: 64
|
|
1626
|
+
Alpha: 16
|
|
1627
|
+
Target modules: q_proj, v_proj
|
|
1628
|
+
Path: ~/.terradev/peft_adapters/vineetsharma--qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1629
|
+
Registered: Yes
|
|
1630
|
+
```
|
|
1631
|
+
|
|
1632
|
+
### Phase 4: Validate Adapter Structure
|
|
1633
|
+
|
|
1634
|
+
```bash
|
|
1635
|
+
# Validate adapter
|
|
1636
|
+
terradev lora peft validate \
|
|
1637
|
+
-p ~/.terradev/peft_adapters/vineetsharma--qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1638
|
+
```
|
|
1639
|
+
|
|
1640
|
+
**What happens:**
|
|
1641
|
+
- Checks adapter_config.json exists and is valid
|
|
1642
|
+
- Verifies adapter weights are present
|
|
1643
|
+
- Validates target modules match base model
|
|
1644
|
+
- Checks rank and alpha values are consistent
|
|
1645
|
+
- Reports any structural issues
|
|
1646
|
+
|
|
1647
|
+
**Output:**
|
|
1648
|
+
```
|
|
1649
|
+
Validation: PASSED
|
|
1650
|
+
Config: ✓ Valid
|
|
1651
|
+
Weights: ✓ Present (8 files)
|
|
1652
|
+
Target modules: ✓ Compatible with base model
|
|
1653
|
+
Rank: 64
|
|
1654
|
+
Alpha: 16
|
|
1655
|
+
```
|
|
1656
|
+
|
|
1657
|
+
### Phase 5: Use with LoRAX
|
|
1658
|
+
|
|
1659
|
+
```bash
|
|
1660
|
+
# Deploy LoRAX server
|
|
1661
|
+
terradev lora lorax deploy \
|
|
1662
|
+
-m mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1663
|
+
--docker
|
|
1664
|
+
|
|
1665
|
+
# Load imported adapter
|
|
1666
|
+
terradev lora lorax load-adapter \
|
|
1667
|
+
-a ~/.terradev/peft_adapters/gsm8k-adapter \
|
|
1668
|
+
--adapter-name gsm8k-adapter
|
|
1669
|
+
|
|
1670
|
+
# Generate with adapter
|
|
1671
|
+
terradev lora lorax generate \
|
|
1672
|
+
-p "Solve: Natalia sold clips to 48 of her friends..." \
|
|
1673
|
+
-a gsm8k-adapter
|
|
1674
|
+
```
|
|
1675
|
+
|
|
1676
|
+
### Phase 6: Use with vLLM
|
|
1677
|
+
|
|
1678
|
+
```bash
|
|
1679
|
+
# Deploy vLLM with LoRA support
|
|
1680
|
+
terradev ml vllm --start \
|
|
1681
|
+
--instance-ip <ip> \
|
|
1682
|
+
--model mistralai/Mistral-7B-Instruct-v0.1 \
|
|
1683
|
+
--enable-lora \
|
|
1684
|
+
--lora-modules gsm8k=~/.terradev/peft_adapters/gsm8k-adapter
|
|
1685
|
+
|
|
1686
|
+
# Generate with adapter
|
|
1687
|
+
curl -X POST http://<ip>:8000/v1/completions \
|
|
1688
|
+
-H "Content-Type: application/json" \
|
|
1689
|
+
-d '{
|
|
1690
|
+
"model": "mistralai/Mistral-7B-Instruct-v0.1",
|
|
1691
|
+
"prompt": "What is 2+2?",
|
|
1692
|
+
"max_tokens": 64
|
|
1693
|
+
}'
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
### Phase 7: Delete Local Adapter
|
|
1697
|
+
|
|
1698
|
+
```bash
|
|
1699
|
+
# Delete imported adapter
|
|
1700
|
+
terradev lora peft delete -a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
1701
|
+
|
|
1702
|
+
# Delete by local name
|
|
1703
|
+
terradev lora peft delete -a gsm8k-adapter
|
|
1704
|
+
```
|
|
1705
|
+
|
|
1706
|
+
**What happens:**
|
|
1707
|
+
- Removes adapter from `~/.terradev/peft_adapters/`
|
|
1708
|
+
- Removes from registry if previously registered
|
|
1709
|
+
- Frees disk space
|
|
1710
|
+
- Updates local adapter index
|
|
1711
|
+
|
|
1712
|
+
### Phase 8: Batch Import Multiple Adapters
|
|
1713
|
+
|
|
1714
|
+
```bash
|
|
1715
|
+
# Import multiple adapters for a tenant
|
|
1716
|
+
terradev lora peft import \
|
|
1717
|
+
-a customer-a/adapter-1 \
|
|
1718
|
+
--local-name customer-a-adapter-1 \
|
|
1719
|
+
--register \
|
|
1720
|
+
--base-model meta-llama/Llama-2-7b-hf
|
|
1721
|
+
|
|
1722
|
+
terradev lora peft import \
|
|
1723
|
+
-a customer-a/adapter-2 \
|
|
1724
|
+
--local-name customer-a-adapter-2 \
|
|
1725
|
+
--register \
|
|
1726
|
+
--base-model meta-llama/Llama-2-7b-hf
|
|
1727
|
+
|
|
1728
|
+
terradev lora peft import \
|
|
1729
|
+
-a customer-a/adapter-3 \
|
|
1730
|
+
--local-name customer-a-adapter-3 \
|
|
1731
|
+
--register \
|
|
1732
|
+
--base-model meta-llama/Llama-2-7b-hf
|
|
1733
|
+
|
|
1734
|
+
# List all tenant adapters
|
|
1735
|
+
terradev lora peft list
|
|
1736
|
+
```
|
|
1737
|
+
|
|
1738
|
+
### Phase 9: Troubleshooting
|
|
1739
|
+
|
|
1740
|
+
```bash
|
|
1741
|
+
# If import fails due to missing token
|
|
1742
|
+
terradev lora peft import \
|
|
1743
|
+
-a username/private-adapter \
|
|
1744
|
+
--token hf_xxx
|
|
1745
|
+
|
|
1746
|
+
# If adapter is incompatible with base model
|
|
1747
|
+
terradev lora peft validate -p ~/.terradev/peft_adapters/username--adapter
|
|
1748
|
+
|
|
1749
|
+
# If rank detection fails, specify manually
|
|
1750
|
+
terradev lora peft import \
|
|
1751
|
+
-a username/adapter \
|
|
1752
|
+
--rank 64
|
|
1753
|
+
|
|
1754
|
+
# If disk space is low, delete unused adapters
|
|
1755
|
+
terradev lora peft list
|
|
1756
|
+
terradev lora peft delete -a unused-adapter
|
|
1757
|
+
```
|
|
1758
|
+
|
|
1759
|
+
---
|
|
1760
|
+
|
|
1407
1761
|
## Lifecycle 17 — Langfuse Integration (NEW)
|
|
1408
1762
|
|
|
1409
1763
|
**Goal:** Track LLM observability with Langfuse.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: terradev-cli
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.4.0
|
|
4
4
|
Summary: An imperative command-line-interface for AI workload orchestration.
|
|
5
5
|
Author-email: Terradev Team <team@terradev.com>
|
|
6
6
|
Maintainer-email: Terradev Team <team@terradev.com>
|
|
@@ -111,6 +111,38 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
111
111
|
|
|
112
112
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
113
113
|
|
|
114
|
+
**NOTES ON 5.3.9**
|
|
115
|
+
|
|
116
|
+
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
117
|
+
|
|
118
|
+
- **LoRAX Service** (`ml_services/lorax_service.py`): Async HTTP client for Predibase LoRAX multi-LoRA inference server that serves thousands of fine-tuned models on a single GPU with dynamic adapter loading, heterogeneous continuous batching, and adapter exchange scheduling.
|
|
119
|
+
|
|
120
|
+
- **LoRAX CLI commands** (`terradev lora lorax`):
|
|
121
|
+
```bash
|
|
122
|
+
terradev lora lorax deploy -m mistralai/Mistral-7B-Instruct-v0.1 --docker
|
|
123
|
+
terradev lora lorax test --host localhost --port 8080
|
|
124
|
+
terradev lora lorax list-adapters
|
|
125
|
+
terradev lora lorax load-adapter -a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
126
|
+
terradev lora lorax unload-adapter -a my-adapter
|
|
127
|
+
terradev lora lorax generate -p "What is 2+2?" -a my-adapter
|
|
128
|
+
terradev lora lorax sync-registry
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
- **PEFT Import Service** (`ml_services/peft_import_service.py`): Download, validate, and prepare LoRA adapters from HuggingFace using the PEFT library with auto-detection of rank, alpha, and target modules.
|
|
132
|
+
|
|
133
|
+
- **PEFT CLI commands** (`terradev lora peft`):
|
|
134
|
+
```bash
|
|
135
|
+
terradev lora peft import -a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
136
|
+
terradev lora peft import -a username/adapter --local-name my-adapter --register --base-model mistralai/Mistral-7B-Instruct-v0.1
|
|
137
|
+
terradev lora peft list
|
|
138
|
+
terradev lora peft validate -p ~/.terradev/peft_adapters/username--adapter
|
|
139
|
+
terradev lora peft delete -a username/adapter
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
- **LoRAX Helm Template** (`clusters/lorax-template/helm/`): Production-ready Kubernetes manifests with GPU resource limits, storage configuration, and Prometheus metrics support.
|
|
143
|
+
|
|
144
|
+
- **Registry Integration**: One-step import from HuggingFace and automatic registration in Terradev LoRA registry with version tracking, cross-replica sync, and cost attribution.
|
|
145
|
+
|
|
114
146
|
**NOTES ON 5.3.3**
|
|
115
147
|
|
|
116
148
|
Added **provider registration and profiling system** for intelligent quirk-aware routing across 23 cloud providers, and registration for custom providers from .yaml import:
|
|
@@ -16,6 +16,38 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
16
16
|
|
|
17
17
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
18
18
|
|
|
19
|
+
**NOTES ON 5.3.9**
|
|
20
|
+
|
|
21
|
+
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
22
|
+
|
|
23
|
+
- **LoRAX Service** (`ml_services/lorax_service.py`): Async HTTP client for Predibase LoRAX multi-LoRA inference server that serves thousands of fine-tuned models on a single GPU with dynamic adapter loading, heterogeneous continuous batching, and adapter exchange scheduling.
|
|
24
|
+
|
|
25
|
+
- **LoRAX CLI commands** (`terradev lora lorax`):
|
|
26
|
+
```bash
|
|
27
|
+
terradev lora lorax deploy -m mistralai/Mistral-7B-Instruct-v0.1 --docker
|
|
28
|
+
terradev lora lorax test --host localhost --port 8080
|
|
29
|
+
terradev lora lorax list-adapters
|
|
30
|
+
terradev lora lorax load-adapter -a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
31
|
+
terradev lora lorax unload-adapter -a my-adapter
|
|
32
|
+
terradev lora lorax generate -p "What is 2+2?" -a my-adapter
|
|
33
|
+
terradev lora lorax sync-registry
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- **PEFT Import Service** (`ml_services/peft_import_service.py`): Download, validate, and prepare LoRA adapters from HuggingFace using the PEFT library with auto-detection of rank, alpha, and target modules.
|
|
37
|
+
|
|
38
|
+
- **PEFT CLI commands** (`terradev lora peft`):
|
|
39
|
+
```bash
|
|
40
|
+
terradev lora peft import -a vineetsharma/qlora-adapter-Mistral-7B-Instruct-v0.1-gsm8k
|
|
41
|
+
terradev lora peft import -a username/adapter --local-name my-adapter --register --base-model mistralai/Mistral-7B-Instruct-v0.1
|
|
42
|
+
terradev lora peft list
|
|
43
|
+
terradev lora peft validate -p ~/.terradev/peft_adapters/username--adapter
|
|
44
|
+
terradev lora peft delete -a username/adapter
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- **LoRAX Helm Template** (`clusters/lorax-template/helm/`): Production-ready Kubernetes manifests with GPU resource limits, storage configuration, and Prometheus metrics support.
|
|
48
|
+
|
|
49
|
+
- **Registry Integration**: One-step import from HuggingFace and automatic registration in Terradev LoRA registry with version tracking, cross-replica sync, and cost attribution.
|
|
50
|
+
|
|
19
51
|
**NOTES ON 5.3.3**
|
|
20
52
|
|
|
21
53
|
Added **provider registration and profiling system** for intelligent quirk-aware routing across 23 cloud providers, and registration for custom providers from .yaml import:
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
apiVersion: v2
|
|
2
|
+
name: lorax
|
|
3
|
+
description: LoRAX (LoRA eXchange) multi-LoRA inference server from Predibase
|
|
4
|
+
type: application
|
|
5
|
+
version: 0.1.0
|
|
6
|
+
appVersion: "main"
|
|
7
|
+
keywords:
|
|
8
|
+
- lorax
|
|
9
|
+
- lora
|
|
10
|
+
- inference
|
|
11
|
+
- llm
|
|
12
|
+
- predibase
|
|
13
|
+
home: https://github.com/predibase/lorax
|
|
14
|
+
sources:
|
|
15
|
+
- https://github.com/predibase/lorax
|
|
16
|
+
maintainers:
|
|
17
|
+
- name: Terradev
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{{/*
|
|
2
|
+
Expand the name of the chart.
|
|
3
|
+
*/}}
|
|
4
|
+
{{- define "lorax.name" -}}
|
|
5
|
+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
6
|
+
{{- end }}
|
|
7
|
+
|
|
8
|
+
{{/*
|
|
9
|
+
Create a default fully qualified app name.
|
|
10
|
+
*/}}
|
|
11
|
+
{{- define "lorax.fullname" -}}
|
|
12
|
+
{{- if .Values.fullnameOverride }}
|
|
13
|
+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
14
|
+
{{- else }}
|
|
15
|
+
{{- $name := default .Chart.Name .Values.nameOverride }}
|
|
16
|
+
{{- if contains $name .Release.Name }}
|
|
17
|
+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
18
|
+
{{- else }}
|
|
19
|
+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
20
|
+
{{- end }}
|
|
21
|
+
{{- end }}
|
|
22
|
+
{{- end }}
|
|
23
|
+
|
|
24
|
+
{{/*
|
|
25
|
+
Create chart name and version as used by the chart label.
|
|
26
|
+
*/}}
|
|
27
|
+
{{- define "lorax.chart" -}}
|
|
28
|
+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
29
|
+
{{- end }}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: Deployment
|
|
3
|
+
metadata:
|
|
4
|
+
name: {{ include "lorax.fullname" . }}
|
|
5
|
+
labels:
|
|
6
|
+
app: {{ include "lorax.name" . }}
|
|
7
|
+
chart: {{ include "lorax.chart" . }}
|
|
8
|
+
release: {{ .Release.Name }}
|
|
9
|
+
heritage: {{ .Release.Service }}
|
|
10
|
+
spec:
|
|
11
|
+
replicas: {{ .Values.replicaCount }}
|
|
12
|
+
selector:
|
|
13
|
+
matchLabels:
|
|
14
|
+
app: {{ include "lorax.name" . }}
|
|
15
|
+
release: {{ .Release.Name }}
|
|
16
|
+
template:
|
|
17
|
+
metadata:
|
|
18
|
+
labels:
|
|
19
|
+
app: {{ include "lorax.name" . }}
|
|
20
|
+
release: {{ .Release.Name }}
|
|
21
|
+
spec:
|
|
22
|
+
serviceAccountName: {{ include "lorax.fullname" . }}
|
|
23
|
+
{{- with .Values.nodeSelector }}
|
|
24
|
+
nodeSelector:
|
|
25
|
+
{{- toYaml . | nindent 8 }}
|
|
26
|
+
{{- end }}
|
|
27
|
+
{{- with .Values.tolerations }}
|
|
28
|
+
tolerations:
|
|
29
|
+
{{- toYaml . | nindent 8 }}
|
|
30
|
+
{{- end }}
|
|
31
|
+
containers:
|
|
32
|
+
- name: lorax
|
|
33
|
+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
|
34
|
+
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
35
|
+
ports:
|
|
36
|
+
- name: http
|
|
37
|
+
containerPort: {{ .Values.service.targetPort }}
|
|
38
|
+
protocol: TCP
|
|
39
|
+
{{- if .Values.metrics.enabled }}
|
|
40
|
+
- name: metrics
|
|
41
|
+
containerPort: {{ .Values.metrics.port }}
|
|
42
|
+
protocol: TCP
|
|
43
|
+
{{- end }}
|
|
44
|
+
env:
|
|
45
|
+
{{- range .Values.env }}
|
|
46
|
+
- name: {{ .name }}
|
|
47
|
+
value: {{ .value | quote }}
|
|
48
|
+
{{- end }}
|
|
49
|
+
resources:
|
|
50
|
+
{{- toYaml .Values.resources | nindent 10 }}
|
|
51
|
+
volumeMounts:
|
|
52
|
+
{{- if .Values.storage.enabled }}
|
|
53
|
+
- name: adapter-storage
|
|
54
|
+
mountPath: /data
|
|
55
|
+
{{- end }}
|
|
56
|
+
command:
|
|
57
|
+
- lorax-server
|
|
58
|
+
args:
|
|
59
|
+
- --model-id
|
|
60
|
+
- {{ .Values.model.id }}
|
|
61
|
+
- --max-loras
|
|
62
|
+
- {{ .Values.maxLoras | quote }}
|
|
63
|
+
{{- if ne .Values.model.quantization "none" }}
|
|
64
|
+
- --quantize
|
|
65
|
+
- {{ .Values.model.quantization }}
|
|
66
|
+
{{- end }}
|
|
67
|
+
- --port
|
|
68
|
+
- {{ .Values.service.targetPort | quote }}
|
|
69
|
+
{{- if .Values.metrics.enabled }}
|
|
70
|
+
- --enable-metrics
|
|
71
|
+
{{- end }}
|
|
72
|
+
volumes:
|
|
73
|
+
{{- if .Values.storage.enabled }}
|
|
74
|
+
- name: adapter-storage
|
|
75
|
+
persistentVolumeClaim:
|
|
76
|
+
claimName: {{ include "lorax.fullname" . }}-storage
|
|
77
|
+
{{- end }}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{{- if .Values.storage.enabled }}
|
|
2
|
+
apiVersion: v1
|
|
3
|
+
kind: PersistentVolumeClaim
|
|
4
|
+
metadata:
|
|
5
|
+
name: {{ include "lorax.fullname" . }}-storage
|
|
6
|
+
labels:
|
|
7
|
+
app: {{ include "lorax.name" . }}
|
|
8
|
+
chart: {{ include "lorax.chart" . }}
|
|
9
|
+
release: {{ .Release.Name }}
|
|
10
|
+
heritage: {{ .Release.Service }}
|
|
11
|
+
spec:
|
|
12
|
+
accessModes:
|
|
13
|
+
- ReadWriteOnce
|
|
14
|
+
resources:
|
|
15
|
+
requests:
|
|
16
|
+
storage: {{ .Values.storage.size }}
|
|
17
|
+
{{- if .Values.storage.storageClass }}
|
|
18
|
+
storageClassName: {{ .Values.storage.storageClass }}
|
|
19
|
+
{{- end }}
|
|
20
|
+
{{- end }}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
apiVersion: v1
|
|
2
|
+
kind: Service
|
|
3
|
+
metadata:
|
|
4
|
+
name: {{ include "lorax.fullname" . }}
|
|
5
|
+
labels:
|
|
6
|
+
app: {{ include "lorax.name" . }}
|
|
7
|
+
chart: {{ include "lorax.chart" . }}
|
|
8
|
+
release: {{ .Release.Name }}
|
|
9
|
+
heritage: {{ .Release.Service }}
|
|
10
|
+
spec:
|
|
11
|
+
type: {{ .Values.service.type }}
|
|
12
|
+
ports:
|
|
13
|
+
- name: http
|
|
14
|
+
port: {{ .Values.service.port }}
|
|
15
|
+
targetPort: http
|
|
16
|
+
protocol: TCP
|
|
17
|
+
{{- if .Values.metrics.enabled }}
|
|
18
|
+
- name: metrics
|
|
19
|
+
port: {{ .Values.metrics.port }}
|
|
20
|
+
targetPort: metrics
|
|
21
|
+
protocol: TCP
|
|
22
|
+
{{- end }}
|
|
23
|
+
selector:
|
|
24
|
+
app: {{ include "lorax.name" . }}
|
|
25
|
+
release: {{ .Release.Name }}
|