Skip to content

daniellavoie/confluent-platform-bosh-release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BOSH release for Confluent Platform

This is a BOSH release and deployment manifest deploy the Confluent Platform on major cloud (including vSphere).

Motivation

Containers are fun, but getting stateful workloads in them can get a bit arkward. The abstraction layers it brins only add more complexity to the primitives they require only in the name of cloud independance.

What if a cloud agnostic resource orchestrator existed and that was closer to the underlying cloud native resources. Enters Bosh. As stated by the project presentation :

 BOSH is a project that unifies release engineering, deployment, and lifecycle management of small and large-scale cloud software. BOSH can provision and deploy software over hundreds of VMs. It also performs monitoring, failure recovery, and software updates with zero-to-minimal downtime.

Long story short, Bosh let you declare a desired state of your software and the underlying physical infrastructure (disk, vm instance, networks, OS, etc) and ensures that it meets the actual state. It was inspired by Google Borg. OS upgrade? Bosh will update on a rolling deployment. Same for software or resource change. A VM stops responding? Bosh will detach disk, trash the VM and recreate a new one before re-attaching persistent disks and restarting the processes. Think of it as a Kubernetes for your IaaS resources.

Getting started on Bosh

Stark and Wayne provides an incredible Bosh tutorial. That is a recommeded first step to enter the world of Bosh.

TL;DR - I just want to deploy

Disclaimer

Please reach out if you plan on running this Bosh Release on an environment. I will be happy to assist in exchange of feedbacks.

State of security

A lot of security features are to be implemented. For a complete state of the bits that still requires implement, refers to the state of security doc section.

Tested IaaS

This current iteration was successully tested on AWS and GCP cpis.

Deploy Confluent Platform Cluster

bosh deploy confluent-platform-bosh-release/manifests/confluent-platform.yml -o confluent-platform-bosh-release/manifests/operators/create.yml

Updates

When new versions of confluent-platform-bosh-release are released the manifests/confluent-platform-solo.yml file will be updated. This means you can easily git pull and bosh deploy to upgrade.

export BOSH_ENVIRONMENT=<bosh-alias>
export BOSH_DEPLOYMENT=confluent-platform-dev
cd confluent-platform-bosh-release
git pull
cd -
bosh deploy confluent-platform-bosh-release/manifests/confluent-platform-solo.yml

Development

To iterate on this BOSH release, use the create.yml manifest when you deploy:

bosh deploy manifests/confluent-platform-solo.yml -o manifests/operators/create.yml

Acknowledgement

Big shout out to Stark and Wayne for their inspiration with their Kafka Bosh Release. The openjdk package used by release is provided by them.