Discovering the power of Go for Kubernetes: 5 open-source tools to try

Enes Turan
4 min readDec 6, 2022

--

Go is quickly gaining popularity as a programming language for building cloud native tools and applications. One of the reasons for this is its simple and efficient syntax, which makes it easy to read and understand, and to write clear and concise code.

Go also has a powerful standard library that provides a rich set of features and capabilities for building cloud native applications, including support for concurrency, networking, and distributed systems.

Additionally, Go has a strong community and ecosystem, with many active contributors and a growing number of libraries, frameworks, and tools that teams can use to build cloud native applications.

These factors make Go an attractive choice for teams building tools and applications for cloud native technologies such as Kubernetes.

(Narasimha Prasanna, 2021)

In this blog, we will explore five open-source tools for Kubernetes that are written in Go and available on GitHub. These tools provide a rich set of features and capabilities that teams can use to manage and deploy their applications on Kubernetes, and they are highly recommended for teams that are looking for Go-based solutions for their Kubernetes needs.

Kubebuilder

The first tool that we will look at is Kubebuilder. Kubebuilder is a framework for building Kubernetes controllers in Go. It provides a set of libraries, tools, and conventions that teams can use to easily and quickly create custom controllers that manage and reconcile the desired state of their applications and resources on Kubernetes.

With Kubebuilder, teams can leverage the power of Go to build robust and scalable controllers that can handle complex and dynamic environments. Kubebuilder is available on GitHub at https://github.com/kubernetes-sigs/kubebuilder.

Kustomize

The second tool that we will look at is Kustomize. Kustomize is a tool for customizing and combining Kubernetes YAML configurations. It allows teams to create and maintain multiple overlays that can be applied to the same base configuration, and it provides a rich set of features and options that teams can use to customize and manage their configurations.

With Kustomize, teams can use Go to write and maintain their configuration files in a consistent and declarative way, and they can easily and quickly deploy their applications on Kubernetes. Kustomize is available on GitHub at https://github.com/kubernetes-sigs/kustomize.

Telepresence

The third tool that we will look at is Telepresence. Telepresence is a tool that allows teams to develop and test their applications locally while transparently connecting to a remote Kubernetes cluster. With Telepresence, teams can easily switch between their local and remote environments and use Go to write and debug their applications on their local machines.

With Telepresence, teams can use Go to write and debug their applications on their local machines, and they can seamlessly deploy and test their applications on Kubernetes. The tool also provides a CLI and an API that teams can use to automate and integrate with their workflow, allowing them to seamlessly deploy and test their applications on Kubernetes. Telepresence is available on GitHub at https://github.com/telepresenceio/telepresence.

Kube-bench

The fourth tool that we will look at is Kube-bench. Kube-bench is a tool that allows teams to check the security and compliance of their Kubernetes clusters.

It provides a set of checks that are based on the CIS Kubernetes Benchmark, and it allows teams to run the checks locally or remotely, and to generate reports and alerts. Kube-bench is available on GitHub at https://github.com/aquasecurity/kube-bench.

Helmfile

The fifth and final tool that we will look at is Helmfile. Helmfile is a tool that allows teams to manage and deploy multiple Helm charts using a declarative configuration file. It allows teams to define and organize their charts and their dependencies, and it provides a CLI and an API that teams can use to automate and integrate with their workflow.

With Helmfile, teams can use Go to write and maintain their Helmfile files, and they can easily and quickly deploy their applications on Kubernetes using Helm charts. Helmfile is available on GitHub at https://github.com/helmfile/helmfile.

Go is a powerful and versatile language that provides many benefits for teams that are building tools and applications for Kubernetes. The five open-source tools that we have discussed in this blog are just a few examples of the many Go-based tools that are available on GitHub, and they provide a rich set of features and capabilities that teams can use to manage and deploy their applications on Kubernetes. Teams that are looking for Go-based solutions for their Kubernetes needs should consider trying these tools and exploring the many other open-source options that are available on GitHub.

--

--