Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Using Helm Charts to Provision Multinode Contrail OpenStack Ocata with High Availability


Starting in Contrail Release 1912.L1, Helm support is unavailable in Contrail Networking. The Helm support content in this document supports Contrail Networking Releases 1907 through 1912.

This is the installation procedure for using Helm charts to provision a multinode Contrail system with OpenStack Ocata and high availability.


Contrail Command is not supported for Helm deployed Contrail clusters.

System Specifications

This procedure uses Juniper OpenStack Helm infrastructure and the OpenStack Helm repository to provision an OpenStack Ocata Contrail multinode deployment.

This procedure is tested with:

  • Operating system: Ubuntu 17.03.2 LTS

  • Kernel: 4.4.0-112-generic

  • Docker: 1.13.1-cs9

  • Helm: v2.7.2

  • Kubernetes: v1.9.3

  • OpenStack: Ocata

For a list of supported platforms, see

Preparing to Install

This section is the prerequisites needed to prepare your system before provisioning multinode Contrail with OpenStack Ocata and high availability.

  1. Generate SSH key on master node and copy to all nodes, in below example three nodes with IP addresses,, and are used.

  2. Make sure NTP is configured in all nodes and each node is synched to the time-server in your environment. In below example the NTP server IP is "".

  3. Get the contrail-helm-deployer.

    From Juniper Networks, download contrail-helm-deployer-5.1.0-0.38.tgz onto your provisioning host.

    • scp contrail-helm-deployer-5.1.0-0.38.tgz to all nodes on your cluster.

    • Untar contrail-helm-deployer-5.1.0-0.38.tgz on all nodes.

      tar -zxf contrail-helm-deployer-5.1.0-0.38.tgz -C /opt/

  4. Export required variables.

  5. Install necessary packages and deploy Kubernetes.


    If you want to install a different version of Kubernetes, CNI, or Calico, edit ${OSH_INFRA_PATH}/tools/gate/devel/local-vars.yaml to override the default values in ${OSH_INFRA_PATH}/tools/gate/playbooks/vars.yaml.

  6. Create an inventory file on the master node for Ansible base provisioning. In the following output, are the IP addresses of the nodes, and will use the SSK-key generated in step 1.

  7. Create an environment file on the master node for the cluster.


    By default. Kubernetes v1.9.3, Helm v2.7.2, and CNI v0.6.0 are installed. If you want to install a different version, edit the ${OSH_INFRA_PATH}/tools/gate/devel/multinode-vars.yaml file to override the values given in ${OSH_INFRA_PATH}/playbooks/vars.yaml.

    Sample multinode-vars.yaml :

  8. Run playbooks on the master node.

  9. Verify the kube-dns connection from all nodes. Use nslookup to verify that you are able to resolve Kubernetes cluster-specific names.

Installation of OpenStack Helm Charts

Use this procedure to install the OpenStack Helm charts.

  1. Before installing the OpenStack Helm charts, review the default labels for the nodes.

    The default nodes have the labels openstack-control-plane and openstack-compute-node.The default configuration creates OpenStack Helm (OSH) pods on all the nodes. Use the following commands to check the default OpenStack labels.

    If you need to restrict the creation of OSH pods on specific nodes, disable the OpenStack labels. The following example shows how to disable the openstack-compute-node label on the ubuntu-contrail-9 node.

  2. Deploy OpenStack Helm charts.

Installation of Contrail Helm Charts

Use this procedure to install the Contrail Helm charts.

  1. Label the Contrail pods. All Contrail pods are to be deployed in the namespace contrail, using the following labels:

    • Controller components—config, control, analytics

    • vRouter kernel—

    • vRouter DPDK—

    The following example shows how to label ubuntu-contrail-11 as DPDK and label ubuntu-contrail-10as kernel vrouter.

  2. Create Kubernetes ClusterRoleBinding for Contrail.

  3. Set up the Contrail Helm charts and set the configuration settings specific to your system in the values.yaml file for each of the charts.


    If any other environment variables need to be added, add them in the values.yaml file of the respective charts.

  4. Use Helm install commands to deploy each of the Contrail Helm charts.

  5. When the Contrail pods are up and running, deploy the OpenStack Heat chart.

  6. When finished, run the compute kit test.

    (k8s-master)> ./tools/deployment/multinode/

Basic Testing OpenStack Helm Contrail Cluster

Use the following commands to perform basic testing on the virtual network and the virtual machines in your OpenStack Helm Contrail cluster.

Accessing the Contrail OpenStack Helm Cluster

Use the following topic to access the OpenStack and Contrail Web UI and prepare the OpenStack client for command-line interface (CLI):

Accessing a Contrail OpenStack Helm Cluster