Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Installing and Managing Contrail Microservices Architecture Using Helm Charts

Note:

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 section provides an overview of using Helm charts when installing Contrail with a microservices architecture. Contrail Helm charts work together with OpenStack Helm for an OpenStack Contrail deployment. For an introduction to Contrail microservices, refer to Understanding Contrail Microservices Architecture.

Understanding Helm Charts

Helm is the package manager for Kubernetes, an open source software for managing containerized systems. The packaging format used by Helm is a chart, a collection of files that describe a related set of Kubernetes resources. Helm charts enable you to define, install, and configure your Kubernetes application. A chart can be used to deploy something simple, like a memcached pod, or something complex, like a full web application stack complete with HTTP servers, databases, and the like.

Contrail Helm charts give you complete life cycle management of installation, update, and delete of Contrail Docker-based containers in a microservices architecture.

The Contrail Helm deployer supports deploying Contrail for OpenStack.

Contrail Helm Deployer Charts

The Contrail Helm deployer uses the following charts.

  • helm-toolkit chart

    Contains common templates and functions that are used by every other Contrail Helm chart.

  • contrail-thirdparty chart

    Defines and deploys third party containers as Kubernetes resources for Contrail, including:

    • RabbitMQ

    • ZooKeeper

    • Cassandra

    • Kafka

    • Redis

  • contrail-controller chart

    Deploys and manages Contrail components as Kubernetes resources, including:

    • control

    • config

    • webui

  • contrail-analytics chart

    Deploys and manages Contrail analytics components as Kubernetes resources.

  • contrail-vrouter chart

    Deploys and manages Contrail vrouter components as Kubernetes resources.

  • contrail-superset chart

    A superset of all other Contrail Helm charts, can be used to install all Kubernetes resources defined in other Contrail charts.

Contrail Kubernetes Resource implementation

All Contrail Helm charts follow a similar approach to implementing Kubernetes resources. For each of the Contrail Release 5.0 containers, configuration input is given as an environment variable in the file values.yaml. Use the variable .Values.contrail_env to define environment variables for the containers.

All of the environment variables are stored in Kubernetes resources called configmaps. The configmaps are loaded into specific containers as environment variables.

Because Contrail is an infrastructure-level application, every pod of Contrail is hosted on the host network namespace. Consequently, the daemonset controller is used to define all Contrail pods, so that each of the Contrail pods are brought up on different nodes to avoid port conflicts.

Example: Contrail Pods Deployment Options

Note:

By default, the contrail-thirdparty Helm chart creates a separate pod for each of the third party services.

Installing Contrail Using Helm Charts

Use one of the following procedures to install Contrail with OpenStack Ocata using Helm charts: