Command 'juju add-credential'

The information in this doc is based on Juju version 3.5.3, and may not accurately reflect other versions of Juju.

See also: credentials, remove-credential, update-credential, default-credential, default-region, autoload-credentials


Adds a credential for a cloud to a local client and uploads it to a controller.


juju add-credential [options] <cloud name>


Flag Default Usage
--B, --no-browser-login false Do not use web browser for authentication
--c, --controller Controller to operate in
--client false Client operation
--f, --file The YAML file containing credentials to add
--region Cloud region that credential is valid for


juju add-credential google
juju add-credential google --client
juju add-credential google -c mycontroller
juju add-credential aws -f ~/credentials.yaml -c mycontroller
juju add-credential aws -f ~/credentials.yaml
juju add-credential aws -f ~/credentials.yaml --client


The juju add-credential command operates in two modes.

When called with only the <cloud name> argument, juju add-credential will take you through an interactive prompt to add a credential specific to the cloud provider.

Providing the -f <credentials.yaml> option switches to the non-interactive mode. <credentials.yaml> must be a path to a correctly formatted YAML-formatted file.

Sample yaml file shows five credentials being stored against four clouds:

      auth-type: access-key
      access-key: <key>
      secret-key: <key>
      auth-type: service-principal-secret
      application-id: <uuid>
      application-password: <password>
      subscription-id: <uuid>
      auth-type: interactive
      trust-password: <password>
      auth-type: interactive
      trust-password: <password>
      auth-type: oauth2
      project-id: <project-id>
      private-key: <private-key>
      client-email: <email>
      client-id: <client-id>

The <credential-name> parameter of each credential is arbitrary, but must be unique within each <cloud-name>. This allows each cloud to store multiple credentials.

The format for a credential is cloud-specific. Thus, it’s best to use ‘add-credential’ command in an interactive mode. This will result in adding this new credential locally and / or uploading it to a controller in a correct format for the desired cloud.

Notes: If you are setting up Juju for the first time, consider running juju autoload-credentials. This may allow you to skip adding credentials manually.

This command does not set default regions nor default credentials for the cloud. The commands juju default-region and juju default-credential provide that functionality.

Use --controller option to upload a credential to a controller.

Use --client option to add a credential to the current client.

Last updated 13 days ago. Help improve this document in the forum.