Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
huaweicloud avatar

Huawei Cloud Swr Enterprise Instance

  • 66 installs
  • 19 repo stars
  • Updated July 31, 2026
  • huaweicloud/huaweicloud-skills

Manage Huawei Cloud SWR enterprise container-registry instances via hcloud CLI: namespaces, registries, repositories, artifacts, credentials, endpoints, and domains.

About

Provides lifecycle management for Huawei Cloud SWR enterprise container-registry instances through hcloud CLI, covering namespaces, sync registries, repositories, artifacts, credentials, endpoints, and custom domains. A developer uses it to run isolated enterprise registries with security scanning and replication.

  • Full instance lifecycle: namespaces, repos, artifacts, domains
  • Security scanning, replication, and custom-domain support

Huawei Cloud Swr Enterprise Instance by the numbers

  • 66 all-time installs (skills.sh)
  • +4 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #670 of 1,042 Cloud & Infrastructure skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-swr-enterprise-instance

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs66
repo stars19
Last updatedJuly 31, 2026
Repositoryhuaweicloud/huaweicloud-skills

What it does

Manage Huawei Cloud SWR enterprise container-registry instances via hcloud CLI: namespaces, registries, repositories, artifacts, credentials, endpoints, and domains.

Files

SKILL.mdMarkdownGitHub ↗

Huawei Cloud SWR Enterprise Instance Management

Overview

This skill provides lifecycle management capabilities for Huawei Cloud SWR (Software Repository for Container) enterprise instances using the hcloud CLI. Enterprise instances provide dedicated, isolated container registry environments with advanced features like security scanning, replication policies, and custom domain support.

Architecture: hcloud CLI → SWR Service API → Instance/Namespace/Registry/Repository/Artifact/Credential/Endpoint/Domain resources

Related Skills:

  • huawei-cloud-swr-image-management - Image lifecycle management (basic SWR namespaces, repos, tags, auth, quotas)
  • huawei-cloud-swr-image-governance - Image governance (permissions, retention, sharing, tags, immutable rules)
  • huawei-cloud-swr-image-automation - Image automation ops (sync, triggers, domains)
  • Create and manage SWR enterprise instances
  • Manage instance namespaces with security scanning and vulnerability blocking
  • Configure instance registries for cross-instance image sync
  • Query and manage instance repositories and artifacts
  • Obtain instance access credentials (long-term and temporary)
  • Configure instance network access (internal VPC endpoints, public access with whitelist)
  • Manage custom domains for instance access
  • Monitor instance statistics and job status

Typical Use Cases:

  • "Create an SWR enterprise instance for my organization"
  • "List all enterprise instances in my project"
  • "Create a namespace with auto-scan and vulnerability blocking"
  • "Configure a registry for syncing images to another instance"
  • "List repositories and artifacts in my instance"
  • "Get docker login credentials for my instance"
  • "Add a VPC internal endpoint for my instance"
  • "Enable public access with IP whitelist"
  • "Add a custom domain to my instance"
  • "Check instance statistics and resource usage"

Prerequisites

1. hcloud CLI Requirements (MANDATORY)

  • hcloud CLI installed (version >= 7.2.2)
  • Run hcloud version to verify installation
  • First-time usage: printf "y\n" | hcloud version to accept privacy statement

2. Credential Configuration

hcloud CLI supports two credential modes. See references/credential-configuration.md for full details.

Quick setup (choose one):

# Mode A — Long-term AK/SK
export HUAWEI_CLOUD_AK=<your-ak>
export HUAWEI_CLOUD_SK=<your-sk>
export HUAWEI_CLOUD_REGION=cn-north-4

# Mode B — Temporary AK/SK + SecurityToken
export HUAWEI_CLOUD_AK=<your-temp-ak>
export HUAWEI_CLOUD_SK=<your-temp-sk>
export HUAWEI_CLOUD_SECURITY_TOKEN=<your-security-token>
export HUAWEI_CLOUD_REGION=cn-north-4
  • Security rules: Never expose AK/SK/SecurityToken values. Use hcloud configure list to check presence only.

