A pragmatic article to help you plan and programmatically upgrade self-managed worker nodes using k8s and aws golang api

Image courtesy Flat Icons

This post is intended to help you plan and automate the upgrade of self-managed worker nodes in an AWS EKS cluster.

Kubernetes community releases a new minor version at a rapid pace of almost every 3 months. If you are managing a K8s based SaaS environment or have a need to keep your environment up to date, it's better to automate the upgrade process.

In simple terms, upgrading an EKS cluster is a two-step process. First, you upgrade your API server(aka…


A simple example of using Go module to resolve package dependencies

Image courtesy Flat Icons

This post will show you an example of how Go modules bring simplicity to package management in golang. Go modules were first introduced in Go version 1.11.

When developing go code with multiple packages, if your source files are not in $GOPATH/src directory, you may see below error while running go build

[~/code/medium/mainapp] $ go build main.go 
main.go:8:2: package raindrops is not in GOROOT (/usr/local/Cellar/go/1.14.2_1/libexec/src/raindrops)

This is where Go modules come to the rescue. It lets you create a go.mod file which can be created at the root of…


A summary of CloudFormation concepts and experimental learnings from the field to help you quickly start building basic, nested or cross-reference stacks.

This article will walk you through the basic building blocks of AWS CloudFormation to simplify your AWS infrastructure provisioning and management requirements by writing meaningful templates.

It will also highlight some key concepts and provide important guidelines to help you write robust, reusable and error-free CloudFormation code.

CloudFormation Template Basics:

AWS CloudFormation template lets you declare the infrastructure resources and their settings in a file to achieve your Infrastructure as code goals. A good understanding of templates structure is the first important step towards creating a meaningful template. You can write the templates in either JSON or YAML format. …


How to not lose special characters in passwords during code transit. An example use case with AWS CloudFormation helper script.

Image courtesy Flat Icons

A common approach to deal with special characters in passwords is to escape them by using escape characters to keep the passwords in their original form. But, there could be situations where you are unable to properly escape the special characters and may end up in having an incorrect password. This is true especially in cases where the password is being further passed to other pieces of code.

This post is a result of a recent situation, where a domain admin password was being sent to AWS CloudFormation as a parameter. AWS CloudFormation was further passing the password as a…


This article provides a CloudFormation template which creates an AWS managed Microsoft active directory and modifies its security group rules to accept traffic from the restricted sources of your choice.

This article assumes that you are familiar with AWS Managed Microsoft AD and CloudFormation. You can refer following AWS official documentation to get further insight about AWS MS AD and CloudFormation custom resources.

AWS CloudFormation custom resource

AWS Managed Microsoft AD official documentation

Why Modify Default Security Group Rules?

When you deploy a new AWS managed Microsoft AD in your AWS account, AWS automatically creates a security group and attaches it to your directory’s domain controller…


This article provides a template to set a custom route table as the default main route table in your VPC by creating an AWS lambda backed custom resource in your CloudFormation template.

This article assumes that you are familiar with AWS CloudFormation basics and also understand the role of a CloudFormation custom resource. Please refer AWS Official documentation to know more about CloudFormation custom resources.

What are we trying to solve?

When you create a new VPC in your AWS account, it automatically creates a default route table which is also the main route table. You can view this main route table in AWS VPC console…


Image credit: flaticon.com

This article will guide you through the steps of performing migration of your data from MongoDB to Apache CouchDB using a simple python script.

Migrating data from one database to another database can be challenging due to multiple reasons including basic schema and design differences between the source and target databases.

Both MongoDB and CouchDB are document databases, which store a set of independent JSON like documents. This article assumes that you have a basic understanding of these two databases and are familiar with how data is stored inside these databases. Below table provides a high-level comparison between the two…


Image courtesy Flat Icons

This article will guide you through the process of setting up a 3 node Apache CouchDB cluster on Kubernetes. It will be deployed as a Kubernetes statefulset of 3 pods, where each pod will receive a single PersistentVolume from NFS storage.

This article assumes that you have a basic understanding of Kubernetes and have access to a working Kubernetes cluster.

Before you decide to follow below steps, familiarize yourself with basics of CouchDB installation and cluster configuration documentation for Unix-like systems at docs.couchdb.org

Design Diagram

Below diagram will give you a quick glimpse of the various components involved in the deployment. …

Kailash Chander

FOSS enthusiast

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store