juju
Deploy and manage software services
SYNOPSIS
juju [global-options] <command> [command-options] [arguments]
PARAMETERS
--assume-yes, -y
Do not ask for confirmation
--bootstrap-series
Series to bootstrap controllers on (e.g., xenial)
--client
Connect to specified Juju version client
--config
Specify configuration file or key=value pairs
--debug, -D
Enable debug logging
--hold
Hold requested packages at current version
--log-level
Set logging level (DEBUG|INFO|WARNING|ERROR)
--model
Model to operate on
--no-browser
Do not launch web browser for GUI
--output, -o
Specify output format (json, yaml, tab-separated)
--timeout
Set operation timeout
--verbose, -v
Increase verbosity (repeat for more)
--yes
Agree to prompts (same as --assume-yes)
DESCRIPTION
Juju is an open-source, model-driven orchestration engine developed by Canonical for deploying, managing, and scaling applications across clouds, VMs, bare metal, and containers. It simplifies complex operations using charms—reusable, shareable packages that encapsulate software deployment logic—and models that represent application lifecycles.
Operators define desired states in models, and Juju ensures idempotent execution to achieve them. Supports clouds like AWS, Azure, GCP, OpenStack, and on-prem with MAAS or LXD. Integrates with Kubernetes via Charmed Kubernetes.
Core workflow: juju bootstrap initializes controllers, juju deploy launches charms, juju add-relation connects services, and juju status provides real-time insights. Relations enable automatic configuration between services, like databases and apps. Scales horizontally with juju add-unit.
Ideal for big data, PaaS, and microservices. Installed via snap on Ubuntu; cross-platform CLI.
CAVEATS
Requires snap installation; cloud credentials via juju add-credential. High resource use on large models. Not for single-host tasks.
MAIN SUBCOMMANDS
bootstrap: Initialize controller.
deploy: Deploy charm to model.
status: Show model status.
remove-model: Destroy model.
CHARMS AND BUNDLES
Charms from Charmhub (juju deploy mysql --channel=8.0/stable). Bundles deploy multi-service stacks.
CONTROLLERS
Central management: juju controllers, juju add-model.
HISTORY
Originated as Ensemble in 2010 by Canonical; renamed Juju in 2011. Juju 2.0 (2016) introduced controllers and unbundled architecture. Version 3.0+ focuses on Kubernetes and multi-cloud. Actively maintained for Ubuntu ecosystem.


