fufu-cloud-cli 0.11.0__tar.gz → 0.11.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.
- {fufu_cloud_cli-0.11.0/src/fufu_cloud_cli.egg-info → fufu_cloud_cli-0.11.1}/PKG-INFO +5 -5
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/README.md +4 -4
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/pyproject.toml +1 -1
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/__init__.py +1 -1
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/capabilities.json +5 -5
- fufu_cloud_cli-0.11.1/src/fufu_cloud_cli/gateway_contract.py +15 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/infrastructure.py +3 -3
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1/src/fufu_cloud_cli.egg-info}/PKG-INFO +5 -5
- fufu_cloud_cli-0.11.0/src/fufu_cloud_cli/gateway_contract.py +0 -8
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/LICENSE +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/MANIFEST.in +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/setup.cfg +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/__main__.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/api_backend.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/aws_errors.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/aws_lambda.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/aws_output.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/bigquery.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/capacity.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/cli.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/cloud_data.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/cloudflare.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/control.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/docker_backend.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/errors.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/gcloud_environment.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/gcloud_output.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/gcp_infra.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/gcp_sdk.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/gcs.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/http_runtime.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/iac_state.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/lambda_adapter.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/limits.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/manifest.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/object_transfer.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/observability.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/public_access.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/pubsub.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/pulumi-endpoints.json +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/pulumi_bridge.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/remote_compute.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime/functions/Dockerfile +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime/ingress/Dockerfile +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime/ingress/proxy.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime_sdk.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/s3_highlevel.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/secrets.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/serverless.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/__init__.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/aws.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/aws_data.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/common.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/google.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/google_pubsub.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/remote_state.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/runner.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/storage.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/usage.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/vendor/AWS-CLI-LICENSE.txt +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/vendor/__init__.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/vendor/aws_text.py +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/SOURCES.txt +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/dependency_links.txt +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/entry_points.txt +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/requires.txt +0 -0
- {fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fufu-cloud-cli
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: FUFU Cloud CLI for tenant-scoped mock cloud development and deployment
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -29,7 +29,7 @@ Dynamic: license-file
|
|
|
29
29
|
只供 FUFU mock 環境使用;不會把部署轉送到正式雲端。
|
|
30
30
|
|
|
31
31
|
0.11.0 新增獨占 GPU VM 的租用命令。需由平台啟用並驗證對應實體節點;
|
|
32
|
-
支援的 RTX 3060
|
|
32
|
+
支援的 RTX 3060 以專用 GPU 提供給 VM,可執行 NVIDIA 驅動與 CUDA。
|
|
33
33
|
停止 VM 仍保留整卡,刪除後才釋放。GPU 使用中或已保留會明確拒絕,
|
|
34
34
|
不會自動中斷其他工作。CLI 不包含節點 SSH 金鑰、主機裝置管理程式或平台設定。
|
|
35
35
|
|
|
@@ -54,8 +54,8 @@ S3 bucket tags。需配套 FUFU API;不支援 bucket versioning、retention、
|
|
|
54
54
|
KMS、bucket IAM、GCS bucket labels 或 force destroy。
|
|
55
55
|
|
|
56
56
|
0.10.0 新增 Compute Engine/EC2 VM 與 GKE/EKS 介面的實際運算命令。
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
需要啟用相應功能的 FUFU 服務端;提供實際 VM 與獨立 Kubernetes API,
|
|
58
|
+
叢集使用共用運算資源,均不是官方雲端資源。
|
|
59
59
|
支援 VM 建立、SSH 指令、停止/啟動與刪除,以及叢集建立、查詢、
|
|
60
60
|
get-credentials/update-kubeconfig、waiter 與刪除。
|
|
61
61
|
取得憑證後可使用標準 kubectl 部署 Deployment、Service、Job 及受管 GPU 容器。
|
|
@@ -145,7 +145,7 @@ BigQuery 是 tenant emulator 的 GoogleSQL 子集,無 DML/DDL、load/export
|
|
|
145
145
|
|
|
146
146
|
0.9.4 新增 GCS generation/metageneration 條件、`storage objects describe/update/list`、8 KiB 自訂 metadata 與二進位 `cat`。競爭寫入、過期條件、CLI metadata 和官方 gcloud 輸出欄位已對照驗收;不相符條件回傳 `PRECONDITION_FAILED`/HTTP 412。新功能需要同步更新 FUFU Console、GCS 儲存映像和 Cloud Shell。儲存升級前須停寫並備份完整 volume;新 metadata 格式可讀舊資料,回滾須還原升級前備份。
|
|
147
147
|
|
|
148
|
-
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP
|
|
148
|
+
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP 與隔離環境驗收;不表示完整 Google IAM、SDK/ADC 或自動擴縮相容。
|
|
149
149
|
|
|
150
150
|
0.9.1 統一所有 CLI API 請求的 `User-Agent: fufu-cloud-cli`,涵蓋物件傳輸、
|
|
151
151
|
Cloudflare 靜態檔案部署、IaC 遠端 state 與 Cloud Shell session,避免沿用
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
只供 FUFU mock 環境使用;不會把部署轉送到正式雲端。
|
|
6
6
|
|
|
7
7
|
0.11.0 新增獨占 GPU VM 的租用命令。需由平台啟用並驗證對應實體節點;
|
|
8
|
-
支援的 RTX 3060
|
|
8
|
+
支援的 RTX 3060 以專用 GPU 提供給 VM,可執行 NVIDIA 驅動與 CUDA。
|
|
9
9
|
停止 VM 仍保留整卡,刪除後才釋放。GPU 使用中或已保留會明確拒絕,
|
|
10
10
|
不會自動中斷其他工作。CLI 不包含節點 SSH 金鑰、主機裝置管理程式或平台設定。
|
|
11
11
|
|
|
@@ -30,8 +30,8 @@ S3 bucket tags。需配套 FUFU API;不支援 bucket versioning、retention、
|
|
|
30
30
|
KMS、bucket IAM、GCS bucket labels 或 force destroy。
|
|
31
31
|
|
|
32
32
|
0.10.0 新增 Compute Engine/EC2 VM 與 GKE/EKS 介面的實際運算命令。
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
需要啟用相應功能的 FUFU 服務端;提供實際 VM 與獨立 Kubernetes API,
|
|
34
|
+
叢集使用共用運算資源,均不是官方雲端資源。
|
|
35
35
|
支援 VM 建立、SSH 指令、停止/啟動與刪除,以及叢集建立、查詢、
|
|
36
36
|
get-credentials/update-kubeconfig、waiter 與刪除。
|
|
37
37
|
取得憑證後可使用標準 kubectl 部署 Deployment、Service、Job 及受管 GPU 容器。
|
|
@@ -121,7 +121,7 @@ BigQuery 是 tenant emulator 的 GoogleSQL 子集,無 DML/DDL、load/export
|
|
|
121
121
|
|
|
122
122
|
0.9.4 新增 GCS generation/metageneration 條件、`storage objects describe/update/list`、8 KiB 自訂 metadata 與二進位 `cat`。競爭寫入、過期條件、CLI metadata 和官方 gcloud 輸出欄位已對照驗收;不相符條件回傳 `PRECONDITION_FAILED`/HTTP 412。新功能需要同步更新 FUFU Console、GCS 儲存映像和 Cloud Shell。儲存升級前須停寫並備份完整 volume;新 metadata 格式可讀舊資料,回滾須還原升級前備份。
|
|
123
123
|
|
|
124
|
-
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP
|
|
124
|
+
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP 與隔離環境驗收;不表示完整 Google IAM、SDK/ADC 或自動擴縮相容。
|
|
125
125
|
|
|
126
126
|
0.9.1 統一所有 CLI API 請求的 `User-Agent: fufu-cloud-cli`,涵蓋物件傳輸、
|
|
127
127
|
Cloudflare 靜態檔案部署、IaC 遠端 state 與 Cloud Shell session,避免沿用
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
"limitations": [
|
|
366
366
|
"single-host-configurable-storage-capacity-default-2GiB-per-tenant",
|
|
367
367
|
"default-30-day-log-retention",
|
|
368
|
-
"bounded-durable-spool-and-
|
|
368
|
+
"bounded-durable-spool-and-log-rotation",
|
|
369
369
|
"no-sinks-alerts-or-native-Monitoring-Trace-API",
|
|
370
370
|
"no-new-IaC-resources"
|
|
371
371
|
]
|
|
@@ -547,7 +547,7 @@
|
|
|
547
547
|
"create-list-describe-delete", "stop-start", "guest-ssh-command", "exclusive-gpu-vm"
|
|
548
548
|
],
|
|
549
549
|
"limitations": ["requires-FUFU-infrastructure-backend", "Debian-12-only", "private-network", "single-node-disk", "GPU-requires-enabled-validated-node", "GPU-exclusive-until-delete", "no-GPU-hotplug-or-live-migration", "no-official-IaC-provider"],
|
|
550
|
-
"reason": "實際
|
|
550
|
+
"reason": "實際 VM、持久磁碟與 SSH 指令;原生風格指令子集,無官方雲端資源。"
|
|
551
551
|
},
|
|
552
552
|
"gcp-gke": {
|
|
553
553
|
"name": "GKE",
|
|
@@ -556,7 +556,7 @@
|
|
|
556
556
|
"mode": "simplified",
|
|
557
557
|
"operations": ["create-list-describe-delete", "get-credentials", "kubectl-workloads", "GPU-container-jobs"],
|
|
558
558
|
"limitations": ["requires-FUFU-infrastructure-backend", "shared-workers", "single-control-plane-replica", "no-workload-PVC", "no-public-LoadBalancer", "no-interactive-exec-or-portforward", "no-official-IaC-provider"],
|
|
559
|
-
"reason": "獨立
|
|
559
|
+
"reason": "獨立 Kubernetes API 與持久化管理資料;共用受管節點,支援標準 kubectl 工作負載子集。"
|
|
560
560
|
},
|
|
561
561
|
"gcp-vpc": {
|
|
562
562
|
"name": "VPC / Firewall",
|
|
@@ -650,7 +650,7 @@
|
|
|
650
650
|
"mode": "simplified",
|
|
651
651
|
"operations": ["run-describe-terminate-instances", "stop-start", "instance-waiters", "exclusive-gpu-vm"],
|
|
652
652
|
"limitations": ["requires-FUFU-infrastructure-backend", "Debian-12-only", "private-network", "single-node-disk", "GPU-requires-enabled-validated-node", "GPU-exclusive-until-delete", "no-GPU-hotplug-or-live-migration", "no-official-IaC-provider"],
|
|
653
|
-
"reason": "實際
|
|
653
|
+
"reason": "實際 VM;支援生命週期與 scoped instance ID,無官方 EC2 網路或完整 API。"
|
|
654
654
|
},
|
|
655
655
|
"aws-ecs": {
|
|
656
656
|
"name": "ECS / Fargate",
|
|
@@ -664,7 +664,7 @@
|
|
|
664
664
|
"mode": "simplified",
|
|
665
665
|
"operations": ["create-list-describe-delete", "update-kubeconfig", "cluster-waiters", "kubectl-workloads", "GPU-container-jobs"],
|
|
666
666
|
"limitations": ["requires-FUFU-infrastructure-backend", "shared-workers", "single-control-plane-replica", "no-workload-PVC", "no-public-LoadBalancer", "no-interactive-exec-or-portforward", "no-official-IaC-provider"],
|
|
667
|
-
"reason": "獨立
|
|
667
|
+
"reason": "獨立 Kubernetes API 與持久化管理資料;FUFU 短效認證,不是 AWS 原生 IAM 或託管控制面。"
|
|
668
668
|
},
|
|
669
669
|
"aws-app-runner": {
|
|
670
670
|
"name": "App Runner",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""管理者配置的 API gateway;容器標籤只能由受信任的宿主控制器設定。"""
|
|
2
|
+
import hashlib
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# Exact compatibility with the retired gateway label; no broader label matching.
|
|
6
|
+
LEGACY_GATEWAY_LABEL = '261dbe856e015a13f8939aaae3315dd86b7f00294b5b6eaacca591e339859561'
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def api_gateway_labels(labels):
|
|
10
|
+
if not isinstance(labels, dict):
|
|
11
|
+
return False
|
|
12
|
+
bridge = labels.get('io.fufu.platform-bridge')
|
|
13
|
+
legacy = isinstance(bridge, str) and len(bridge) <= 128 and hashlib.sha256(bridge.encode()).hexdigest() == LEGACY_GATEWAY_LABEL
|
|
14
|
+
return labels.get('com.docker.compose.service') == 'local-cloud-console' or \
|
|
15
|
+
bridge == 'console-v1' or legacy
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Native command subset
|
|
1
|
+
"""Native command subset for FUFU managed compute and cluster services."""
|
|
2
2
|
import base64
|
|
3
3
|
import datetime
|
|
4
4
|
import hashlib
|
|
@@ -27,7 +27,7 @@ VM_TYPES = {'e2-micro': (2, 1), 'e2-small': (2, 2), 'e2-medium': (2, 4), 'e2-sta
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def warn(kind):
|
|
30
|
-
sys.stderr.write('FUFU runtime: ' + ('
|
|
30
|
+
sys.stderr.write('FUFU runtime: ' + ('VM with a private network and persistent disk without automatic failover; optional exclusive GPU in supported locations, retained until deletion.\n' if kind == 'vm' else
|
|
31
31
|
'Independent Kubernetes API with shared worker nodes; private ClusterIP services, no workload PVCs or native cloud IAM.\n'))
|
|
32
32
|
|
|
33
33
|
|
|
@@ -49,7 +49,7 @@ def wait(api, kind, name, desired='RUNNING', seconds=480):
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def fufu_fields(value):
|
|
52
|
-
return {key: value.get(key) for key in ['name', 'state', 'mode', '
|
|
52
|
+
return {key: value.get(key) for key in ['name', 'state', 'mode', 'node', 'limitations', 'spec'] if key in value} | {'backend': 'fufu'}
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
def gcp_shape(value, kind):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fufu-cloud-cli
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: FUFU Cloud CLI for tenant-scoped mock cloud development and deployment
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -29,7 +29,7 @@ Dynamic: license-file
|
|
|
29
29
|
只供 FUFU mock 環境使用;不會把部署轉送到正式雲端。
|
|
30
30
|
|
|
31
31
|
0.11.0 新增獨占 GPU VM 的租用命令。需由平台啟用並驗證對應實體節點;
|
|
32
|
-
支援的 RTX 3060
|
|
32
|
+
支援的 RTX 3060 以專用 GPU 提供給 VM,可執行 NVIDIA 驅動與 CUDA。
|
|
33
33
|
停止 VM 仍保留整卡,刪除後才釋放。GPU 使用中或已保留會明確拒絕,
|
|
34
34
|
不會自動中斷其他工作。CLI 不包含節點 SSH 金鑰、主機裝置管理程式或平台設定。
|
|
35
35
|
|
|
@@ -54,8 +54,8 @@ S3 bucket tags。需配套 FUFU API;不支援 bucket versioning、retention、
|
|
|
54
54
|
KMS、bucket IAM、GCS bucket labels 或 force destroy。
|
|
55
55
|
|
|
56
56
|
0.10.0 新增 Compute Engine/EC2 VM 與 GKE/EKS 介面的實際運算命令。
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
需要啟用相應功能的 FUFU 服務端;提供實際 VM 與獨立 Kubernetes API,
|
|
58
|
+
叢集使用共用運算資源,均不是官方雲端資源。
|
|
59
59
|
支援 VM 建立、SSH 指令、停止/啟動與刪除,以及叢集建立、查詢、
|
|
60
60
|
get-credentials/update-kubeconfig、waiter 與刪除。
|
|
61
61
|
取得憑證後可使用標準 kubectl 部署 Deployment、Service、Job 及受管 GPU 容器。
|
|
@@ -145,7 +145,7 @@ BigQuery 是 tenant emulator 的 GoogleSQL 子集,無 DML/DDL、load/export
|
|
|
145
145
|
|
|
146
146
|
0.9.4 新增 GCS generation/metageneration 條件、`storage objects describe/update/list`、8 KiB 自訂 metadata 與二進位 `cat`。競爭寫入、過期條件、CLI metadata 和官方 gcloud 輸出欄位已對照驗收;不相符條件回傳 `PRECONDITION_FAILED`/HTTP 412。新功能需要同步更新 FUFU Console、GCS 儲存映像和 Cloud Shell。儲存升級前須停寫並備份完整 volume;新 metadata 格式可讀舊資料,回滾須還原升級前備份。
|
|
147
147
|
|
|
148
|
-
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP
|
|
148
|
+
0.9.3 的常用輸出投影、清單篩選/排序/limit、Cloud Run 設定更新、Service Account 啟停及 Pub/Sub attributes/ACK deadline 持續保留。僅明列子集經過官方 gcloud、小用量真實 GCP 與隔離環境驗收;不表示完整 Google IAM、SDK/ADC 或自動擴縮相容。
|
|
149
149
|
|
|
150
150
|
0.9.1 統一所有 CLI API 請求的 `User-Agent: fufu-cloud-cli`,涵蓋物件傳輸、
|
|
151
151
|
Cloudflare 靜態檔案部署、IaC 遠端 state 與 Cloud Shell session,避免沿用
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"""管理者配置的 API gateway;容器標籤只能由受信任的宿主控制器設定。"""
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def api_gateway_labels(labels):
|
|
5
|
-
if not isinstance(labels, dict):
|
|
6
|
-
return False
|
|
7
|
-
return labels.get('com.docker.compose.service') == 'local-cloud-console' or \
|
|
8
|
-
labels.get('io.fufu.platform-bridge') == 'console-rke2-v1'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime/functions/Dockerfile
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/runtime/ingress/Dockerfile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/aws_data.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/common.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/google.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/google_pubsub.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/remote_state.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/runner.py
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/terraform_bridge/storage.py
RENAMED
|
File without changes
|
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli/vendor/AWS-CLI-LICENSE.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{fufu_cloud_cli-0.11.0 → fufu_cloud_cli-0.11.1}/src/fufu_cloud_cli.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|