3. IAM Permission Requirements

API ActionPermissionPurpose
swr:instance:createCreate instanceCreate enterprise registry instances
swr:instance:listList instancesQuery all enterprise instances
swr:instance:getGet instanceView instance details
swr:instance:deleteDelete instanceRemove enterprise instances (irreversible)
swr:instance:updateUpdate instanceModify instance configuration
swr:instanceNamespace:createCreate instance namespaceCreate namespaces in instance
swr:instanceNamespace:listList instance namespacesQuery instance namespaces
swr:instanceNamespace:getGet instance namespaceView namespace details
swr:instanceNamespace:updateUpdate instance namespaceModify namespace settings
swr:instanceNamespace:deleteDelete instance namespaceRemove namespaces
swr:instanceRegistry:createCreate instance registryConfigure sync target registries
swr:instanceRegistry:listList instance registriesQuery sync target registries
swr:instanceRegistry:getGet instance registryView registry details
swr:instanceRegistry:updateUpdate instance registryModify registry settings
swr:instanceRegistry:deleteDelete instance registryRemove sync target registries
swr:instanceRepository:listList instance reposQuery repositories
swr:instanceRepository:getGet instance repoView repository details
swr:instanceRepository:deleteDelete instance repoRemove repositories
swr:instanceRepository:updateUpdate instance repoModify repository settings
swr:instanceArtifact:listList instance artifactsQuery image versions/artifacts
swr:instanceArtifact:getGet instance artifactView artifact details
swr:instanceArtifact:deleteDelete instance artifactRemove image versions
swr:instanceArtifact:scanScan instance artifactTrigger vulnerability scanning
swr:instanceCredential:createCreate instance credentialObtain access credentials
swr:instanceCredential:listList instance credentialsQuery long-term credentials
swr:instanceCredential:updateUpdate instance credentialEnable/disable long-term credentials
swr:instanceCredential:deleteDelete instance credentialRemove long-term credentials
swr:instanceEndpoint:createCreate instance endpointConfigure VPC internal endpoints
swr:instanceEndpoint:listList instance endpointsQuery network access endpoints
swr:instanceEndpoint:getGet instance endpointView endpoint details
swr:instanceEndpoint:deleteDelete instance endpointRemove internal endpoints
swr:instanceEndpoint:updateUpdate instance endpointConfigure public access whitelist
swr:instanceDomain:addAdd domain nameAdd custom domain
swr:instanceDomain:listList domain namesQuery all domains
swr:instanceDomain:getGet domain overviewView domain details
swr:instanceDomain:deleteDelete domain nameRemove custom domain
swr:instanceDomain:updateUpdate domain nameUpdate domain certificate
swr:instanceJob:listList instance jobsQuery async job status
swr:instanceJob:getGet instance jobView job details
swr:instanceJob:deleteDelete instance jobRemove job records
swr:instanceStatistic:getGet instance statisticsView instance resource statistics

See IAM Permission Policies for complete policy JSON.

Permission Failure Handling:

1. When any command fails due to permission errors, read references/iam-policies.md 2. Display the required permission list and policy JSON to the user 3. Guide the user to create a custom policy in the IAM console and grant authorization 4. Pause execution and wait for user confirmation that permissions have been granted

Core Commands

1. Instance Lifecycle

See Task: Instance Lifecycle for detailed workflows.

# Create an enterprise instance
hcloud SWR CreateInstance --name=my-instance --spec=swr.ee.professional --charge_mode=postPaid --vpc_id=<vpc-id> --subnet_id=<subnet-id> --enterprise_project_id=0 --cli-region=cn-north-4

# List all instances
hcloud SWR ListInstance --cli-region=cn-north-4

# List instances with status filter
hcloud SWR ListInstance --status=Running --cli-region=cn-north-4

# Show instance details
hcloud SWR ShowInstance --instance_id=<instance-id> --cli-region=cn-north-4

# View instance configuration
hcloud SWR ShowInstanceConfiguration --instance_id=<instance-id> --cli-region=cn-north-4

