CLI and Python SDK for managing DuploCloud infrastructure. Works as a standalone command-line tool or as a Python module in your own scripts and CI/CD pipelines.
-qpip install duplocloud-client
brew install duplocloud/tap/duploctl
For pinned version installs and alternative methods (GitHub release, git tag, Docker, standalone binary), see the release notes.
Set your DuploCloud credentials:
export DUPLO_HOST=https://example.duplocloud.net
export DUPLO_TOKEN=AQAAA...
export DUPLO_TENANT=dev01
Run commands:
# List services in the current tenant
duploctl service list
# Find a specific tenant
duploctl tenant find mytenant
# Create a service from a YAML file
duploctl service create -f service.yaml
# Get output as YAML
duploctl service list -o yaml
# Filter output with JMESPath
duploctl service list -q '[].Name'
| Flag | Env Variable | Default | Description |
|---|---|---|---|
--host, -H | DUPLO_HOST | -- | DuploCloud portal URL (required) |
--token, -t | DUPLO_TOKEN | -- | Authentication token (required unless using -I) |
--tenant, -T | DUPLO_TENANT | -- | Tenant name |
--output, -o | DUPLO_OUTPUT | json | Output format (json, yaml, csv, env, string) |
--query, -q | -- | -- | JMESPath query to filter output |
--wait, -w | -- | false | Wait for async operations to complete |
--file, -f | -- | -- | YAML/JSON file for resource body input |
--interactive, -I | -- | false | Use interactive browser-based login |
--admin, --isadmin | -- | false | Request admin JIT credentials (use with -I) |
--log-level, -L | DUPLO_LOG_LEVEL | INFO | Log level |
--config-file | DUPLO_CONFIG | -- | Path to duploctl config file |
--ctx | DUPLO_CONTEXT | -- | Named context from config file |
--validate | DUPLO_VALIDATE | false | Validate inputs against SDK model schemas |
--dry-run | -- | false | Print changes without submitting |
Full argument reference: cli.duplocloud.com/Args
duploctl <resource> <command> [args...]
# Configure AWS credentials
duploctl jit update_aws_config myportal
# Open AWS web console
duploctl jit web
# Get Kubernetes config
duploctl jit update_kubeconfig myinfra
# Infrastructure and tenants
duploctl infrastructure list
duploctl tenant find mytenant
# Services
duploctl service list
duploctl service create -f service.yaml -w
duploctl service update_image myservice nginx:latest
# Kubernetes resources
duploctl configmap list
duploctl secret find mysecret
duploctl cronjob list
duploctl pod list
# AWS resources
duploctl rds list
duploctl s3 list
duploctl lambda list
duploctl hosts list
Use duploctl programmatically in your own scripts.
from duplocloud.controller import DuploCtl
# Reads DUPLO_HOST, DUPLO_TOKEN, DUPLO_TENANT from env
duplo, args = DuploCtl.from_env()
# Callable interface (like CLI syntax)
services = duplo("service", "list")
tenant = duplo("tenant", "find", "mytenant")
from duplocloud.controller import DuploCtl
duplo = DuploCtl.from_creds(
host="https://example.duplocloud.net",
token="AQAAA...",
tenant="dev01",
)
# Load a resource and call methods directly
svc = duplo.load("service")
services = svc.list()
my_service = svc.find("myservice")
# JMESPath filtering
names = duplo("service", "list", query="[].Name")
duplo = DuploCtl.from_creds(host="...", token="...", tenant="dev01")
# Create from a dict
duplo("service", "create", body={
"Name": "myservice",
"Image": "nginx:latest",
"Replicas": 2,
})
# Or load the resource directly
svc = duplo.load("service")
svc.create(body={"Name": "myservice", "Image": "nginx:latest"})
# Run any duploctl command
docker run -e DUPLO_HOST=... -e DUPLO_TOKEN=... -e DUPLO_TENANT=... \
duplocloud/duploctl service list
# Output as YAML
docker run -e DUPLO_HOST=... -e DUPLO_TOKEN=... -e DUPLO_TENANT=... \
duplocloud/duploctl service list -o yaml
duploctl integrates with all major CI/CD platforms. See the DuploCloud CI/CD docs for detailed guides.
| Platform | Project | Marketplace |
|---|---|---|
| GitHub Actions | duplocloud/actions | Marketplace |
| Bitbucket Pipelines | duplocloud/duploctl-pipe | |
| CircleCI | duplocloud/orbs | Orb Registry |
| GitLab CI | duplocloud/ci | CI/CD Catalog |
git clone --recurse-submodules https://github.com/duplocloud/duploctl.git
cd duploctl
pip install -e '.[build,test,aws,docs]'
pytest src -m unit
See CONTRIBUTING.md for full development guidelines.
Content type
Image
Digest
sha256:0152f5fdf…
Size
46.9 MB
Last updated
2 months ago
docker pull duplocloud/duploctl