huaweicloud/huaweicloud-skills

huawei-cloud-modelarts-notebook-management

Manage Huawei Cloud ModelArts Notebook instances through full lifecycle operations via hcloud CLI.

Vedi sorgente
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

Huawei Cloud ModelArts Notebook Management

Full lifecycle management for ModelArts Notebook instances via hcloud CLI — 31 API interfaces across 7 functional domains.

Overview

This skill enables users to manage Huawei Cloud ModelArts Notebook instances through the hcloud CLI. It covers the complete notebook lifecycle including instance CRUD, start/stop, lease renewal, tag management, image management, flavor/cluster queries, feature queries, and dynamic storage management.

Architecture

User Request → Agent → hcloud ModelArts <Operation> --cli-region={region} [--params] → Huawei Cloud ModelArts API

Applicable Scenarios

  • Daily Operations: List notebooks, check status, view details, query flavors
  • Instance Lifecycle: Create, start, stop, update, delete notebook instances
  • Image Management: Save running instance as image, register/list/delete/sync custom images
  • Storage Management: Dynamically attach/detach storage to notebook instances
  • Lease Management: Query and renew notebook leases
  • Tag Management: Create, delete, query notebook tags

Scope

本 skill 仅支持 ModelArts Notebook 实例管理(31 个 API),涵盖上述 7 个功能域。

不支持以下 ModelArts 能力,相关请求请使用对应 skill:

  • 推理服务(在线服务、批量服务)— 使用推理服务管理 skill
  • DevServer(开发环境)— 使用 DevServer 管理 skill
  • 模型管理(导入/导出/发布模型)— 使用模型管理 skill
  • 训练作业(创建/管理训练任务)— 使用训练作业管理 skill
  • 自动搜索、超参调优 — 使用自动搜索 skill

Prerequisites

  1. hcloud CLI installed and authenticated — Reference: https://support.huaweicloud.com/qs-hcli/hcli02003.html
  2. Huawei Cloud AK/SK configured via hcloud (see Security & Credential Check below)
  3. ModelArts service enabled in the target region
  4. IAM permissions — See references/iam-policies.md

Security & Credential Check

⚠️ CRITICAL: This section defines the agent's security boundary. Follow it strictly.

🔒 Security Rules (MANDATORY)

  • 🚫 NEVER read, echo, or print AK/SK values (e.g., cat ~/.hcloud/config.json, echo $HW_ACCESS_KEY is FORBIDDEN)
  • 🚫 NEVER read or cat credential files such as ~/.hcloud/config.json or any file that may contain secrets
  • 🚫 NEVER ask the user to input AK/SK directly in the conversation or command line
  • 🚫 NEVER execute hcloud configure set --cli-access-key=... --cli-secret-key=... — credential configuration is the user's responsibility, done outside the agent session
  • 🚫 NEVER pass --cli-access-key/--cli-secret-key on every API call — they will be exposed in process listings (ps aux) for the entire request duration
  • ALWAYS use hcloud configure list to check credential status (presence check only, not values)
  • ✅ If no valid profile exists, STOP and instruct the user to configure credentials outside this session
  • Recommend using IAM user with minimal permissions instead of main account

✅ Agent Credential Check (the ONLY acceptable check)

bash
# Step 1: Check credential status — presence only, not values
hcloud configure list
  • Expected: Shows a valid profile with mode: AKSK
  • If empty/invalid → Guide the user with the 3-step process below:

Step-by-step guidance (copy-paste for the user):

