mcpField
Y
yandex-cloud-cli

yandex-cloud-cli

github.com/elsvvCloud & DevOps148 installsUpdated 36w ago
Repository

About yandex-cloud-cli

A command-line reference skill for operating Yandex Cloud with `yc`. It supports users scripting and administering resources across infrastructure, identity, databases, storage, and other listed services.

Key features

  1. 01Global flags and output formats
  2. 02Profile and authentication guidance
  3. 03Resource CRUD command patterns
  4. 04Service command references
  5. 05Async operation tracking

Use cases

  1. 01Extract resource IDs in scripts with JSON and jq
  2. 02Manage cloud resources from the command line
  3. 03Track long-running resource operations
  4. 04Configure profiles for different cloud folders

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/elsvv/yandex-cloud-cli-skill --skill yandex-cloud-cli

After installing, type/yandex-cloud-cliin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
.gitignore
references/
data-platform.md
iam.md
compute.md
load-balancers.md
kubernetes.md
cdn.md
databases.md
container-registry.md
logging-audit.md
organization.md
serverless.md
networking.md
storage-secrets-certs.md

Details

From the project README

Yandex Cloud CLI (yc)

Essentials

Command Structure
yc <service-group> <resource> <command> [<NAME|ID>] [flags] [global-flags]
Global Flags
FlagPurpose
--profile NAMEUse named profile
--cloud-id IDOverride cloud
--folder-id IDOverride folder
--folder-name NAMEOverride folder by name
--token TOKENOverride OAuth token
--impersonate-service-account-id IDAct as service account
--format text|yaml|json|json-restOutput format
--jq EXPRFilter JSON output (jq syntax)
--asyncNon-blocking (returns operation ID)
--retry NgRPC retries (0=disable, default 5)
--debugDebug logging
--no-user-outputSuppress user-facing output
-h, --helpHelp for any command
Output & Scripting

Always use --format json combined with jq for scripting:

# Get resource ID by name
yc compute instance get my-vm --format json | jq -r .id

# List all instance external IPs
yc compute instance list --format json | jq -r '.[].network_interfaces[0].primary_v4_address.one_to_one_nat.address'

# Use --jq shortcut (no piping needed)
yc compute instance get my-vm --format json --jq .id

# Get multiple fields
yc compute instance list --format json | jq -r '.[] | [.name, .status] | @tsv'
Configuration & Profiles
yc init                              # Interactive setup (OAuth, cloud, folder)
yc config list                       # Current config
yc config set folder-id <ID>         # Set default folder
yc config set compute-default-zone ru-central1-d
yc config set format json            # Default output format

# Profile management
yc config profile create <NAME>
yc config profile activate <NAME>
yc config profile list
yc config profile get <NAME>
yc config profile delete <NAME>

# S3 storage config
yc config set storage-endpoint storage.yandexcloud.net
Authentication Methods
  1. OAuth token (personal use): yc config set token <OAUTH-TOKEN>
  2. Service account key (automation): yc config set service-account-key key.json
  3. Instance metadata (on YC VMs): yc config set instance-service-account true
  4. Federation (SSO): yc init --federation-id <ID>
yc config list           # Show current profile, cloud, folder, token
yc iam create-token      # Get IAM token for API calls
Operations

Long-running operations (create cluster, etc.) can be tracked:

yc <service> <resource> create ... --async   # Returns operation ID
yc operation get <OPERATION-ID>              # Check status (poll until done=true)

Without --async, commands block until the operation completes.

Availability Zones
  • ru-central1-a — Moscow, zone A
  • ru-central1-b — Moscow, zone B
  • ru-central1-d — Moscow, zone D

Note: ru-central1-c is deprecated. Use ru-central1-d for new resources.

Service Quick Reference

