huaweicloud-devkit 0.1.17
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.
- package/.agents/plugins/marketplace.json +20 -0
- package/LICENSE +201 -0
- package/README.md +148 -0
- package/bin/setup.cjs +8 -0
- package/integrations/opencode/commands/huaweicloud-doctor.md +14 -0
- package/integrations/opencode/opencode.json +14 -0
- package/integrations/opencode/skills/huaweicloud-core/SKILL.md +30 -0
- package/package.json +43 -0
- package/plugins/huaweicloud-core/.claude-plugin/plugin.json +44 -0
- package/plugins/huaweicloud-core/.codex-plugin/plugin.json +43 -0
- package/plugins/huaweicloud-core/.cursor-plugin/plugin.json +44 -0
- package/plugins/huaweicloud-core/.mcp.json +13 -0
- package/plugins/huaweicloud-core/hooks/hooks.json +26 -0
- package/plugins/huaweicloud-core/hooks/huaweicloud-safety.py +88 -0
- package/plugins/huaweicloud-core/safety/policy.json +86 -0
- package/plugins/huaweicloud-core/skills/huawei-apig/SKILL.md +144 -0
- package/plugins/huaweicloud-core/skills/huawei-billing/SKILL.md +48 -0
- package/plugins/huaweicloud-core/skills/huawei-cbr/SKILL.md +50 -0
- package/plugins/huaweicloud-core/skills/huawei-cce/SKILL.md +101 -0
- package/plugins/huaweicloud-core/skills/huawei-cloud-eye/SKILL.md +73 -0
- package/plugins/huaweicloud-core/skills/huawei-cloud-find-skills/SKILL.md +190 -0
- package/plugins/huaweicloud-core/skills/huawei-cloud-find-skills/scripts/search-skills.mjs +124 -0
- package/plugins/huaweicloud-core/skills/huawei-cts/SKILL.md +55 -0
- package/plugins/huaweicloud-core/skills/huawei-dds-dcs/SKILL.md +70 -0
- package/plugins/huaweicloud-core/skills/huawei-deployment/SKILL.md +56 -0
- package/plugins/huaweicloud-core/skills/huawei-dew/SKILL.md +97 -0
- package/plugins/huaweicloud-core/skills/huawei-dew/references/csms-usage.md +29 -0
- package/plugins/huaweicloud-core/skills/huawei-dew/references/kms-usage.md +23 -0
- package/plugins/huaweicloud-core/skills/huawei-ecs/SKILL.md +131 -0
- package/plugins/huaweicloud-core/skills/huawei-ecs/references/create-instance.md +92 -0
- package/plugins/huaweicloud-core/skills/huawei-ecs/references/evs.md +31 -0
- package/plugins/huaweicloud-core/skills/huawei-ecs/references/flavors.md +28 -0
- package/plugins/huaweicloud-core/skills/huawei-ecs/references/troubleshooting.md +52 -0
- package/plugins/huaweicloud-core/skills/huawei-functiongraph/SKILL.md +132 -0
- package/plugins/huaweicloud-core/skills/huawei-functiongraph/references/apig-event-format.md +58 -0
- package/plugins/huaweicloud-core/skills/huawei-functiongraph/references/create-function.md +71 -0
- package/plugins/huaweicloud-core/skills/huawei-functiongraph/references/deploy-workflow.md +119 -0
- package/plugins/huaweicloud-core/skills/huawei-functiongraph/references/triggers.md +142 -0
- package/plugins/huaweicloud-core/skills/huawei-gaussdb/SKILL.md +56 -0
- package/plugins/huaweicloud-core/skills/huawei-getting-started/SKILL.md +65 -0
- package/plugins/huaweicloud-core/skills/huawei-iam/SKILL.md +111 -0
- package/plugins/huaweicloud-core/skills/huawei-iam/references/policy-examples.md +122 -0
- package/plugins/huaweicloud-core/skills/huawei-iam/references/quick-ref.md +56 -0
- package/plugins/huaweicloud-core/skills/huawei-modelarts/SKILL.md +65 -0
- package/plugins/huaweicloud-core/skills/huawei-obs/SKILL.md +118 -0
- package/plugins/huaweicloud-core/skills/huawei-obs/references/bucket-create.md +49 -0
- package/plugins/huaweicloud-core/skills/huawei-obs/references/bucket-lifecycle.md +26 -0
- package/plugins/huaweicloud-core/skills/huawei-obs/references/common-pitfalls.md +100 -0
- package/plugins/huaweicloud-core/skills/huawei-obs/references/static-website.md +56 -0
- package/plugins/huaweicloud-core/skills/huawei-rds/SKILL.md +181 -0
- package/plugins/huaweicloud-core/skills/huawei-smn-dms/SKILL.md +69 -0
- package/plugins/huaweicloud-core/skills/huawei-vpc/SKILL.md +77 -0
- package/plugins/huaweicloud-core/skills/huawei-vpc/references/network.md +52 -0
- package/plugins/huaweicloud-core/skills/huawei-vpc/references/security-group.md +59 -0
- package/plugins/huaweicloud-core/skills/huawei-vpc/references/subnet.md +50 -0
- package/plugins/huaweicloud-core/skills/huawei-waf-aad/SKILL.md +63 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-api-and-sdk/SKILL.md +56 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-api-and-sdk/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-capability-discovery/SKILL.md +47 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-capability-discovery/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-cli-and-auth/SKILL.md +125 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-cli-and-auth/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-core/SKILL.md +94 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-core/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-core/references/report-issue.md +20 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-core/references/select.md +28 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-safety/SKILL.md +46 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-safety/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-troubleshooting/SKILL.md +83 -0
- package/plugins/huaweicloud-core/skills/huaweicloud-troubleshooting/agents/openai.yaml +4 -0
- package/plugins/huaweicloud-core/src/hcloud-cli.mjs +265 -0
- package/plugins/huaweicloud-core/src/mcp-server.mjs +93 -0
- package/plugins/huaweicloud-core/src/safety-policy.mjs +289 -0
- package/plugins/huaweicloud-core/src/search-market.mjs +169 -0
- package/plugins/huaweicloud-core/src/setup-cli.mjs +628 -0
- package/plugins/huaweicloud-core/src/tools.mjs +672 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huawei-vpc
|
|
3
|
+
description: "Use when creating, configuring, or managing VPC networks, subnets, security groups, EIPs, NAT gateways, VPN connections, or network ACLs on Huawei Cloud. Triggers on: VPC, subnet, security group, EIP, NAT, VPN, network ACL, route table, bandwidth. NOT for: DNS or CDN configuration."
|
|
4
|
+
version: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Huawei Cloud VPC
|
|
8
|
+
|
|
9
|
+
**STOP - Do not answer from general knowledge.** Follow the procedure below.
|
|
10
|
+
|
|
11
|
+
Always run `hcloud <Service> <Operation> --help` before constructing commands to discover exact parameter names and requirements.
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Domain expertise for Huawei Cloud Virtual Private Cloud (VPC). Covers VPC/subnet lifecycle, security groups, EIP management, NAT gateways, VPN, and network ACLs.
|
|
16
|
+
|
|
17
|
+
## Critical Warnings
|
|
18
|
+
|
|
19
|
+
| Trap | Why |
|
|
20
|
+
|------|-----|
|
|
21
|
+
| VPC CIDR cannot change | Once set, VPC CIDR block is immutable |
|
|
22
|
+
| Security group stateful | SG rules are stateful. Return traffic auto-allowed |
|
|
23
|
+
| Network ACL stateless | ACL rules must allow both inbound AND outbound |
|
|
24
|
+
| EIP bills when idle | Unbound EIP still charges. Release when unused |
|
|
25
|
+
| Subnet AZ binding | Subnet tied to single AZ. Cross-AZ needs multiple subnets |
|
|
26
|
+
| EIP PER type needs `--bandwidth.name` | PER bandwidth requires explicit name; `--help` marks it optional but it's required |
|
|
27
|
+
| **VPC params need nested prefix** | KooCLI 7.x VPC API uses `--vpc.<param>`, `--subnet.<param>`, `--security_group.<param>`. Example: `--vpc.name=xxx` NOT `--name=xxx` |
|
|
28
|
+
| **Security group needs no vpc_id** | VPC v3 API `CreateSecurityGroup` does NOT accept `vpc_id`. Security groups are region-level, not VPC-bound |
|
|
29
|
+
| Subnet DNS empty → ECS no DNS | DNS params (`--subnet.primary_dns`, `--subnet.secondary_dns`) marked optional but empty default breaks cloud-init domain resolution — `yum`/`apt` installs fail silently. Always set both. See `--help` for region-specific DNS IPs |
|
|
30
|
+
|
|
31
|
+
## Common Workflows
|
|
32
|
+
|
|
33
|
+
| Task | Command | Steps |
|
|
34
|
+
|------|---------|-------|
|
|
35
|
+
| Create VPC | hcloud VPC CreateVpc --vpc.name=<name> --vpc.cidr=<cidr> | CIDR must not conflict with existing VPCs. Run `hcloud VPC ListVpcs` first |
|
|
36
|
+
| Create subnet | hcloud VPC CreateSubnet --subnet.name=<name> --subnet.vpc_id=<id> --subnet.cidr=<cidr> --subnet.gateway_ip=<gw> --subnet.primary_dns=<dns1> --subnet.secondary_dns=<dns2> --subnet.availability_zone=<az> | Subnet CIDR must be a subset of the VPC CIDR. DNS addresses vary by region — see `hcloud VPC CreateSubnet --help` |
|
|
37
|
+
| Security group | hcloud VPC CreateSecurityGroup --security_group.name=<name> | references/security-group.md |
|
|
38
|
+
| SG rule | hcloud VPC CreateSecurityGroupRule --security_group_rule.security_group_id=<id> --security_group_rule.direction=<direction> --security_group_rule.protocol=<protocol> --security_group_rule.multiport=<port> --security_group_rule.remote_ip_prefix=<cidr> | references/security-group.md |
|
|
39
|
+
| Create EIP | hcloud EIP CreatePublicip --publicip.type=<type> --bandwidth.size=<size> --bandwidth.share_type=<share-type> --bandwidth.name=<name> | Run `hcloud EIP CreatePublicip --help` to confirm valid type values per region |
|
|
40
|
+
| Bind EIP to ECS | hcloud EIP AssociatePublicips --publicip_id=<id> --publicip.associate_instance_id=<port-id> --publicip.associate_instance_type=PORT | Get port ID from `hcloud ECS ListServersDetails --server_id=<id>` → `OS-EXT-IPS:port_id` |
|
|
41
|
+
| Unbind EIP | hcloud EIP UnbindPublicIp --publicip_id=<id> | references/eip.md |
|
|
42
|
+
| List EIPs | hcloud EIP ListPublicips | |
|
|
43
|
+
| NAT gateway | hcloud NAT CreateNatGateway --nat.name=<name> --nat.spec=<spec> --router_id=<vpc-id> --internal_network_id=<subnet-id> | Run `hcloud NAT CreateNatGateway --help` for available spec values |
|
|
44
|
+
|
|
45
|
+
## Troubleshooting
|
|
46
|
+
|
|
47
|
+
| Error | Root Cause -> Fix |
|
|
48
|
+
|-------|------------------|
|
|
49
|
+
| Cannot reach instance | SG missing rule or no EIP -> Add SG rule / Bind EIP |
|
|
50
|
+
| Subnet CIDR conflict | Overlapping with existing subnets -> Choose non-overlapping CIDR |
|
|
51
|
+
| NAT gateway no internet | Route table missing default route -> Add 0.0.0.0/0 via NAT |
|
|
52
|
+
| EIP quota exceeded | Check actual quota: `hcloud EIP ListPublicips --cli-region=<r>` to see current usage. Default varies by account (typically 5-10) |
|
|
53
|
+
| EIP.7905 | Run `hcloud EIP ListPublicips --cli-region=<r>` first to check current usage |
|
|
54
|
+
| VPC.0301: Bandwidth name invalid | PER type requires `--bandwidth.name`, even though `--help` marks it optional |
|
|
55
|
+
| EIP has no public IP after binding | May need AddIngressEipV2 for ELB-type resources (see huawei-apig) |
|
|
56
|
+
| ECS cloud-init fails silently (port 80/443 closed) | Subnet likely has no DNS. Check `hcloud VPC ShowSubnet --subnet_id=<id>` → `dnsList` empty? Rebuild subnet with `--subnet.primary_dns=<dns1> --subnet.secondary_dns=<dns2>`. DNS addresses per region: `hcloud VPC CreateSubnet --help` |
|
|
57
|
+
| SYS.0403 / SCP deny | Service Control Policy explicitly denies this operation — contact org admin to adjust SCP, or use an account/region without the restriction |
|
|
58
|
+
|
|
59
|
+
## Security Considerations
|
|
60
|
+
|
|
61
|
+
- MUST use security groups, NOT iptables
|
|
62
|
+
- MUST scope SG rules to specific CIDRs, NOT 0.0.0.0/0
|
|
63
|
+
- SHOULD use network ACLs as defense-in-depth
|
|
64
|
+
- SHOULD place databases in private subnets (no EIP)
|
|
65
|
+
- MUST enable VPC flow logs for audit
|
|
66
|
+
|
|
67
|
+
## MCP Tools
|
|
68
|
+
|
|
69
|
+
- huaweicloud_list_operations service=VPC
|
|
70
|
+
- huaweicloud_run_readonly_command for VPC/subnet discovery
|
|
71
|
+
- huaweicloud_run_approved_command for writes
|
|
72
|
+
|
|
73
|
+
## References
|
|
74
|
+
|
|
75
|
+
- VPC Docs: https://support.huaweicloud.com/vpc/
|
|
76
|
+
- Subnet guide: references/subnet.md
|
|
77
|
+
- Security group: references/security-group.md
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# VPC Network Management Reference
|
|
2
|
+
|
|
3
|
+
## Nested Prefix Summary
|
|
4
|
+
|
|
5
|
+
KooCLI 7.x VPC API requires nested prefixes:
|
|
6
|
+
|
|
7
|
+
| Resource | Create Param Prefix | Example |
|
|
8
|
+
|----------|---------------------|---------|
|
|
9
|
+
| VPC | `--vpc.` | `--vpc.name=my-vpc --vpc.cidr=192.168.0.0/16` |
|
|
10
|
+
| Subnet | `--subnet.` | `--subnet.name=web --subnet.vpc_id=<id> --subnet.cidr=192.168.1.0/24` |
|
|
11
|
+
| Security Group | `--security_group.` | `--security_group.name=sg-web` |
|
|
12
|
+
| SG Rule | `--security_group_rule.` | `--security_group_rule.direction=ingress` |
|
|
13
|
+
|
|
14
|
+
## EIP Management
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Create EIP (pay-per-use)
|
|
18
|
+
hcloud EIP CreatePublicip --publicip.type=<type> \
|
|
19
|
+
--bandwidth.size=<size> --bandwidth.share_type=<share-type> --bandwidth.name=<name>
|
|
20
|
+
|
|
21
|
+
# Bind to ECS (PORT type, not ECS)
|
|
22
|
+
hcloud EIP AssociatePublicips --publicip_id=<id> \
|
|
23
|
+
--publicip.associate_instance_id=<port-id> --publicip.associate_instance_type=PORT
|
|
24
|
+
|
|
25
|
+
# Unbind
|
|
26
|
+
hcloud EIP UnbindPublicIp --publicip_id=<id>
|
|
27
|
+
|
|
28
|
+
# List
|
|
29
|
+
hcloud EIP ListPublicips
|
|
30
|
+
|
|
31
|
+
# Delete (unbind first)
|
|
32
|
+
hcloud EIP DeletePublicip --publicip_id=<id>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
> EIP bills even when not bound. Release unused EIPs.
|
|
36
|
+
|
|
37
|
+
## Security Group Quick Reference
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Create SG (no vpc_id needed)
|
|
41
|
+
hcloud VPC CreateSecurityGroup --security_group.name=<name>
|
|
42
|
+
|
|
43
|
+
# Add SSH rule
|
|
44
|
+
hcloud VPC CreateSecurityGroupRule \
|
|
45
|
+
--security_group_rule.security_group_id=<sg-id> \
|
|
46
|
+
--security_group_rule.direction=<direction> \
|
|
47
|
+
--security_group_rule.protocol=<protocol> \
|
|
48
|
+
--security_group_rule.multiport=<port> \
|
|
49
|
+
--security_group_rule.remote_ip_prefix=<cidr>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
> SG is stateful — return traffic auto-allowed. Network ACL is stateless — need both directions.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Security Group Rules
|
|
2
|
+
|
|
3
|
+
## Security Group is NOT bound to VPC
|
|
4
|
+
|
|
5
|
+
VPC v3 API `CreateSecurityGroup` does NOT accept a `vpc_id` parameter. Security groups are region-level resources, not VPC-bound. They work across any VPC in the same region.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# CORRECT — no vpc_id needed
|
|
9
|
+
hcloud VPC CreateSecurityGroup --security_group.name=<name>
|
|
10
|
+
|
|
11
|
+
# WRONG
|
|
12
|
+
hcloud VPC CreateSecurityGroup --security_group.vpc_id=<vpc-id>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## KooCLI 7.x Nested Parameter Format
|
|
16
|
+
|
|
17
|
+
Security group params use `--security_group.` prefix. Rules use `--security_group_rule.` prefix.
|
|
18
|
+
|
|
19
|
+
## Create Security Group Rule
|
|
20
|
+
|
|
21
|
+
Complete example with nested prefix:
|
|
22
|
+
```bash
|
|
23
|
+
hcloud VPC CreateSecurityGroupRule \
|
|
24
|
+
--security_group_rule.security_group_id=<sg-id> \
|
|
25
|
+
--security_group_rule.direction=<direction> \
|
|
26
|
+
--security_group_rule.protocol=<protocol> \
|
|
27
|
+
--security_group_rule.multiport=<port> \
|
|
28
|
+
--security_group_rule.remote_ip_prefix=<cidr>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> Always run `hcloud VPC CreateSecurityGroupRule --help` to verify param names.
|
|
32
|
+
|
|
33
|
+
## Stateful vs Stateless
|
|
34
|
+
|
|
35
|
+
| Feature | Security Group | Network ACL |
|
|
36
|
+
|---------|---------------|-------------|
|
|
37
|
+
| Stateful? | Yes — return traffic auto-allowed | No — must allow both directions |
|
|
38
|
+
| Applied to | ECS instance NIC | Subnet |
|
|
39
|
+
| Rules | Allow only | Allow and Deny |
|
|
40
|
+
| Default | Deny all inbound, allow all outbound | Allow all |
|
|
41
|
+
|
|
42
|
+
## Common Rules Reference
|
|
43
|
+
|
|
44
|
+
| Direction | Protocol | Port | Source | Purpose |
|
|
45
|
+
|-----------|----------|------|--------|---------|
|
|
46
|
+
| Ingress | TCP | 22 | <office-ip>/32 | SSH |
|
|
47
|
+
| Ingress | TCP | 80 | 0.0.0.0/0 | HTTP |
|
|
48
|
+
| Ingress | TCP | 443 | 0.0.0.0/0 | HTTPS |
|
|
49
|
+
| Ingress | TCP | 3306 | <sg-app-id> | MySQL from app |
|
|
50
|
+
| Ingress | TCP | 6379 | <sg-app-id> | Redis from app |
|
|
51
|
+
| Egress | ALL | ALL | 0.0.0.0/0 | Outbound default |
|
|
52
|
+
|
|
53
|
+
## Common Errors
|
|
54
|
+
|
|
55
|
+
| Error | Root Cause -> Fix |
|
|
56
|
+
|-------|-------------------|
|
|
57
|
+
| Cannot SSH | Default SG denies all inbound. Add port 22 rule |
|
|
58
|
+
| Rule not effective | SG assigned to wrong instance. Verify NIC attachment |
|
|
59
|
+
| `[USE_ERROR]不正确的参数:vpc_id` | Security groups don't need vpc_id. Remove it |
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# VPC Subnet Guide
|
|
2
|
+
|
|
3
|
+
## Prerequisite: VPC CIDR is Immutable
|
|
4
|
+
|
|
5
|
+
VPC CIDR block cannot be changed after creation. Plan carefully.
|
|
6
|
+
|
|
7
|
+
## KooCLI 7.x Nested Parameter Format
|
|
8
|
+
|
|
9
|
+
VPC API uses nested prefix: `--vpc.name`, `--subnet.vpc_id`, `--subnet.name`. NOT `--name` or `--vpc_id`.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# CORRECT
|
|
13
|
+
hcloud VPC CreateVpc --vpc.name=<name> --vpc.cidr=192.168.0.0/16
|
|
14
|
+
|
|
15
|
+
hcloud VPC CreateSubnet \
|
|
16
|
+
--subnet.name=<name> \
|
|
17
|
+
--subnet.vpc_id=<vpc-id> \
|
|
18
|
+
--subnet.cidr=192.168.1.0/24 \
|
|
19
|
+
--subnet.gateway_ip=192.168.1.1 \
|
|
20
|
+
--subnet.availability_zone=<az>
|
|
21
|
+
|
|
22
|
+
# WRONG — will fail with [USE_ERROR]
|
|
23
|
+
hcloud VPC CreateVpc --name=xxx
|
|
24
|
+
hcloud VPC CreateSubnet --vpc_id=xxx
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Key Constraints
|
|
28
|
+
|
|
29
|
+
| Constraint | Detail |
|
|
30
|
+
|-----------|--------|
|
|
31
|
+
| Subnet bound to single AZ | Cross-AZ needs multiple subnets. AZ code format: `cn-south-1a` |
|
|
32
|
+
| CIDR must not overlap | Cannot overlap with other subnets in same VPC |
|
|
33
|
+
| Gateway IP auto-assigned | Default is first IP in CIDR range (e.g., 192.168.1.1 for /24) |
|
|
34
|
+
| 5 IPs reserved per subnet | First 4 + broadcast reserved by platform |
|
|
35
|
+
|
|
36
|
+
## Common Errors
|
|
37
|
+
|
|
38
|
+
| Error | Root Cause -> Fix |
|
|
39
|
+
|-------|-------------------|
|
|
40
|
+
| `[USE_ERROR]不正确的参数:name` | Missing nested prefix. Use `--vpc.name=` or `--subnet.name=` |
|
|
41
|
+
| CIDR overlap | Subnet CIDR must be within VPC CIDR and not overlap others |
|
|
42
|
+
| AZ not found | Use `hcloud ECS NovaListAvailabilityZones --cli-region=<r>` to list valid AZ codes |
|
|
43
|
+
|
|
44
|
+
## CIDR Planning Reference
|
|
45
|
+
|
|
46
|
+
| Environment | VPC CIDR | Subnet CIDR |
|
|
47
|
+
|------------|----------|-------------|
|
|
48
|
+
| Dev | 192.168.0.0/16 | 192.168.1.0/24 |
|
|
49
|
+
| Staging | 10.0.0.0/16 | 10.0.1.0/24 |
|
|
50
|
+
| Production | 172.16.0.0/16 | 172.16.1.0/24 (public) + 172.16.2.0/24 (private) |
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huawei-waf-aad
|
|
3
|
+
description: "Use when configuring Web Application Firewall (WAF) policies/rules, or Anti-DDoS (AAD) protection on Huawei Cloud. Triggers: WAF, AAD, firewall, DDoS, web protection, IP blacklist, rate limiting, CC attack. NOT for: security groups (use huawei-vpc), CTS audit (use huawei-cts)."
|
|
4
|
+
version: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Huawei Cloud WAF / AAD
|
|
8
|
+
|
|
9
|
+
**STOP - Do not answer from general knowledge.** Follow the procedure below.
|
|
10
|
+
|
|
11
|
+
Always run `hcloud WAF <Operation> --help` before constructing commands to discover exact parameter names and requirements. For AAD operations, use `hcloud AAD --help`.
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
Domain expertise for WAF and Anti-DDoS. Covers WAF policy/rules, AAD protection, IP whitelist/blacklist, and rate limiting.
|
|
16
|
+
|
|
17
|
+
## Critical Warnings
|
|
18
|
+
|
|
19
|
+
| Trap | Why |
|
|
20
|
+
|------|-----|
|
|
21
|
+
| WAF needs CNAME redirect | DNS must point to WAF endpoint, not server IP |
|
|
22
|
+
| Premium instance required | Cloud WAF needs a dedicated/premium WAF instance |
|
|
23
|
+
| AAD Standard vs Enterprise | Standard protects single IP. Enterprise protects entire IP ranges |
|
|
24
|
+
| Rule order matters | WAF rules evaluated top-to-bottom within a policy |
|
|
25
|
+
|
|
26
|
+
## Common Workflows
|
|
27
|
+
|
|
28
|
+
### WAF
|
|
29
|
+
|
|
30
|
+
| Task | Operation |
|
|
31
|
+
|------|-----------|
|
|
32
|
+
| List WAF instances | `ListInstances --cli-region=<r> --project_id=<p>` |
|
|
33
|
+
| List policies | `ListPolicies --cli-region=<r> --project_id=<p>` |
|
|
34
|
+
| Create custom rule | `BatchCreateCustomRule --cli-region=<r> --project_id=<p>` |
|
|
35
|
+
| Create IP blacklist | `BatchCreateWhiteblackipRule --cli-region=<r> --project_id=<p>` |
|
|
36
|
+
| Create CC rule | `BatchCreateCcRule --cli-region=<r> --project_id=<p>` |
|
|
37
|
+
| Create geo rule | `BatchCreateGeoIpRule --cli-region=<r> --project_id=<p>` |
|
|
38
|
+
|
|
39
|
+
### AAD
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
hcloud AAD ListInstances --cli-region=<r> --project_id=<p>
|
|
43
|
+
hcloud AAD CreateInstance --cli-region=<r> --project_id=<p>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Troubleshooting
|
|
47
|
+
|
|
48
|
+
| Error | Fix |
|
|
49
|
+
|-------|-----|
|
|
50
|
+
| Website unreachable after WAF | Check CNAME record points to WAF endpoint |
|
|
51
|
+
| WAF blocking legitimate traffic | Check rules order, adjust false positive settings |
|
|
52
|
+
| AAD not responding | Standard AAD only protects single EIP. Check EIP binding |
|
|
53
|
+
|
|
54
|
+
## Security
|
|
55
|
+
|
|
56
|
+
- MUST use WAF for all public-facing web applications
|
|
57
|
+
- SHOULD enable AAD for DDoS protection
|
|
58
|
+
- MUST test WAF rules in report-only mode before blocking
|
|
59
|
+
|
|
60
|
+
## Cross-Skill References
|
|
61
|
+
|
|
62
|
+
- **EIP**: See `huawei-vpc` for elastic IP binding
|
|
63
|
+
- **DNS/CNAME**: Configure via your DNS provider
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huaweicloud-api-and-sdk
|
|
3
|
+
description: Huawei Cloud API and SDK guidance for application development. Use when writing code that calls Huawei Cloud services, choosing SDKs, building API requests, handling project_id, endpoint, auth, pagination, retries, error codes, or request IDs.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Huawei Cloud API And SDK
|
|
7
|
+
|
|
8
|
+
**STOP - Do not answer from general knowledge.** Follow the procedure below.
|
|
9
|
+
|
|
10
|
+
Use this skill when the deliverable is application code, API integration, or precise request construction.
|
|
11
|
+
|
|
12
|
+
## Critical Warnings
|
|
13
|
+
|
|
14
|
+
| Trap | Why |
|
|
15
|
+
|------|-----|
|
|
16
|
+
| `project_id` in path for most services | Many Huawei Cloud APIs require `project_id` in the URL path. Get it from IAM or KooCLI profile |
|
|
17
|
+
| Pagination is not automatic | APIs return paginated results. Always check for `next_marker` or `page_info` to avoid partial data |
|
|
18
|
+
| AK/SK signing algorithm | Huawei Cloud uses HMAC-SHA256 signing with specific header ordering. Use SDK, don't implement manually |
|
|
19
|
+
| Endpoint varies by service and region | Always verify at https://developer.huaweicloud.com/endpoint |
|
|
20
|
+
| Error response in `body` not HTTP status | Many errors return HTTP 200 with error details in the JSON body. Check `error_code` or `error_msg` fields |
|
|
21
|
+
|
|
22
|
+
## API Workflow
|
|
23
|
+
|
|
24
|
+
1. Identify service, region, endpoint, API version, and whether `project_id` is required in the path.
|
|
25
|
+
2. Verify the exact request body and response schema from official API documentation.
|
|
26
|
+
3. Handle pagination explicitly. Do not assume a single page.
|
|
27
|
+
4. Preserve `request_id` from errors and responses for troubleshooting.
|
|
28
|
+
5. Classify operation risk before running a live call.
|
|
29
|
+
6. For write APIs, produce a dry plan and ask the user before execution.
|
|
30
|
+
|
|
31
|
+
## SDK Workflow
|
|
32
|
+
|
|
33
|
+
1. Pick the SDK that matches the user's application language and existing dependency style.
|
|
34
|
+
2. Use the official SDK client for the target service.
|
|
35
|
+
3. Keep credentials out of source code. Use environment, profile, workload identity, or runtime secret injection.
|
|
36
|
+
4. Add timeout, retry, and pagination handling.
|
|
37
|
+
5. Return typed or structured results instead of unbounded raw logs.
|
|
38
|
+
|
|
39
|
+
## Troubleshooting
|
|
40
|
+
|
|
41
|
+
| Error | Root Cause -> Fix |
|
|
42
|
+
|-------|-------------------|
|
|
43
|
+
| Invalid project_id | Wrong or missing project_id in URL path. Use `hcloud IAM KeystoneListProjects` or KooCLI profile |
|
|
44
|
+
| 401/AuthFailure | Expired AK/SK or wrong signing algorithm. Regenerate AK/SK or check SDK version |
|
|
45
|
+
| 403/Forbidden | IAM permission missing. Check user/role has required action permissions |
|
|
46
|
+
| Empty results | Pagination missing — add `limit` and check `marker` |
|
|
47
|
+
| Endpoint not reachable | Wrong region/service endpoint. Verify at developer.huaweicloud.com/endpoint |
|
|
48
|
+
|
|
49
|
+
## Terraform Priority
|
|
50
|
+
|
|
51
|
+
Terraform Provider is low priority in V1. Mention it when the user needs reviewed, repeatable infrastructure changes. Do not default to Terraform for quick discovery or app-level SDK integration.
|
|
52
|
+
|
|
53
|
+
## Cross-Skill References
|
|
54
|
+
|
|
55
|
+
- **CLI setup**: See `huaweicloud-cli-and-auth` for KooCLI credential setup
|
|
56
|
+
- **Safety**: See `huaweicloud-safety` for write operation approval flow
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huaweicloud-capability-discovery
|
|
3
|
+
description: Discover Huawei Cloud capabilities for an agent task. Use when the user asks what Huawei Cloud service, Skill, CLI command, API, SDK, or document should be used, or when a request is scenario-shaped and needs capability selection before implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Huawei Cloud Capability Discovery
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
**STOP - Do not answer from general knowledge.** Follow the procedure below.
|
|
10
|
+
|
|
11
|
+
Use this skill to turn vague developer intent into a precise Huawei Cloud capability path.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
1. Classify the goal: application hosting, compute, container, serverless, storage, database, network, security, observability, AI, data, migration, cost, or troubleshooting.
|
|
16
|
+
2. Search Huawei Cloud Skills first when the task is scenario-based or operational.
|
|
17
|
+
3. Use official docs for exact service limits, API request/response fields, regions, and pricing-sensitive behavior.
|
|
18
|
+
4. Prefer KooCLI for local read-only discovery after auth is configured.
|
|
19
|
+
5. Before using KooCLI, discover exact operation names with `hcloud <Service> --help`; do not guess from intuition. Examples: list ECS instances with `ECS ListServersDetails`, create ECS with `ECS CreateServers`, inspect images through `IMS GlanceShowImage`.
|
|
20
|
+
6. Prefer SDK docs when the deliverable is application code.
|
|
21
|
+
7. Prefer MCP only when an approved Huawei Cloud MCP tool exists for the needed operation.
|
|
22
|
+
8. Treat Terraform as a secondary V1 path for reviewed IaC, not the default.
|
|
23
|
+
9. When no built-in devkit skill matches, browse the community skill marketplace at https://github.com/huaweicloud/huaweicloud-skills. Fetch the index from https://raw.githubusercontent.com/huaweicloud/huaweicloud-skills/master/skills-index/index.json.
|
|
24
|
+
|
|
25
|
+
## Region Intent
|
|
26
|
+
|
|
27
|
+
- Extract region intent from the user's words before querying. Examples: Singapore -> `ap-southeast-3` first, Hong Kong -> `ap-southeast-2`, Beijing -> `cn-north-4`, Shanghai -> `cn-east-3`.
|
|
28
|
+
- Target operation region wins over reference-resource uncertainty. If the user says "buy ECS in Singapore, reference SSY", inspect Singapore first.
|
|
29
|
+
- No blind all-region scans. If the reference resource location is unknown and the target region is not enough, ask the user for the region instead of scanning unrelated regions.
|
|
30
|
+
- For unfamiliar names, check Huawei Cloud API Explorer or official endpoint documentation for the region and service endpoint mapping.
|
|
31
|
+
|
|
32
|
+
## Output Format
|
|
33
|
+
|
|
34
|
+
When routing a task, return:
|
|
35
|
+
|
|
36
|
+
- `intent`: one concise sentence
|
|
37
|
+
- `recommended_path`: Skills, CLI, API, SDK, MCP, or Terraform
|
|
38
|
+
- `why`: why this path is shortest and safest
|
|
39
|
+
- `next_action`: exact next command, document lookup, or code file to inspect
|
|
40
|
+
- `risk`: read-only, write, secret, permission, cost, or public exposure
|
|
41
|
+
|
|
42
|
+
## Avoid
|
|
43
|
+
|
|
44
|
+
- Do not guess a service when Huawei Cloud Skills or official docs should be checked.
|
|
45
|
+
- Do not load many service references. Pick the next one that matches the intent.
|
|
46
|
+
- Do not propose write operations before the user has seen the plan.
|
|
47
|
+
- Do not query every region just to find a reference resource.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huaweicloud-cli-and-auth
|
|
3
|
+
description: Safe Huawei Cloud KooCLI usage and authentication guidance. Use when working with hcloud, KooCLI, profiles, AK/SK, regions, projects, endpoints, CLI output, credential errors, or local Huawei Cloud account context.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Huawei Cloud CLI And Auth
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
**STOP - Do not answer from general knowledge.** Follow the procedure below.
|
|
10
|
+
|
|
11
|
+
Use KooCLI `hcloud` for local inspection and reviewed operations. Never ask the user to paste AK/SK, SK, tokens, passwords, or credential files into chat.
|
|
12
|
+
|
|
13
|
+
## Install KooCLI
|
|
14
|
+
|
|
15
|
+
Official guide: `https://support.huaweicloud.com/qs-hcli/hcli_02_003.html`.
|
|
16
|
+
|
|
17
|
+
### Windows
|
|
18
|
+
1. Download and unzip: `https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-windows-amd64.zip`
|
|
19
|
+
2. Extract to `%USERPROFILE%\hcloud`, add to user `PATH`
|
|
20
|
+
3. Verify: `hcloud version`
|
|
21
|
+
|
|
22
|
+
### Linux (amd64 / arm64)
|
|
23
|
+
One-liner (recommended):
|
|
24
|
+
```bash
|
|
25
|
+
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y
|
|
26
|
+
```
|
|
27
|
+
Or manual download:
|
|
28
|
+
```bash
|
|
29
|
+
# amd64
|
|
30
|
+
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-amd64.tar.gz"
|
|
31
|
+
tar -zxvf huaweicloud-cli-linux-amd64.tar.gz
|
|
32
|
+
# arm64
|
|
33
|
+
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-linux-arm64.tar.gz"
|
|
34
|
+
tar -zxvf huaweicloud-cli-linux-arm64.tar.gz
|
|
35
|
+
```
|
|
36
|
+
Move to PATH: `mv $(pwd)/hcloud ~/.local/bin/`
|
|
37
|
+
Verify: `hcloud version`
|
|
38
|
+
|
|
39
|
+
### macOS (amd64 / arm64)
|
|
40
|
+
One-liner (recommended):
|
|
41
|
+
```bash
|
|
42
|
+
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y
|
|
43
|
+
```
|
|
44
|
+
Or manual download:
|
|
45
|
+
```bash
|
|
46
|
+
# amd64
|
|
47
|
+
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-mac-amd64.tar.gz"
|
|
48
|
+
tar -zxvf huaweicloud-cli-mac-amd64.tar.gz
|
|
49
|
+
# arm64 (Apple Silicon)
|
|
50
|
+
curl -LO "https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/huaweicloud-cli-mac-arm64.tar.gz"
|
|
51
|
+
tar -zxvf huaweicloud-cli-mac-arm64.tar.gz
|
|
52
|
+
```
|
|
53
|
+
Move to PATH: `mv $(pwd)/hcloud /usr/local/bin/`
|
|
54
|
+
Verify: `hcloud version`
|
|
55
|
+
|
|
56
|
+
Agent processes find executables through `PATH`. If OpenCode/Codex cannot find `hcloud`, restart after updating `PATH`, or set `HCLOUD_BIN`.
|
|
57
|
+
|
|
58
|
+
## Configure Credentials Outside Chat
|
|
59
|
+
|
|
60
|
+
- Create AK/SK in the Huawei Cloud console under `My Credentials -> Access Keys`.
|
|
61
|
+
- **Interactive** (preferred): `hcloud configure init` — prompts safely for AK/SK/region.
|
|
62
|
+
- **Non-interactive** (Agent/CI environments): `hcloud configure set --cli-access-key=<AK> --cli-secret-key=<SK> --cli-region=<region>` — user must execute outside agent chat.
|
|
63
|
+
- Required concepts: Access Key ID, Secret Access Key, Region such as `ap-southeast-3`, and Project ID.
|
|
64
|
+
- Never paste AK/SK, passwords, tokens, or profile files into the agent conversation.
|
|
65
|
+
- KooCLI stores credentials in `~/.hcloud/config.json`, NOT environment variables. `HCLOUD_ACCESS_KEY` / `HCLOUD_SECRET_KEY` / `HCLOUD_REGION` env vars are NOT read by KooCLI 7.x. Always use `hcloud configure set`.
|
|
66
|
+
|
|
67
|
+
## Safe Flow
|
|
68
|
+
|
|
69
|
+
1. Check whether `hcloud` is installed.
|
|
70
|
+
2. **KooCLI first-run privacy agreement**: On a fresh KooCLI install, `hcloud` blocks with `同意并继续使用(y)/不同意并退出(N)` and fails with `[USE_ERROR]您输入的是无效字符` in non-interactive mode. Detection: check command output for these strings. Ask the user: "KooCLI needs to accept its privacy agreement. May I accept it on your behalf?" If the user agrees, run `huaweicloud_run_readonly_command` with `args=["version"]` and `stdin="y\n"`. This accepts the agreement once, after which hcloud works normally.
|
|
71
|
+
3. Ask the user to configure credentials outside the agent conversation when setup is needed.
|
|
72
|
+
4. Inspect profile and region only through redacted tooling.
|
|
73
|
+
4. Discover exact operation names with `hcloud <Service> --help` before guessing. Example: ECS instance listing is commonly `ECS ListServersDetails`; ECS creation is commonly `ECS CreateServers`; image lookup may be under `IMS GlanceShowImage`.
|
|
74
|
+
5. Use `--cli-output=json` for machine-readable responses when supported.
|
|
75
|
+
6. For resource operations, include `--cli-region`, `--cli-profile`, and service-specific project information when required.
|
|
76
|
+
7. Classify every command before running it:
|
|
77
|
+
- Read-only: `List*`, `Show*`, `Get*`, `Describe*`.
|
|
78
|
+
- Write: `Create*`, `Delete*`, `Update*`, `Resize*`, `Start*`, `Stop*`, `Authorize*`, and similar.
|
|
79
|
+
- Secret: any operation returning secret string, binary secret, token, or password.
|
|
80
|
+
8. For write operations, show the exact command and ask for explicit approval.
|
|
81
|
+
|
|
82
|
+
## KooCLI Syntax Notes
|
|
83
|
+
|
|
84
|
+
- Prefer `--param=value`; KooCLI 7.x may reject some space-separated parameter forms.
|
|
85
|
+
- Array-style parameters use 1-based indexes, for example `--server.nics.1.subnet_id=<subnet-id>`, not `.0`.
|
|
86
|
+
- For ECS creation, first inspect help: `hcloud ECS CreateServers --help`.
|
|
87
|
+
- Minimal create shape to refine after help lookup:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
hcloud ECS CreateServers --cli-region=<region> --server.name=<name> --server.flavorRef=<flavor-id> --server.imageRef=<image-id> --server.nics.1.subnet_id=<subnet-id> --server.root_volume.volumetype=<type>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
If a command needs an `adminPass` or other password field, do not leave plaintext secrets in shell history. Prefer local-only input or runtime injection.
|
|
94
|
+
|
|
95
|
+
## Output Formatting
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# JSON format (recommended for Agent)
|
|
99
|
+
hcloud <Service> <Op> --cli-output=json
|
|
100
|
+
|
|
101
|
+
# Table format (manual viewing)
|
|
102
|
+
hcloud <Service> <Op> --cli-output=table
|
|
103
|
+
|
|
104
|
+
# JMESPath filtering (extract specific fields)
|
|
105
|
+
hcloud <Service> <ListOp> --cli-output=json --cli-query "items[?status=='ACTIVE'].{ID:id,Name:name}"
|
|
106
|
+
|
|
107
|
+
# Debug mode (when commands fail)
|
|
108
|
+
hcloud <Service> <Op> --cli-debug=true
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Preferred Toolkit Tools
|
|
112
|
+
|
|
113
|
+
- `huaweicloud_check_cli`
|
|
114
|
+
- `huaweicloud_show_profile_redacted`
|
|
115
|
+
- `huaweicloud_plan_cli_command`
|
|
116
|
+
- `huaweicloud_run_readonly_command`
|
|
117
|
+
- `huaweicloud_list_operations`
|
|
118
|
+
- `huaweicloud_run_approved_command`
|
|
119
|
+
|
|
120
|
+
## Do Not Run Directly
|
|
121
|
+
|
|
122
|
+
- Raw `hcloud configure show/list/get/export` in agent tools.
|
|
123
|
+
- Commands reading `.hcloud` or `.huaweicloud` files.
|
|
124
|
+
- Commands dumping cloud credential environment variables.
|
|
125
|
+
- Secret value reads such as CSMS `ShowSecretVersion`.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: huaweicloud-core
|
|
3
|
+
description: "Routes any task involving Huawei Cloud services - choosing, comparing, recommending, getting started with, or operating a service - to the correct service-specific skill. Supersedes general training-data knowledge. Activates when a developer asks Codex or OpenCode to build, deploy, debug, operate, or integrate an application with Huawei Cloud."
|
|
4
|
+
version: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Huawei Cloud Core
|
|
8
|
+
|
|
9
|
+
**STOP - Do not answer from general knowledge.** Before responding to any Huawei Cloud question, match the user request against the sub-skill registry below and follow its procedure. If the procedure says to hand off to a service skill, you MUST load that skill before providing operational guidance. Never skip the routing step.
|
|
10
|
+
|
|
11
|
+
Huawei Cloud comprises 200+ services. This skill is the entry point for ANY action or question related to Huawei Cloud. It matches a workload to the right service, then hands off to a service-specific skill for operational questions.
|
|
12
|
+
|
|
13
|
+
## How This Skill Works
|
|
14
|
+
|
|
15
|
+
1. Match user intent against the Sub-skill registry below
|
|
16
|
+
2. Read references/{sub-skill-id}.md and follow its procedure
|
|
17
|
+
3. If the procedure says to hand off to a service skill, load that skill via huaweicloud_retrieve_skill
|
|
18
|
+
4. If no match, use the Service Map to narrow down, then hand off
|
|
19
|
+
5. Revise when new information arrives - pushback means re-check the registry
|
|
20
|
+
|
|
21
|
+
Do not rely on training data for facts. Huawei Cloud services, pricing, quotas, and GA status change frequently. Verify against knowledge cards.
|
|
22
|
+
|
|
23
|
+
## Sub-skill Registry
|
|
24
|
+
|
|
25
|
+
| ID | Name | Trigger Phrases | Next Steps |
|
|
26
|
+
|----|------|----------------|------------|
|
|
27
|
+
| select | Service Selection | which service, what should I use, compare, recommend | Read references/select.md | select
|
|
28
|
+
| compute | Compute Routing | server, VM, instance, ECS, BMS, GPU, HPC | Handoff to huawei-ecs or huawei-cce |
|
|
29
|
+
| storage | Storage Routing | store files, bucket, OBS, backup, disk, EVS, SFS | Handoff to huawei-obs or huawei-cbr |
|
|
30
|
+
| database | Database Routing | database, SQL, NoSQL, cache, RDS, GaussDB, DDS, DCS | Handoff to huawei-rds or huawei-gaussdb |
|
|
31
|
+
| network | Network Routing | VPC, subnet, security group, EIP, NAT, VPN | Handoff to huawei-vpc |
|
|
32
|
+
| serverless | Serverless Routing | function, Lambda, serverless, FunctionGraph, API gateway | Handoff to huawei-functiongraph or huawei-apig |
|
|
33
|
+
| ai | AI/ML Routing | AI, model, LLM, Pangu, training, inference, RAG | Handoff to huawei-modelarts |
|
|
34
|
+
| messaging | Messaging Routing | message queue, notification, Kafka, RabbitMQ, event, SMN | Handoff to huawei-smn-dms |
|
|
35
|
+
| security | Security Routing | secret, credential, encrypt, KMS, WAF, firewall, DDoS | Handoff to huawei-dew or huawei-waf-aad |
|
|
36
|
+
| observability | Observability Routing | monitor, alarm, log, audit, trace, Cloud Eye | Handoff to huawei-cloud-eye or huawei-cts |
|
|
37
|
+
| billing | Billing Routing | cost, bill, budget, spending, invoice | Handoff to huawei-billing |
|
|
38
|
+
| iam | IAM Routing | permission, policy, role, user, group, AK/SK | Handoff to huawei-iam |
|
|
39
|
+
| deployment | Deployment Routing | deploy, CI/CD, pipeline, release | Handoff to huawei-deployment |
|
|
40
|
+
| cli | CLI and Auth Routing | install hcloud, configure KooCLI, AK/SK setup | Handoff to huaweicloud-cli-and-auth |
|
|
41
|
+
| safety | Safety Routing | is this safe, approve command, risk review | Handoff to huaweicloud-safety |
|
|
42
|
+
| troubleshoot | Troubleshooting Routing | error, bug, failed, AccessDenied, quota | Handoff to huaweicloud-troubleshooting |
|
|
43
|
+
| api-sdk | API/SDK Routing | API call, SDK, REST, integration, code example | Handoff to huaweicloud-api-and-sdk |
|
|
44
|
+
| report-issue | Issue Reporting | wrong service, you picked wrong, incorrect | Read references/report-issue.md |
|
|
45
|
+
|
|
46
|
+
## Service Map
|
|
47
|
+
|
|
48
|
+
| Workload | Primary Service | Skill |
|
|
49
|
+
|----------|----------------|-------|
|
|
50
|
+
| Web application hosting | ECS | huawei-ecs |
|
|
51
|
+
| Containerized microservices | CCE | huawei-cce |
|
|
52
|
+
| Static file storage / CDN | OBS | huawei-obs |
|
|
53
|
+
| Relational database (MySQL/PG) | RDS | huawei-rds |
|
|
54
|
+
| Distributed SQL database | GaussDB | huawei-gaussdb |
|
|
55
|
+
| Document database (MongoDB API) | DDS | huawei-dds-dcs |
|
|
56
|
+
| In-memory cache | DCS (Redis) | huawei-dds-dcs |
|
|
57
|
+
| Serverless functions | FunctionGraph | huawei-functiongraph |
|
|
58
|
+
| API management | APIG | huawei-apig |
|
|
59
|
+
| AI model training/inference | ModelArts | huawei-modelarts |
|
|
60
|
+
| Message queuing | DMS (Kafka/RabbitMQ) | huawei-smn-dms |
|
|
61
|
+
| Push notifications | SMN | huawei-smn-dms |
|
|
62
|
+
| Secret management | DEW (CSMS) | huawei-dew |
|
|
63
|
+
| Key management | DEW (KMS) | huawei-dew |
|
|
64
|
+
| DDoS protection | AAD | huawei-waf-aad |
|
|
65
|
+
| Web firewall | WAF | huawei-waf-aad |
|
|
66
|
+
| Monitoring dashboards | Cloud Eye (CES) | huawei-cloud-eye |
|
|
67
|
+
| Audit trails | CTS | huawei-cts |
|
|
68
|
+
| Backup / disaster recovery | CBR | huawei-cbr |
|
|
69
|
+
| CI/CD pipeline | CloudDeploy | huawei-deployment |
|
|
70
|
+
| Getting started | Account setup | huaweicloud-cli-and-auth |
|
|
71
|
+
|
|
72
|
+
## Capability Sources
|
|
73
|
+
|
|
74
|
+
- Huawei Cloud Skills: scenario workflows and recipes (check first)
|
|
75
|
+
- External Marketplace: huaweicloud-capability-discovery for community skill search when no built-in skill matches
|
|
76
|
+
- KooCLI hcloud: local inspection and reviewed command execution
|
|
77
|
+
- API documentation: exact endpoint, request body, pagination, project_id
|
|
78
|
+
- SDK documentation: application integration
|
|
79
|
+
- MCP tools: huaweicloud_search_docs, huaweicloud_retrieve_skill, huaweicloud_list_regions
|
|
80
|
+
- Terraform Provider: lower-priority V1 path for reviewed IaC
|
|
81
|
+
|
|
82
|
+
## Tool Boundary
|
|
83
|
+
|
|
84
|
+
- Use huaweicloud_search_docs to discover skills covering a topic
|
|
85
|
+
- Use huaweicloud_retrieve_skill to load a full SKILL.md after routing
|
|
86
|
+
- If no built-in skill matches, consult huaweicloud-capability-discovery for external marketplace options
|
|
87
|
+
- Use huaweicloud_list_regions before creating regional resources
|
|
88
|
+
- Use huaweicloud_get_regional_availability when unsure about service-region pairs
|
|
89
|
+
- Use huaweicloud_run_readonly_command for read-only inspection
|
|
90
|
+
- Use huaweicloud_run_approved_command only after exact-command approval
|
|
91
|
+
|
|
92
|
+
## Quality Bar
|
|
93
|
+
|
|
94
|
+
Prefer short, precise instructions with commands the developer can run. Give source names and exact fields to verify. Avoid inventing service behavior. When uncertain, route to Huawei Cloud Skills or official API/SDK documentation.
|