CLI to manage all stacks from DNX.
- Download the latest release with the command.
curl -sSL https://raw.githubusercontent.com/DNXLabs/one-cli/master/get_one.sh | bash
- Test to ensure the version you installed is up-to-date.
one --version
- Install shell completion (Optional)
curl -sSL https://raw.githubusercontent.com/DNXLabs/one-cli/master/shell_completion.py | python3
export ONE_VERSION=<version># Linux
sudo curl -L https://github.com/DNXLabs/one-cli/releases/download/$ONE_VERSION/one_linux_amd64 -o /usr/local/bin/one
# Macos
sudo curl -L https://github.com/DNXLabs/one-cli/releases/download/$ONE_VERSION/one_macos_amd64 -o /usr/local/bin/one
sudo chmod +x /usr/local/bin/onepip3 install one-cli
# or setting a version
pip3 install one-cli==<version>To use the CLI within any CI/CD pipeline we encourage to use our docker image:
WARNING: This docker image should only be used inside CI/CD pipelines and it can generate error if used as an alias.
Usage: one [OPTIONS] COMMAND [ARGS]...
CLI to manage all stacks from DNX.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
app Group of app commands wrapped inside docker.
auth Group of auth commands.
aws AWS CLI alias.
aws-v2 AWS v2 CLI alias.
init Create config file for CLI in current directory.
terraform Group of terraform commands wrapped inside docker.
workspace Manage workspaces.
one.yaml
images:
terraform: dnxsolutions/terraform:0.13.0-dnx1gsuite: dnxsolutions/aws-google-auth:latestazure: dnxsolutions/docker-aws-azure-ad:latestaws: dnxsolutions/aws:1.18.44-dnx2aws_2: dnxsolutions/aws:2.0.37-dnx1ecs_deploy: dnxsolutions/ecs-deploy:1.2.0required_version: ">= 0.5.0, <= 0.7.0"# ECS Appapp:
name: copacabanaport: 80docker:
file: Dockerfileimage_name: copacabanaregistry_type: ecrregistry_options:
ecr_aws_account_id: <redact>ecr_aws_region: ap-southeast-2ecr_aws_assume_role: trueecr_aws_role: <redact>ecs_task_definition_file: task-definition.tpl.json# Static Appapp:
type: staticsrc: ./builds3_bucket_name: <redact>distribution_id: <redact>workspaces:
# ECS App example:mgmt_ecs_app:
type: ecsaws:
account_id: <redact>role: <redact>assume_role: true|false (default to false)region: ap-southeast-2ecs_cluster_name: cluster-01# Static App example:mgmt_static_app:
aws:
account_id: <redact>role: <redact>region: ap-southeast-2assume_role: true# Override the template static appapp:
src: ./builds3_bucket_name: <redact>distribution_id: <redact># Terraform examplemgmt:
aws:
account_id: <redact>role: <redact>nonprod:
aws:
account_id: <redact>role: <redact>prod:
aws:
account_id: <redact>role: <redact>default:
aws:
account_id: <redact>role: <redact>assume_role: true|false (default to false)To give better support for customization inside the CLI we created a plugin system that you can extend code, creating new commands and groups and even modify the existing ones.
All plugins need to be python packages to work.
$ one my_plugin
It works!pip install pyinstaller
pyinstaller --clean --hidden-import one.__main__ cli.py --onefile --noconsole -n one- Python 3
# Create environment
python3 -m venv env
# To activate the environmentsource env/bin/activate
# When you finish you can exit typing
deactivatepip3 install --editable .Managed by DNX Solutions.
Apache 2 Licensed. See LICENSE for full details.