Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Deploying Contrail Charms with Kubernetes


You can deploy Contrail by using Juju Charms. Juju Charms simplifies Contrail deployment by providing a simple way to deploy, configure, scale, and manage Contrail operations. For more information, see Understanding Juju Charms with Kubernetes.

Contrail supports the following charms:

  • contrail-agent

  • contrail-analytics

  • contrail-analyticsdb

  • contrail-controller

  • contrail-kubernetes-master

  • contrail-kubernetes-node

You can deploy Contrail Charms in a bundle or manually.

Deploying Contrail Charms in a Bundle

Follow these steps to deploy Contrail Charms in a bundle.

  1. Deploy Contrail Charms.

    To deploy Contrail Charms in a bundle, use the juju deploy <bundle_yaml_file> command.

    The following example shows you how to use bundle_yaml_file to deploy Contrail on Amazon Web Services (AWS) Cloud.

    You can create or modify the Contrail Charm deployment bundle YAML file to:

    • Point to machines or instances where the Contrail Charms must be deployed.

    • Include the options you need.

      Each Contrail Charm has a specific set of options. The options you choose depend on the charms you select. For more information on the options that are available, see Options for Juju Charms with Kubernetes.

  2. (Optional) Check the status of deployment.

    You can check the status of the deployment by using the juju status command.

  3. Enable configuration statements.

    Based on your deployment requirements, you can enable the following configuration statements:

Deploying Juju Charms with Kubernetes Manually

Before you begin deployment, ensure that you have:

  • Installed and configured Juju

  • Created a Juju controller

  • Ubuntu 16.04 or Ubuntu 18.04 installed

Follow these steps to deploy Juju Charms with Kubernetes manually:

  1. Create machine instances for Kubernetes master, Kubernetes workers, and Contrail.
  2. Deploy Kubernetes services.

    Some of the applications may need an additional configuration.

    You can deploy Kubernetes services by using any one of the following methods:


    You must use the same docker version for Contrail and Kubernetes.

    • By specifying the Kubernetes parameters in a YAML file

    • By using CLI

    • By using a combination of YAML-formatted file and CLI

    For more details, refer to Juju Application Configuration.

  3. Deploy and configure ntp, easyrsa, etcd, kubernetes-master, kubernetes-worker.
  4. Deploy and configure Contrail services.

    Deploy contrail-analyticsdb, contrail-analytics, contrail-controller, contrail-kubernets-master, contrail-kubernetes-node, contrail-agent from the directory where you have downloaded the charms.


    You must set auth-mode parameter of the contrail-controller charm to no-auth if Contrail is deployed without a keystone.

  5. Enable applications to be available to external traffic:
  6. Enable contrail-controller and contrail-analytics services to be available to external traffic if you do not use HAProxy.
  7. Apply SSL.

    You can apply SSL if needed. To use SSL with Contrail services, deploy easy-rsa service and add-relation command to create relations to contrail-controller service and contrail-agent services.

  8. Add other necessary relations.