# Update instance configuration (anonymous access)
hcloud SWR UpdateInstanceConfiguration --instance_id=<instance-id> --anonymous_access=false --cli-region=cn-north-4

# Delete instance (CAUTION: removes all data permanently)
hcloud SWR DeleteInstance --instance_id=<instance-id> --cli-region=cn-north-4

Instance Naming Rules:

  • Start with lowercase letter
  • Followed by lowercase letters, digits, or hyphens (-)
  • No consecutive hyphens
  • Cannot end with hyphen
  • Length: 3-48 characters

Instance Spec Options: swr.ee.basic (basic edition), swr.ee.professional (professional edition)

Instance Status Values: Initial, Creating, Running, Unavailable

2. Instance Namespaces

See Task: Instance Namespaces for detailed workflows.

# Create a namespace with auto-scan and vulnerability blocking
hcloud SWR CreateInstanceNamespace --instance_id=<instance-id> --namespace_name=group-dev --metadata.public=false --metadata.auto_scan=true --metadata.prevent_vul=true --metadata.severity=high --cli-region=cn-north-4

# List namespaces
hcloud SWR ListInstanceNamespaces --instance_id=<instance-id> --cli-region=cn-north-4

# List namespaces with filter
hcloud SWR ListInstanceNamespaces --instance_id=<instance-id> --public=false --limit=20 --offset=0 --cli-region=cn-north-4

# Show namespace details
hcloud SWR ShowInstanceNamespace --instance_id=<instance-id> --namespace_name=group-dev --cli-region=cn-north-4

# Update namespace (change visibility, scan settings)
hcloud SWR UpdateInstanceNamespace --instance_id=<instance-id> --namespace_name=group-dev --metadata.public=true --metadata.prevent_vul=false --cli-region=cn-north-4

# Delete namespace (CAUTION: removes all repositories under it)
hcloud SWR DeleteInstanceNamespace --instance_id=<instance-id> --namespace_name=group-dev --cli-region=cn-north-4

Namespace Naming Rules:

  • Start with lowercase letter or digit
  • Followed by lowercase letters, digits, dots, underscores, or hyphens
  • Dots, underscores, hyphens cannot be directly connected
  • End with lowercase letter or digit
  • Length: 1-64 characters

Vulnerability Severity Levels: none, low, medium, high, critical

3. Instance Registries (Sync Targets)

See Task: Instance Registries for detailed workflows.

# Create a registry (sync target for another SWR enterprise instance)
hcloud SWR CreateInstanceRegistry --instance_id=<instance-id> --name=target-instance --type=swr-pro-internal --url=<target-url> --credential.type=basic --credential.access_key=<ak> --credential.access_secret=<sk> --insecure=false --instance_id=<target-instance-id> --project_id=<target-project-id> --region_id=cn-east-3 --cli-region=cn-north-4

# Create a registry for open-source Harbor
hcloud SWR CreateInstanceRegistry --instance_id=<instance-id> --name=harbor-target --type=swr-pro --url=https://harbor.example.com --credential.type=basic --credential.access_key=<username> --credential.access_secret=<password> --insecure=false --cli-region=cn-north-4

# List registries
hcloud SWR ListInstanceRegistries --instance_id=<instance-id> --cli-region=cn-north-4

# Show registry details
hcloud SWR ShowInstanceRegistry --instance_id=<instance-id> --registry_id=<registry-id> --cli-region=cn-north-4

# Update registry
hcloud SWR UpdateInstanceRegistry --instance_id=<instance-id> --registry_id=<registry-id> --name=new-name --url=<new-url> --credential.type=basic --credential.access_key=<new-ak> --credential.access_secret=<new-sk> --insecure=false --type=swr-pro --cli-region=cn-north-4

# Delete registry
hcloud SWR DeleteInstanceRegistry --instance_id=<instance-id> --registry_id=<registry-id> --cli-region=cn-north-4

Registry Types: swr-pro (open-source Harbor), swr-pro-internal (another SWR enterprise instance), huawei-SWR (basic SWR)

4. Instance Repositories

See Task: Instance Registries for repository section.

# List repositories in instance
hcloud SWR ListInstanceRepositories --instance_id=<instance-id> --cli-region=cn-north-4

# List repositories with filter
hcloud SWR ListInstanceRepositories --instance_id=<instance-id> --namespace_id=<ns-id> --limit=20 --offset=0 --order_column=updated_at --order_type=desc --cli-region=cn-north-4

# Show repository details
hcloud SWR ShowInstanceRepository --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --cli-region=cn-north-4

# Update repository description
hcloud SWR UpdateInstanceRepository --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --description="Updated description" --cli-region=cn-north-4

# Delete repository (CAUTION: removes all artifacts)
hcloud SWR DeleteInstanceRepository --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --cli-region=cn-north-4

5. Instance Artifacts (Image Versions)

See Task: Instance Artifacts for detailed workflows.

# List artifacts in a repository
hcloud SWR ListInstanceArtifacts --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --cli-region=cn-north-4

# List artifacts with filter
hcloud SWR ListInstanceArtifacts --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --type=IMAGE --limit=20 --offset=0 --cli-region=cn-north-4

# Show artifact details
hcloud SWR ShowInstanceArtifact --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --cli-region=cn-north-4

# Show artifact with scan overview
hcloud SWR ShowInstanceArtifact --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --with_scan_overview=true --cli-region=cn-north-4

# Get artifact build history
hcloud SWR ShowInstanceArtifactAddition --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --addition=build_history --cli-region=cn-north-4

# List artifact vulnerabilities
hcloud SWR ListInstanceArtifactVulnerabilities --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --cli-region=cn-north-4

# Start manual vulnerability scan
hcloud SWR StartManualScanning --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --cli-region=cn-north-4

# Delete artifact (CAUTION: removes the image version permanently)
hcloud SWR DeleteInstanceArtifact --instance_id=<instance-id> --namespace_name=group-dev --repository_name=my-app --reference=<digest> --cli-region=cn-north-4

Artifact Types: IMAGE (container image), CHART (Helm chart)

6. Instance Credentials

See Task: Instance Credentials for detailed workflows.

# Create a long-term access credential
hcloud SWR CreateInstanceLtCredential --instance_id=<instance-id> --name=my-credential --cli-region=cn-north-4

# Create a temporary access credential
hcloud SWR CreateInstanceTempCredential --instance_id=<instance-id> --cli-region=cn-north-4

# List long-term credentials
hcloud SWR ListInstanceLtCredentials --instance_id=<instance-id> --cli-region=cn-north-4

# Enable/disable a long-term credential
hcloud SWR UpdateInstanceLtCredential --instance_id=<instance-id> --credential_id=<cred-id> --enable=false --cli-region=cn-north-4

# Delete a long-term credential
hcloud SWR DeleteInstanceLtCredential --instance_id=<instance-id> --credential_id=<cred-id> --cli-region=cn-north-4

Credential Naming Rules (same as namespace): lowercase/digit start, 1-64 chars

7. Instance Endpoints (Network Access)

See Task: Instance Endpoints for detailed workflows.

# Create internal VPC endpoint
hcloud SWR CreateInstanceInternalEndpoint --instance_id=<instance-id> --vpc_id=<vpc-id> --subnet_id=<subnet-id> --project_id=<vpc-project-id> --cli-region=cn-north-4

# List internal endpoints
hcloud SWR ListInstanceInternalEndpoints --instance_id=<instance-id> --cli-region=cn-north-4

# Show internal endpoint details
hcloud SWR ShowInstanceInternalEndpoint --instance_id=<instance-id> --internal_endpoints_id=<endpoint-id> --cli-region=cn-north-4

# Delete internal endpoint
hcloud SWR DeleteInstanceInternalEndpoint --instance_id=<instance-id> --internal_endpoints_id=<endpoint-id> --cli-region=cn-north-4

# Enable public access
hcloud SWR CreateInstanceEndpointPolicy --instance_id=<instance-id> --enable=true --cli-region=cn-north-4

