main
Patrii Cloud CLI is the official command-line interface for managing Patrii Cloud infrastructure. It provides full API coverage for compute, networking, storage, load balancing, DNS, certificates, secrets, billing, and project management. Features: - 300+ commands covering all Patrii Cloud services - Multi-profile authentication for managing multiple accounts - Product-based quota requests with billing catalog integration - Encrypted credential storage using SSH keys - Table, JSON, and YAML output formats - Application credentials for CI/CD automation - OWASP-hardened security (path traversal prevention, no token leaks, secure file permissions) Services: - Compute: servers, flavors, images, keypairs, snapshots, regions - Networking: networks, subnets, routers, floating IPs, security groups, ports - Load Balancer: load balancers, listeners, pools, members, health monitors, L7 policies - Block Storage: volumes, snapshots - Object Storage: S3-compatible buckets, objects, credentials, keys - DNS: zones, records, domain verification - TLS Certificates: ACME certificate ordering and renewal via Barbican - Secrets: secret management, containers, orders - Billing: quota requests, invoices, allocations, pricing - Projects: multi-tenant project management with role-based access - Support: ticket management Licensed under the Apache License, Version 2.0.
Patrii Cloud CLI
Command-line interface for managing Patrii Cloud infrastructure.
Installation
pip install -e .
# With development dependencies
pip install -e ".[dev]"
Quick Start
# Initialize default credentials (encrypted with your SSH key)
patrii config init
# Login
patrii auth login
# List servers
patrii server list
Profiles
Manage multiple accounts and projects with named profiles:
# Create a profile
patrii auth login --profile sales
# Or: patrii config profile add sales
# Switch active profile
patrii auth use sales
# List all profiles with login status
patrii auth list
# Switch back to default
patrii auth use default
# Use per-command
patrii --profile dev server list
# Or set environment variable
export PATRII_PROFILE=sales
Authentication
patrii auth login # Login with active profile
patrii auth login --profile <name> # Login with specific profile (creates if new)
patrii auth status # Show auth status
patrii auth whoami # Show current user
patrii auth list # List all profiles and login status
patrii auth use <name> # Switch active profile
patrii auth use default # Switch to console.conf
patrii auth logout # Clear cached tokens
# Application credentials (for CI/CD)
patrii auth app-credential create --name ci-bot
patrii auth app-credential list
patrii auth app-credential delete <id>
# MFA
patrii auth mfa status
patrii auth mfa enable --method totp
patrii auth mfa verify-setup --code <code>
Compute
# Servers
patrii server list
patrii server create --name my-vm --flavor "shared.balance.1c1g20d" --image "Ubuntu 24.04 LTS" --network <net_id> --key patrii --wait
patrii server show <id_or_name>
patrii server start|stop|reboot|delete <id_or_name>
patrii server console <id_or_name>
patrii server logs <id_or_name>
patrii server metrics <id>
patrii server diagnostics <id>
patrii server resize <id_or_name> --flavor <new_flavor> --wait
# Attach/detach network interfaces
patrii server attach-interface <id> --network <net_id>
patrii server detach-interface <id> <port_id>
# Snapshots & backups
patrii server snapshot create <id_or_name> --name my-snap
patrii server snapshot list <id_or_name>
patrii server backup create <id_or_name> --name my-backup
# Snapshot schedules
patrii server snapshot-schedule show <id>
patrii server snapshot-schedule set <id> --frequency daily --retention 7
patrii server snapshot-schedule delete <id>
# Flavors & images
patrii flavor list
patrii image list
patrii image upload --file disk.qcow2 --name "My Image" --disk-format qcow2
patrii image download <id> --output disk.qcow2
# Keypairs
patrii keypair list
patrii keypair create my-key
patrii keypair import my-key --public-key ~/.ssh/id_rsa.pub
# Regions
patrii region list
Networking
# Networks
patrii network list
patrii network show <id>
patrii network create --name my-net --cidr 10.0.0.0/24
patrii network update <id> --name new-name
patrii network delete <id>
# Subnets
patrii subnet list
patrii subnet create --network <id> --name my-sub --cidr 10.0.1.0/24
patrii subnet update <id> --dns 1.1.1.1
# Routers
patrii router list
patrii router create --name my-router
patrii router set-gateway <id> --network <ext_net_id>
patrii router attach <id> --subnet <subnet_id>
patrii router detach <id> --subnet <subnet_id>
patrii router interfaces <id>
patrii router static-routes <id>
patrii router add-route <id> --destination 10.0.0.0/24 --nexthop 192.168.1.1
patrii router remove-route <id> --destination 10.0.0.0/24 --nexthop 192.168.1.1
# Floating IPs
patrii floating-ip list
patrii floating-ip create
patrii floating-ip associate <fip_id> --port <port_id>
patrii floating-ip disassociate <fip_id>
patrii floating-ip attach <server_id> --ip <fip_id>
patrii floating-ip detach <server_id>
# Security Groups
patrii security-group list
patrii security-group show <id_or_name>
patrii security-group create --name web-sg
patrii security-group rule add <sg_id> -d ingress -P tcp -p 80 -c 0.0.0.0/0
patrii security-group rule list <sg_id>
patrii security-group rule remove <rule_id>
# Ports
patrii port list
patrii port show <id>
patrii port create --network <id>
patrii port update <id> --name new-name
Load Balancer
# Load balancers
patrii loadbalancer list
patrii loadbalancer create --name my-lb --subnet <subnet_id>
patrii loadbalancer show <id>
patrii loadbalancer update <id> --name new-name
patrii loadbalancer delete <id>
patrii loadbalancer stats <id>
patrii loadbalancer failover <id>
patrii loadbalancer flavors
patrii loadbalancer quotas
# Listeners
patrii loadbalancer listener list
patrii loadbalancer listener create --name http --loadbalancer <lb_id> --protocol HTTP --port 80
patrii loadbalancer listener show <id>
patrii loadbalancer listener update <id> --connection-limit 1000
patrii loadbalancer listener delete <id>
# Pools
patrii loadbalancer pool list
patrii loadbalancer pool create --name web-pool --listener <id> --protocol HTTP --algorithm ROUND_ROBIN
patrii loadbalancer pool update <id> --algorithm LEAST_CONNECTIONS
patrii loadbalancer pool delete <id>
# Members
patrii loadbalancer member list <pool_id>
patrii loadbalancer member add <pool_id> --address 10.0.0.5 --port 8080 --subnet <subnet_id>
patrii loadbalancer member update <pool_id> <member_id> --weight 2
patrii loadbalancer member remove <pool_id> <member_id>
# Health monitors
patrii loadbalancer healthmonitor list
patrii loadbalancer healthmonitor create --pool <id> --type HTTP --delay 5 --timeout 3 --max-retries 3
patrii loadbalancer healthmonitor update <id> --delay 10
patrii loadbalancer healthmonitor delete <id>
# L7 Policies & Rules
patrii loadbalancer l7policy list
patrii loadbalancer l7policy create --listener <id> --action REDIRECT_PREFIX --redirect-url https://example.com
patrii loadbalancer l7rule create <policy_id> --type PATH --compare-type STARTS_WITH --value /
Block Storage
patrii volume list
patrii volume create --name data-vol --size 100
patrii volume show <id>
patrii volume update <id> --name new-name
patrii volume attach <id> --server <server_id>
patrii volume detach <id> --server <server_id>
patrii volume extend <id> --size 200
patrii volume delete <id>
# Snapshots
patrii volume snapshot list
patrii volume snapshot create <volume_id> --name my-snap
patrii volume snapshot show <id>
patrii volume snapshot delete <id>
Object Storage (S3)
# Buckets
patrii s3 bucket list
patrii s3 bucket create my-bucket
patrii s3 bucket show my-bucket
patrii s3 bucket stats my-bucket
patrii s3 bucket delete my-bucket
# Bucket configuration
patrii s3 bucket versioning my-bucket --enable
patrii s3 bucket encryption my-bucket --enable
patrii s3 bucket website my-bucket --enable
patrii s3 bucket policy get my-bucket
patrii s3 bucket cors get my-bucket
# Objects
patrii s3 object list my-bucket
patrii s3 object upload my-bucket ./file.txt --key path/file.txt
patrii s3 object delete my-bucket path/file.txt
patrii s3 object presign my-bucket path/file.txt
patrii s3 object download-url my-bucket path/file.txt
patrii s3 object upload-url my-bucket path/file.txt
# Credentials & keys
patrii s3 credentials list
patrii s3 credentials create
patrii s3 key list
patrii s3 key create
patrii s3 cli-config
DNS
# Zones
patrii dns list
patrii dns create --name example.com. --email admin@example.com
patrii dns show <zone_id>
patrii dns update <zone_id> --ttl 300
patrii dns delete <zone_id>
patrii dns lock <zone_id>
patrii dns unlock <zone_id>
patrii dns nameservers <zone_id>
patrii dns ns-check <zone_id>
# Records
patrii dns record list <zone_id>
patrii dns record create <zone_id> --name www.example.com. --type A --record 1.2.3.4
patrii dns record show <zone_id> <record_id>
patrii dns record update <zone_id> <record_id> --record 5.6.7.8
patrii dns record delete <zone_id> <record_id>
# Domain verification
patrii dns verify-initiate example.com
patrii dns verify-check <verification_id>
patrii dns verify-list
TLS Certificates
patrii certificate list
patrii certificate order --domain example.com --name my-cert
patrii certificate show <id>
patrii certificate renew <id>
patrii certificate delete <id>
Secret Management (Barbican)
# Secrets
patrii secret list
patrii secret create --name my-secret --payload "value" --secret-type opaque
patrii secret create --name my-secret --payload-file /path/to/file
patrii secret show <id>
patrii secret get <id>
patrii secret get <id> --output-file secret.txt
patrii secret update <id> --payload "new-value"
patrii secret delete <id>
patrii secret generate --type symmetric --name my-key --algorithm aes --bit-length 256
patrii secret rotate <id> --payload "rotated-value"
# Containers
patrii secret container list
patrii secret container create --name my-certs --type certificate --secret-ref cert:id1 --secret-ref key:id2
patrii secret container show <id>
# Orders
patrii secret order list
patrii secret order create --name gen-key --type key --algorithm aes --bit-length 256
Kubernetes [Coming Soon]
Kubernetes service is not yet available. Commands are defined but may not be functional.
patrii k8s list
patrii k8s create --name my-cluster --version 1.30 --node-count 3
patrii k8s show <id>
patrii k8s kubeconfig <id> --output kubeconfig.yaml
patrii k8s scale <id> --node-count 5
patrii k8s upgrade <id> --version 1.31
patrii k8s metrics <id>
patrii k8s versions
patrii k8s delete <id>
Quota & Billing
# View quotas
patrii quota current
patrii quota list
# Request resources (product-based billing)
patrii quota request --vps "Balanced #1:2" --floating-ips 1 --lb-standard 1 --external-gateways 1
patrii quota request --vps "CPU Optimized #2:1" --block-storage 500 --cycle annual
patrii quota show <request_id>
patrii quota cancel <request_id>
patrii quota stop-renewal <request_id>
patrii quota restore-renewal <request_id>
# View pricing
patrii quota flavors
patrii quota prices
# Billing
patrii billing summary
patrii billing invoices
patrii billing invoice <id>
patrii billing download <id> --output invoice.pdf
patrii billing usage --start 2026-01-01 --end 2026-01-31
patrii billing allocations
patrii billing credit
patrii billing prices
patrii billing payment-status <id>
Projects
patrii project list
patrii project show <id>
patrii project create --name my-project
patrii project update <id> --name new-name
patrii project delete <id>
patrii project switch <id_or_name>
patrii project current
patrii project members
patrii project invite user@example.com --role member
patrii project remove-member <user_id>
patrii project member-role <project_id> <user_id> admin
patrii project quotas
User Profile
patrii profile show
patrii profile update --name "John Doe" --company "Acme Inc"
patrii profile change-password
Support
patrii support list
patrii support create --subject "Issue" --description "Details" --priority high
patrii support show <id>
patrii support reply <id> --message "Update"
patrii support close <id>
patrii support categories
patrii support plan
patrii support plans
patrii support stats
Northstar [Coming Soon]
Northstar CI/CD service is not yet available.
patrii northstar list
patrii northstar create --name my-instance --type standard
patrii northstar show <id>
patrii northstar resize <id> --type premium
patrii northstar delete <id>
Cloud Build [Coming Soon]
Cloud Build service is not yet available.
patrii cloud-build list
patrii cloud-build create --name my-project
patrii cloud-build show <id>
patrii cloud-build build trigger <id>
patrii cloud-build build list <id>
patrii cloud-build build logs <id> <build_id>
patrii cloud-build artifact list <id> <build_id>
Configuration
# Default credentials (console.conf)
patrii config init
patrii config show
patrii config test
patrii config path
patrii config set --project <id> --region COLOGIX-MTL-2
# Named profiles
patrii config profile add <name>
patrii config profile list
patrii config profile show <name>
patrii config profile remove <name>
# Alias: config credential = config profile
patrii config credential add <name>
patrii config credential list
Global Options
patrii --output json|table|yaml # Output format (default: table)
patrii --project <id> # Override default project
patrii --region <region> # Override default region
patrii --profile <name> # Use a named profile
patrii --debug # Enable debug logging
patrii --no-cache # Skip token cache
patrii --api-url <url> # Override API URL
Environment Variables
| Variable | Description |
|---|---|
PATRII_PROFILE |
Active profile name (same as --profile) |
PATRII_PASSWORD |
Password for non-interactive profile creation (CI/CD) |
PATRII_MFA_CODE |
MFA code for non-interactive auth |
PATRII_APP_CREDENTIAL_ID |
App credential ID for CI/CD |
PATRII_APP_CREDENTIAL_SECRET |
App credential secret for CI/CD |
PATRII_SSH_KEY |
Override SSH key path for config decryption |
PATRII_SSH_PASSPHRASE |
SSH key passphrase for encrypted keys |
Storage Locations
| Path | Purpose |
|---|---|
~/.patrii/console.conf |
Default credentials (encrypted) |
~/.patrii/profiles/ |
Named profile credentials (encrypted) |
~/.patrii/active-profile |
Currently active profile name |
~/.patrii/token-cache/ |
Cached authentication tokens |
Development
pip install -e ".[dev]"
pytest tests/ -v
pytest tests/ --cov=patrii_cli --cov-report=html
Description
Patrii-CLI is a full CLI integration with Patrii Cloud (https://console.patrii.cloud)
Languages
Python
100%