"No valid credentials found. Please follow these 3 steps in your terminal:" ① Get your AK/SK Log in to Huawei Cloud Console → IAM → Access Keys. If you don't have one, click "Create Access Key" and save it securely. ② Run this in your terminal (one-time setup): ``bash hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK> *(Replace <YOURAK>` and `<YOURSK> with the values from step ①)* **③ Come back and tell me "configured"**, I'll verify it works. *Note: The configure set command stores your credentials in ~/.hcloud/config.json. After that, all hcloud commands use them automatically — no need to pass AK/SK again.* *Agent: DO NOT execute any configure set` command yourself.*

🔧 User's Responsibility (for documentation, NOT agent execution)

The user configures credentials outside the agent session (in their own terminal):

bash
# One-time setup — run this in your terminal, NOT in the agent chat
HISTCONTROL=ignorespace
 hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>
⚠️ Note: hcloud CLI does NOT read HW_ACCESS_KEY/HW_SECRET_KEY environment variables (those are for Python SDK only). hcloud configure set is the only supported credential configuration method.

Workflow

Step 1: Identify the Operation

Determine which notebook operation the user needs based on their request:

User IntentOperation Category
Create/list/view/update/delete/start/stop notebookInstance Management
Query/renew leaseLease Management
Create/delete/query tagsTag Management
Save/register/list/delete/sync imageImage Management
Query flavors/clusters/featuresFlavor & Cluster
Attach/detach/list storageDynamic Storage

Step 2: Execute CLI Command

bash
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
{region} must be replaced with the actual region, e.g., cn-north-4. Do NOT hardcode the region.

Step 2.5: Consult Known Issues (Write Operations Only)

Before executing any write operation, read references/known-issues.md and check for known pitfalls, parameter corrections, and required workarounds for the target API.

Common workarounds to apply:

APIIssueWorkaround
CreateNotebook (EVS)CLI rejects --volume.category=EVSUse --cli-jsonInput with {"body":{...}} wrapper + explicit --project_id
CreateNotebookParam name flavor_id wrongUse --flavor
CreateNotebookParam name volume.size wrongUse --volume.capacity
CreateNotebookownership=PRIVATE invalidUse MANAGED or DEDICATED
AttachDynamicStorageSTOPPED instance rejectedEnsure instance is RUNNING
AttachDynamicStoragemount_path formatMust start with /data/ and end with /
RegisterImagearch case mismatchUse uppercase X86_64/AARCH64
RenewLeasetype case mismatchUse lowercase timing/idle
This step is mandatory for all write operations. Skipping it may result in CLI parameter errors or API failures that are already documented.

Step 3: Handle Write Operations

For all write operations (Create/Update/Delete/Start/Stop/Attach/Detach/Register/Sync/Renew), prompt the user for confirmation before execution. For chargeable operations (CreateNotebook, StartNotebook), inquire BSS pricing first to inform the user of costs. See references/pricing-inquiry.md for the pricing inquiry workflow.

删除类操作交互指引:当用户请求删除标签(DeleteNotebookTags)、删除镜像分组(DeleteImageGroup)等操作但未指定具体对象时,必须先查询当前对象列表(如 ShowNotebookTags / ListImageGroup),向用户展示并确认要删除哪个对象,确认后再执行。避免因上下文不明确导致误删。

KooCLI Command Format Standard

bash
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
FeatureDescriptionExample
Service nameFixed: ModelArtsModelArts
Operation namePascalCaseListNotebooks, CreateNotebook
Region parameter--cli-region={region}--cli-region=cn-north-4
Simple parameter--key=value--id=xxx
Indexed parameter--key.1=value1--tags.1.key=env
project_idAuto-resolved if omittedUses configured project ID
Note: --project_id is auto-resolved from authentication credentials if omitted. Include it explicitly only when targeting a specific project.

Core Commands

All 31 CLI command examples across 7 functional domains are documented in a separate reference file.

📖 For detailed command syntax, parameters, and examples, read [references/cli-command-examples.md](references/cli-command-examples.md)

Quick Index

#DomainAPIsKey Operations
1Instance Management8CreateNotebook, ListNotebooks, ListAllNotebooks, ShowNotebook, UpdateNotebook, DeleteNotebook, StartNotebook, StopNotebook
2Lease Management2ShowLease, RenewLease
3Tag Management3ShowNotebookTags, CreateNotebookTags, DeleteNotebookTags
4Image Management9CreateImage, ListImage, RegisterImage, ShowImage, DeleteImage, SyncImage, ListImageGroup, DeleteImageGroup, UpdateImageGroup
5Flavor and Cluster4ListFlavors, ShowSwitchableFlavors, ListAuthoringClusters, ShowCluster
6Feature Query1ListFeatures
7Dynamic Storage4ListDynamicStorages, AttachDynamicStorage, ShowDynamicStorage, DetachDynamicStorage
When executing any command, always refer to the reference file for exact parameter names, required/optional flags, and usage patterns.

Parameter Confirmation

ParameterRequiredDescriptionExample
{region}YesHuawei Cloud regioncn-north-4, cn-east-3
{instance_id}Yes (most ops)Notebook instance UUIDxxx-xxx-xxx
{image_id}Create/ListImage UUIDxxx-xxx-xxx
{flavor_id}CreateFlavor ID for instancemodelarts.bm.4xlarge.pro
{resource_id}Tag opsResource ID for taggingxxx-xxx-xxx
{cluster_id}ShowClusterCluster IDxxx-xxx-xxx
{storage_id}Storage opsStorage IDxxx-xxx-xxx
{feature}ListFeaturesFeature nameNOTEBOOK
{project_id}No (auto)Project ID, auto-resolved if omittedOmit for default

SDK Fallback

If a CLI operation fails due to a CLI bug, fall back to SDK:

python
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmodelarts.v1.modelarts_client import ModelArtsClient
from huaweicloudsdkmodelarts.v1.region.modelarts_region import ModelArtsRegion

credentials = BasicCredentials(ak="{AK}", sk="{SK}", project_id="{project_id}")
client = ModelArtsClient.new_builder() \
    .with_credentials(credentials) \
    .with_region(ModelArtsRegion.value_of("{region}")) \
    .build()

Reference Documents

DocumentDescription
references/cli-command-examples.mdDetailed CLI command syntax and examples for all 31 APIs
references/iam-policies.mdLeast-privilege IAM policies
references/verification-method.mdVerification and testing methods
references/dataflow-diagram.mdMermaid data flow diagram
references/acceptance-criteria.mdAcceptance criteria checklist
references/api-paths.mdREST API paths from SDK source
references/cli-installation-guide.mdCLI installation and authentication guide
references/known-issues.mdKnown issues and workarounds
references/pricing-inquiry.mdBSS pricing inquiry guide for chargeable operations

Known Issues (Summary)

Full details: references/known-issues.md
#IssueKey Takeaway
1CLI omits EVS from volume.category enumUse --cli-jsonInput with body wrapper + explicit --project_id
2Storage category × ownership matrixEVS:MANAGED ✅, OBS/OBSFS:DEDICATED ✅, OBS/OBSFS:MANAGED ❌
3DEDICATED ownership requires pool_idQuery dedicated pools first, pass top-level pool_id
4OBS as data_volume silently failsUse OBS as main volume or use OBSFS as data_volume
5Bucket type (POSIX vs OBJECT) irrelevantBoth work with DEDICATED ownership
6OBSFS:MANAGED extended storage unsupportedUse DEDICATED for OBSFS
7OBS/OBSFS main volume needs dew_secret_nameStore AK/SK in DEW/CSMS secret
8OBS data volume requires mount_pathAlways specify valid path
9Image/flavor architecture mismatchMatch arch field between image and flavor
10--cli-jsonInput general workaroundMust wrap in {"body":{...}} + pass --project_id explicitly
11ShowLease duration is total, not remainingCalculate: remaining = (create_at + duration) - current_time
12ListImageGroup response field varies with --limitWithout limit: groups field; with limit: data field. Parse both
13AttachDynamicStorage only supports POSIX bucketsOBJECT buckets rejected with ModelArts.6772; use obsutil stat to verify

Notes

  • All 31 API interfaces are available via hcloud ModelArts CLI
  • SDK fallback available via huaweicloudsdkmodelarts v1 if CLI encounters issues
  • Region is specified via --cli-region and should NOT be hardcoded
  • --project_id is auto-resolved from credentials if omitted (but must be explicit when using --cli-jsonInput)
  • All write operations (Create/Update/Delete/Start/Stop/Attach/Detach/Register/Sync/Renew) require user confirmation before execution
  • Chargeable operations (CreateNotebook, StartNotebook) require BSS pricing inquiry to inform users of costs before execution
  • API paths verified from SDK source _http_info resource_path — no inferred endpoints
  • No hardcoded AK/SK in any file — credentials managed by hcloud via hcloud configure list/set
dallo stesso repository

Altri Skills

Tutti gli Skills
huaweicloud
Community

huawei-cloud-publish-work-to-gallery

Publish user's work to the Huawei Cloud University Operations Platform (华为云高校运营平台/作品陈列馆). Use this skill whenever the user wants to publish, submit, or upload a project/work to the gallery or a training camp (训练营) on the platform — including casual phrasings like "把作品发布上去", "投稿到陈列馆", "传作品到平台", "提交作品/项目", "报名发布作品", as well as formal ones like "publish to work gallery", "submit to training camp", "upload work to the platform". Do NOT use for general dev questions, git push to GitCode alone, or platform browsing without publishing intent.

installazioni
5
GitHub Stars
50
Aggiornato
23 set
huaweicloud
Community

huawei-cloud-eip-cost-optimizer

Huawei Cloud EIP (Elastic IP) cost optimization skill using hcloud CLI (KooCLI). 1. List and query EIPs across regions with detailed status 2. Identify idle/unbound EIPs and generate cost optimization reports 3. Set up idle EIP monitoring with webhook/email alerts 4. Generate HTML/JSON cost analysis reports 5. Maintain operation audit logs for compliance Read-only analysis only - NO bandwidth adjustment, tag management, or EIP release/deletion. Triggers include: "EIP cost optimization", "idle EIP analysis", "EIP audit", "cost report", "EIP status query", "EIP list", "EIP monitoring", "EIP alert", "cost analysis", "idle monitoring", "operation audit", "EIP 成本优化", "闲置 EIP 分析", "EIP 审计", "成本报告", "EIP 状态查询", "EIP 查询", "EIP 列表", "EIP 监控", "EIP 告警", "成本分析", "闲置监控", "操作审计"

installazioni
1
GitHub Stars
50
Aggiornato
22 set
huaweicloud
Community

huawei-cloud-flexus-l-deploy-jiuwenswarm

One-click deployment of JiuwenSwarm multi-Agent collaboration platform on Huawei Cloud Flexus L instances. Usage scenarios: When users need to quickly deploy JiuwenSwarm/JiuwenClaw on Huawei Cloud Flexus L instances, when they need to automatically create cloud instances and deploy AI Agent platforms, when they need to configure model APIs and message channels (Xiaoyi/Feishu/DingTalk). Automatically create instances, deploy applications via COC, configure models and message channels. Trigger keywords: JiuwenSwarm deployment, JiuwenClaw deployment, 九问Swarm部署, 九问Claw部署, 一键部署JiuwenSwarm, AI智能体平台部署, 部署九问Swarm, 部署九问Claw,云服务器部署AI平台.

installazioni
1
GitHub Stars
50
Aggiornato
22 set
huaweicloud
Community

huawei-cloud-flexus-l-server-flexusagent-deployment

Deploy AI Agent development platform (Dify) on Huawei Cloud Flexus L instance, providing deployment operations, password management, MaaS model configuration, and workflow import capabilities. Trigger keywords: deploy flexusagent/一键部署Flexus AI Agent开发平台、change password/修改开发平台管理员密码、change dify password/修改dify平台密码、add maas provider/添加MaaS模型供应商、configure maas model/配置MaaS模型、view workflow/查看AI Agent工作流、import workflow/导入AI Agent工作流

installazioni
1
GitHub Stars
50
Aggiornato
22 set