Our platform is showing a lot of promise and we hope you enjoy using it!
CNDI is a tool that helps you create and manage Google Kubernetes clusters by making best practices simple and approachable. If you’ve never used Kubernetes before, this is the right way to get started. We have templates for data infrastructure that make it really easy to deploy tools like Apache Airflow. Our goal is to make self-hosting data infrastructure in the cloud as simple to use as managed services but without lock-in or licensing fees. We achieve this by provisioning reliable clusters for you wherever you need them with a focus on making changes over time through git.
We've shipped and formalized a bunch of features and will be adhering to semantic versioning going forward. For those who are curious about our release cadence, we will be releasing new features and fixes approximately every couple weeks and we shouldn’t have any breaking changes due to the careful design of our configuration syntax.
CNDI has a number of features that have shipped in v1 that we are excited to share. First, let’s talk about our key platform features: The product of using CNDI is a fully GitOps-enabled Kubernetes cluster. This means that your cluster is managed entirely from git which includes Kubernetes Secrets and Terraform Resources!
On the infrastructure management side, CNDI uses Terraform to provision the nodes and link them together as a cluster at runtime. We provide a simple interface where you specify the cloud you want your nodes deployed and how much power each virtual machine should have. With that configuration, CNDI will generate the Terraform resources needed to make that happen and if you add 3 or more nodes, high availability will be enabled automatically. Whenever changes to those nodes are made in your CNDI config, you can push those changes to git and they will be automatically resolved for you; this even includes adding nodes to the cluster or upgrading them in place without downtime!
GitOps is a powerful paradigm in the cloud-native world. The idea is that your cluster should look at your GitHub repository which is filled with Kubernetes manifests and it should ensure that your cluster matches exactly the contents of the repo. This means every change to your cluster will need to be vetted by pull request and as a result, your cluster will be stable and secure. CNDI leverages a tool – called ArgoCD – to provide this workflow and we configure it optimally out of the box.
One of the challenges in building a GitOps-enabled cluster is that you want all cluster manifests to exist in git but that is in conflict with the security principle that you should never put secrets in your git repo. CNDI handles encrypting the secret values so you can push them to git, it also handles configuring your cluster to use those encrypted secrets by leveraging Kubeseal and the SealedSecrets controller respectively. So, Kubernetes Secret management has never been easier!
We have built a template for deploying Airflow using CNDI and we have many more templates on the way. With every template we make deployments as simple as entering values in our interactive prompt, then pushing the resulting files to git. If we don’t have a template for your app, we’d love to help by implementing one and so, please add an issue to the repo. Even when we don’t have a template, our readme should have everything you need to set up the cluster without one.
We have support for AWS, GCP, and Azure. This means deploying a cluster to any of those providers is just as easy as setting the target and entering credentials. If you want to move from one cloud to another, changing those values is all you need to do.
We’re excited to provide more deployment targets than just those 3 cloud services soon (stay tuned for generic Linux support!) and if you have a target you’d like to see added, please let us know by creating an issue.
This has been just a quick walkthrough about the current state of CNDI at version v1.1.0! We’re so excited that we’ve created something useful and we would love to hear from you. Of course open-source contributions are welcome and we’d be so happy to have you on board, as well.
Check out our roadmap to see what's coming next and where you might be able to contribute!