Wednesday, July 22, 2020

Helm Chart for Contour: A Chart Contributed by the Bitnami Community

Bitnami has recently released the Helm chart for Contour, an Ingress Controller for Kubernetes. Contour arrives to complete the list of Ingress Controllers available in the Bitnami Helm chart catalog: Nginx Ingress Controller, Kong, and now Contour. 

This chart is a great example of how Bitnami users are contributing to our catalog. Our users are not only sending us Pull Requests and reporting issues, but they are also creating new charts that help extend the Bitnami catalog. 

In this specific case, a user sent a Pull Request containing a proposal for the Contour Helm chart. The Bitnami content team checked it and gave him the support he needed to adapt the chart and make it ready for release. We are very proud of how our community is providing feedback and making our commitment of “creating awesome open source software available for everyone” possible. 

Built following the Bitnami best practices for Helm charts, the Contour Helm chart uses not-root containers and ships the latest versions of its components and dependencies. Continuously maintained by the Bitnami team, this chart is secure and ready to run in production environments.

Keep reading to learn more about the Bitnami Contour Helm chart’s special features and how easy it is to deploy it in your Kubernetes cluster. 

Why use Contour as an Ingress Controller for your Kubernetes cluster? 

As with any other Ingress Controller, Contour lets you control how external users access services in your Kubernetes cluster. It is ideal for organizations with multiple development teams that are using a single cluster concurrently since it helps secure traffic and protect environments when there are changes in Ingress resources. 

One of the most prominent advantages of using Contour is that it is based on Envoy, a powerful open source proxy designed specifically for cloud-native applications.  

Contour offers the following benefits for both cluster administrators and developers: 

Cluster admins can trust Contour as a safe way to connect applications from outside the cluster, helping them to manage TLS secrets and DNS.  

Contour operates Ingress Resources via Custom Resource Definitions (CRDs). This allows developers to interact with Contour by creating Kubernetes objects types that Contour can understand, skipping the need to interact directly with it. 

Apart from these advantages, Contour provides the following features: 

  • It is designed for deploying cloud-native applications using the flexible HTTPProxy API. 
  • It allows dynamic Envoy reconfiguration. When Ingress and underlying components change, the load balancer doesn’t need to be restarted.  
  • It supports TLS Certificate delegation. 
  • It supports Balancing algorithms such as mirroring, auto repetition, and limiting rate of requests.  
  • It enables detailed monitoring of traffic flow and failures. 

Deploy Contour in your Kubernetes cluster using Bitnami Helm charts 

Deploying Contour in your cluster is easy using the Bitnami Helm chart. You can deploy it on any platform without any other dependencies needed. If you are using Minikube, make sure that you do not have the Nginx Ingress Controller already running before installing. 

To deploy the chart, first add the Bitnami repository to your cluster. Then, simply execute the helm install command followed by a name for your release and the name of the Contour chart: 

$ helm repo add bitnami 

$ helm install my-release bitnami/contour 

These commands will bootstrap a Contour Ingress Controller deployment and an Envoy Proxy Daemonset on your Kubernetes cluster. 

To check the status of the services, execute the kubectl get svc command as shown below. You should see the two services that the chart deploys with their corresponding internal and external IP addresses. 

Now, you will be able to deploy an application in your cluster by enabling Ingress at deployment time. This example shows how to deploy WordPress using the Bitnami Helm chart, but you can choose any other solution from the Bitnami Helm charts catalog or through Kubeapps. 

$ helm install wp  bitnami/wordpress --set ingress.enabled=true 

This will deploy an Ingress rule, which you can check by running kubectl get ingress: 

Note that this deployment uses the same IP address as Contour. Now, you will be able to view your application using the domain name (in this example, the default wordpress.local) or the IP address: 

Do you want to learn more about the Bitnami Contour Helm chart? Check its README file for a complete list of deployment parameters and then give it a try by installing the chart directly in your cluster or through the Kubeapps catalog!