# Disable public access
hcloud SWR CreateInstanceEndpointPolicy --instance_id=<instance-id> --enable=false --cli-region=cn-north-4

# View public access status and whitelist
hcloud SWR ShowInstanceEndpointPolicy --instance_id=<instance-id> --cli-region=cn-north-4

# Update public access whitelist (full replacement)
hcloud SWR UpdateInstanceEndpointPolicy --instance_id=<instance-id> --ip_list.1.ip=10.0.0.0/8 --ip_list.1.description="Internal network" --ip_list.2.ip=192.168.0.0/16 --ip_list.2.description="VPN network" --cli-region=cn-north-4

8. Instance Domains

See Task: Instance Domains for detailed workflows.

# Add a custom domain
hcloud SWR AddDomainName --instance_id=<instance-id> --domain_name=registry.example.com --certificate_id=<scm-cert-id> --cli-region=cn-north-4

# List all domains
hcloud SWR ListDomainNames --instance_id=<instance-id> --cli-region=cn-north-4

# Get domain overview
hcloud SWR ShowDomainOverview --cli-region=cn-north-4

# Delete a domain (default domain cannot be deleted)
hcloud SWR DeleteDomainName --instance_id=<instance-id> --domainname_id=<domain-id> --cli-region=cn-north-4

# Update domain certificate
hcloud SWR UpdateDomainName --instance_id=<instance-id> --domainname_id=<domain-id> --certificate_id=<new-cert-id> --cli-region=cn-north-4

9. Instance Statistics and Jobs

# Get instance statistics
hcloud SWR ListInstanceStatistics --instance_id=<instance-id> --cli-region=cn-north-4

# List instance jobs (async operations)
hcloud SWR ListInstanceJobs --cli-region=cn-north-4

# Show job details
hcloud SWR ShowInstanceJob --job_id=<job-id> --cli-region=cn-north-4

# Delete a job record
hcloud SWR DeleteInstanceJob --job_id=<job-id> --cli-region=cn-north-4

Parameter Reference

Common Parameters

ParameterRequired/OptionalDescriptionDefault
--cli-regionRequiredHuawei Cloud region IDConfig value or HUAWEI_CLOUD_REGION
--instance_idContext-dependentEnterprise instance IDN/A
--project_idAuto-filledProject IDAuto from credentials or config

Instance Creation Parameters

ParameterRequiredDescriptionConstraints
--nameYesInstance name3-48 chars, lowercase start, no consecutive hyphens
--specYesInstance specswr.ee.basic or swr.ee.professional
--charge_modeYesBilling modepostPaid (on-demand only)
--vpc_idYesVPC IDExisting VPC
--subnet_idYesSubnet IDExisting subnet within VPC
--enterprise_project_idYesEnterprise project IDUse 0 for default project
--descriptionNoInstance descriptionFree text
--enable_intranet_accessNoCreate internal accessDefault true
--obs_encryptNoEnable OBS encryptiontrue or false
--encrypt_typeNoOBS encryption algorithmgm (国密), empty for AES-256
--obs_bucket_nameNoCustom OBS bucket nameIf specified, OBS encryption not needed
--obs_enc_kms_key_idNoKMS key ID for OBSRequired if obs_encrypt=true (no custom bucket)

Namespace Parameters

ParameterRequiredDescriptionConstraints
--namespace_nameYesNamespace name1-64 chars, lowercase/digit start
--metadata.publicYesPublic/privatetrue or false
--metadata.auto_scanNoAuto scan on uploadtrue or false
--metadata.prevent_vulNoBlock vulnerable imagestrue or false
--metadata.severityNoBlocking severity levelnone, low, medium, high, critical

Registry Parameters