All Service Groups
GroupAliasPurpose
Compute & Infrastructure
compute—VMs, disks, images, snapshots, instance groups, filesystems, GPU clusters
vpc—Networks, subnets, security groups, addresses, gateways, route tables
dns—DNS zones and records
cdn—CDN resources, origin groups, cache management
load-balancerlbNetwork Load Balancer (L4)
application-load-balanceralbApplication Load Balancer (L7)
Identity & Security
iam—Service accounts, roles, keys, tokens
resource-managerresourceClouds, folders
organization-manager—Organizations, federations, groups, OS Login
kms—Symmetric encryption keys
lockbox—Secrets management
certificate-managercmTLS certificates (Let's Encrypt, imported)
smartwebsecurityswsWAF security profiles (rules, smart protection, geo/IP filtering)
smartcaptchascCaptcha management (checkbox, slider, challenges)
quota-manager—View quotas and request limit increases
Containers & Serverless
managed-kubernetesk8sKubernetes clusters, node groups
container—Container registry, repositories, images
serverlessslsFunctions, triggers, containers, API gateways
Databases
managed-postgresqlpostgresPostgreSQL clusters
managed-mysql—MySQL clusters
managed-clickhouse—ClickHouse clusters
managed-mongodb—MongoDB clusters
managed-redis—Redis clusters
managed-kafka—Kafka clusters
managed-opensearchopensearchOpenSearch clusters
managed-greenplum—Greenplum clusters
ydb—YDB databases (serverless or dedicated)
Data & Analytics
dataproc—DataProc (Hadoop/Spark) clusters and jobs
datatransferdtData Transfer endpoints and transfers
Storage
storage—Object storage (S3-compatible), buckets
Observability
logginglogCloud Logging (groups, read, write)
audit-trails—Audit trail management
Other
backup—Cloud Backup (VMs, policies)
iot—IoT Core (registries, devices, MQTT)
marketplace—Marketplace products
loadtesting—Load testing
Standard CRUD Pattern

Most resources follow:

yc <service> <resource> list [--folder-id ID]
yc <service> <resource> get <NAME|ID>
yc <service> <resource> create [<NAME>] [flags]
yc <service> <resource> update <NAME|ID> [flags]
yc <service> <resource> delete <NAME|ID>

Many also support: add-labels, remove-labels, list-operations, list-access-bindings, add-access-binding, remove-access-binding, move (between folders).

Detailed References

Read the reference file matching the service you need:

  • Compute (VMs, disks, images, snapshots, snapshot schedules, instance groups, filesystems, placement groups, GPU clusters) → references/compute.md
  • Networking (VPC networks, subnets, security groups, addresses, gateways, route tables, DNS zones/records) → references/networking.md
  • IAM & Resource Manager (service accounts, roles, all key types, access bindings, clouds, folders) → references/iam.md
  • Serverless (functions, versions, triggers, containers, API gateways, runtimes, scaling) → references/serverless.md
  • Kubernetes (clusters, node groups, kubeconfig, autoscaling, full setup example) → references/kubernetes.md
  • Databases (PostgreSQL, MySQL, ClickHouse, Redis, MongoDB, OpenSearch, Greenplum, YDB, Kafka — clusters, users, databases, backups, resource presets) → references/databases.md
  • Storage, Secrets, Certificates (S3 buckets, s3/s3api commands, Lockbox secrets, KMS encryption, Certificate Manager — Let's Encrypt & imported) → references/storage-secrets-certs.md
  • Container Registry (registries, repositories, images, Docker auth, lifecycle policies) → references/container-registry.md
  • Load Balancers (ALB — target groups, backend groups, HTTP routers, virtual hosts, routes, listeners; NLB — network load balancers, target groups, health checks) → references/load-balancers.md
  • CDN (origin groups, CDN resources, caching, SSL, compression, headers, security, cache purge/prefetch) → references/cdn.md
  • Logging & Audit (Cloud Logging groups/read/write, Audit Trails, Cloud Backup) → references/logging-audit.md
  • Data Platform (DataProc clusters/subclusters/jobs, Data Transfer endpoints/transfers) → references/data-platform.md
  • Organization, Security & Quotas (Organization Manager, federations, groups, OS Login, Smart Web Security WAF with rules/conditions, SmartCaptcha, Quota Manager, IoT Core) → references/organization.md

Guidelines

  • Always verify the active profile and folder before mutating commands: yc config list
  • Use --format json | jq for extracting IDs and values in scripts
  • Use --async for long operations, then check: yc operation get <OP-ID>
  • Prefer --name over --id in interactive use; prefer --id in scripts for reliability
  • For any unfamiliar command, run yc <service> <resource> <command> --help — the built-in help is authoritative and always up-to-date
  • When creating resources that depend on others (VM needs subnet, subnet needs network), create dependencies first
  • Use --deletion-protection on production databases, clusters, and secrets
  • For S3 operations, create a static access key via yc iam access-key create
  • Custom security groups with no rules deny all traffic; the auto-created default SG allows all — always create explicit SGs for production
  • Use labels consistently (--labels env=prod,team=backend) for cost tracking and filtering
  • For managed databases, always specify --security-group-ids to restrict access
  • When creating K8s clusters, specify two service accounts (can be the same): --service-account-name for cluster resources and --node-service-account-name for node operations (registry, logs)

Comments

Markdown supported