Kubernetes has evolved to become the foundation of the modern cloud-native stack. Yet, adopting this lovable beast of a container platform doesn’t come without its hurdles. Thankfully, many toolsets now exist to help engineers package, deploy and manage applications using Kubernetes.
Below, we’ll look at some graduated and incubating CNCF tools that fit under the application definition and image build category. These open source packages address the operational concerns of Kubernetes, making it easier to install dependencies, generate Kubernetes operators, containerize VMs and more. If you want to improve the developer experience around Kubernetes adoption, these tools are an excellent first place to look.
The Kubernetes package manager
Few cloud-native projects are as well-known as Helm, the Kubernetes package manager. If you’re finding, sharing or installing cloud-native architecture, there’s a high probability you’re using Helm. The
helm install command is a near-ubiquitous method for installing Helm charts for third-party applications. Helm charts are shared as files and laid out in a directory tree structure. Artifact Hub is a popular repository of Helm charts, where you can find, install and publish over 10,000 Kubernetes packages. Helm is a graduated project with the CNCF and is supported by a vast number of contributors.
Transform source code into runnable container images
Buildpacks, an incubating project hosted by CNCF, is a utility that assists developers in transforming their application source code into images that can run in any cloud. The concept of Buildpacks originated at Heroku in 2011. Since then, Buildpacks has been open sourced and embraced by many other companies and projects, from Google to Cloud Foundry, GitLab and Knative. Buildpacks helps application developers convert code into runnable images, and the platform also assists in packaging Buildpacks for distribution. Buildpacks uses the latest OCI container formats and comes with plenty of features, such as advanced caching, auto-detection, minimal app image, image rebasing, bill of materials and more. It also sports a centralized registry for community Buildpacks.
A K8s API and runtime to define and manage VMs
KubeVirt is an API that enables operators to quickly containerize virtual machines for Kubernetes. KubeVirt, an incubating CNCF sandbox project, provides a method to build and manage applications for containers and virtual machines in a common way. In essence, it allows operators to retain the VMs they already have while reaping the benefits of containerization. KubeVirt can be run on MiniKube, Kind and major cloud computing providers.
SDK for building Kubernetes applications
The Operator Framework decreases the barrier to constructing Kubernetes applications. This handy open source toolkit provides the means to build, test and package operators, which are common Kubernetes-native applications. The SDK uses the controller-runtime library in this process. To get an idea of what sort of operators can be created, check out the Operator Hub registry for a sample of operators created by the Kubernetes community.
An open platform for building developer portals
Backstage is a new and exciting open source incubating CNCF project originally developed at Spotify. A little different than others on our list, Backstage is not concerned with building container images—rather, it’s more focused on building developer portals to help centralize the management of a complex software ecosystem. Backstage is powered by the Backstage Software Catalog, a system that keeps tabs on the ownership and metadata of all the software in your organization. It utilizes metadata YAML files that sit with the source code, on which Backstage then creates visualizations. It looks to be a robust platform that can support the registration of any software type.
Above, we’ve highlighted the graduated and incubating CNCF projects relating to cloud-native application definition and image build. There are also many other exciting CNCF sandbox projects to keep tabs on in this field as well:
- Artifact Hub: Find, install and publish Kubernetes packages.
- Devfile: A Kubernetes-native API for cloud development workspaces specification.
- Krator: A Kubernetes Rust state machine operator.
- KubeVela: A modern Kubernetes-first software delivery platform.
- KUDO: The Kubernetes universal declarative operator (KUDO).
- Porter: Use this tool to package your application, client tools, configuration and deployment logic together.
- sealer: Use this tool to seal all an application’s dependencies and Kubernetes into a ClusterImage.
- Serverless Workflow: A specification for event-driven workflow orchestrations.
- Telepresence: Quick local development for Kubernetes and OpenShift microservices.