ParameterRequiredDescriptionConstraints
--nameYesRegistry display name1-64 chars
--typeYesRegistry typeswr-pro, swr-pro-internal, huawei-SWR
--urlYesRegistry URLTarget registry address
--credential.typeYesAuth typebasic only
--credential.access_keyYesAccess ID/usernameAuth credential
--credential.access_secretYesAccess secret/passwordAuth credential
--insecureYesVerify remote certtrue (skip) or false (verify)
--instance_id (body)Cond.Target instance IDRequired when type=swr-pro-internal
--project_id (body)Cond.Target project IDRequired when type=swr-pro-internal
--region_idCond.Target region IDRequired when type=swr-pro-internal

Endpoint Whitelist Parameters

ParameterRequiredDescriptionConstraints
--ip_list.[N].ipYesIP or CIDR rangeIndexed array format
--ip_list.[N].descriptionNoDescription for IP entryIndexed array format

Output Format

See Output Format for detailed response format examples (Instance List, Instance Details, Namespace List, Internal Endpoint List, Domain Name List, Long-term Credential).

Verification

See Verification Method for step-by-step verification.

Best Practices

1. Instance naming: Use descriptive names like prod-instance, dev-instance that reflect the environment 2. VPC selection: Choose VPC/subnet that matches your workload deployment environment 3. Namespace security: Enable auto_scan=true and prevent_vul=true for production namespaces to block vulnerable images 4. Severity blocking: Set severity=high or critical for production; use none or low for development 5. Registry credentials: Store registry credentials securely; rotate access keys periodically 6. Public access whitelist: Always configure IP whitelist when enabling public access; use UpdateInstanceEndpointPolicy for full whitelist management 6. Custom domains: Use SCM (SSL Certificate Manager) certificates for custom domain HTTPS 7. Delete with caution: Deleting an instance removes ALL data permanently; deleting a namespace removes ALL repositories 8. Long-term credentials: Use CreateInstanceLtCredential for CI/CD pipelines; use CreateInstanceTempCredential for temporary access 9. Instance spec selection: Use swr.ee.basic for small teams; swr.ee.professional for enterprise requirements with advanced features

Reference Documents

DocumentDescription
SWR Instance API Guidehcloud SWR instance API reference
Output FormatResponse format examples (Instance, Namespace, Endpoint, Domain, Credential)
Credential ConfigurationCredential setup (long-term AK/SK & temporary AK/SK+SecurityToken)
IAM Permission PoliciesRequired permissions and policy JSON
Verification MethodStep-by-step verification
Common PitfallsTroubleshooting guides
Task: Instance LifecycleInstance create, list, show, update config
Task: Instance NamespacesNamespace CRUD workflows
Task: Instance RegistriesRegistry CRUD and repositories
Task: Instance ArtifactsArtifact management and scanning
Task: Instance CredentialsCredential management workflows
Task: Instance EndpointsInternal and public access configuration
Task: Instance DomainsCustom domain management

Notes

  • Instance deletion is irreversible — removes ALL namespaces, repositories, artifacts, and data permanently
  • Namespace deletion is irreversible — removes all repositories and artifacts under it
  • Artifact deletion is irreversible — the image version cannot be recovered
  • Default domain cannot be deleted — only custom domains can be removed
  • AK/SK must never be hardcoded — credentials should only be obtained via environment variables
  • hcloud CLI is the only supported method — all operations use hcloud SWR <Operation> format
  • Pagination offset must be multiple of limitoffset must be 0 or a multiple of limit
  • Registry credential.access_secret is sensitive — never expose or log access secrets

Common Pitfalls

See Common Pitfalls & Solutions for detailed troubleshooting guides.

Quick Reference:

PitfallSymptomQuick Fix
Invalid instance name400 Bad Request3-48 chars, lowercase start, no consecutive hyphens
VPC/subnet not foundInstance creation failsVerify VPC/subnet exist in region
Instance still creatingOperations failWait for Running, check with ListInstance
Offset not multiple of limitPagination returns erroroffset must be 0 or multiple of limit
Registry credential wrongSync failsVerify access_key/access_secret
Domain cert not foundDomain creation failsVerify certificate_id in SCM
Cannot delete default domainDelete failsOnly custom domains can be deleted
Public access whitelist formatWhitelist update failsUse indexed: --ip_list.1.ip=value

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.