My favorite tools pt. 1

Arkade

A small shop with applications. You can find it on https://github.com/alexellis/arkade

It provides you a way to install useful tools for your Cloud / Kubernetes development. Simply, issue ark get ... and you'll get the tool. And there's plenty of them.

Terraform

Oh, my precious. What would I do without you?

Terraform is a tool created by HashiCorp allowing to manage cloud resources (and many more) directly from a code. Terraform needs plugins for its functionality. And there are hundreds of them. Starting from major cloud providers, they give opportunity to manipulate your infrastructure with ease. Die, CloudFormation!

It's relatively easy to use and has easy-to-pick-up syntax.

# main.tf

provider "google" {
  project = "<YOUR_PROJECT_ID>"
  region  = "us-central1"
}

resource "google_container_cluster" "primary" {
  name     = "autopilot-cluster"
  location = "us-central1"

  enable_autopilot = true

  networking {
    network    = "default"
    subnetwork = "default"
  }

  initial_node_count = 1

  node_config {
    machine_type = "e2-medium"
  }
}

resource "google_container_node_pool" "primary_preemptible_nodes" {
  cluster    = google_container_cluster.primary.name
  location   = google_container_cluster.primary.location
  node_count = 3

  node_config {
    preemptible  = true
    machine_type = "e2-medium"
    oauth_scopes = ["https://www.googleapis.com/auth/cloud-platform"]
  }

  lifecycle {
    create_before_destroy = true
  }
}

TFLint

A tool that you can download from the aforementioned Arkade.

It helps you write nice and maintainable HCL code.

Vault

HashiCorp is likely a king of today's list. Vault is a software HSM that allows to store credentials, tokens, private keys, and many more types of encrypted material securely. You can even create your own Certificate Authority right from it. It's relatively easy to use. And OpenSource alternative to CyberArk.

Helm

Last but not least. Probably the most important software allowing us to manage Kubernetes Clusters and Deployments. It's called Package Manager for Kubernetes, but I believe there's more than that.

Writing helm manifests allows you to create repeatable deployments with different features and different configurations. It is the tool to manage Kubernetes chaos. It allows for seamless upgrades of the deployments, supports testing, and many more.

Last word

Without the tools listed above the work of KubeOps would be much harder. Of course, many more different tools serve the same functionality. But I use those because of my personal preference. What's yours? What are your most loved tools?

Be sure to checkout my X account x.com/michal__dev for more content.