CI/CD for GitHub Pages with GitHub Actions

Looks like my blog posts are like Sherlock TV Show episodes, posting once in a while…anyways I’m back now. As you might know, GitHub recently launched GitHub Actions where people can automate workflows like build, test, and deploy code from GitHub. I have started reading docs a little bit, I have to admit, setting up workflows on GitHub Actions is not that hard. I can directly start creating a workflow from available workflow templates in the “Actions” tab. Then I saw the workflow template for “Jekyll Site CI/CD”, which builds the Jekyll site. I got some feeling that I automate my workflow of building and deploying my blog (which currently you are reading) on GitHub Pages. So, Let’s see how I setup CI/CD ...

February 21, 2020 · 3 min · Veerendra K

Kubernetes-The Hard Way With Docker & Flannel (Part 1)

Hallo alle zusammen, after a long time I’m writing this blog and I come with an interesting and long post I know what you are thinking, I steal Kelsey Hightower’s Kubernetes The Hard Way tutorial, but hey!, I did some research and try to fit K8s cluster(Multi-Master!) in a laptop with Docker as ‘CRI’ and Flannel as ‘CNI’. This blog post follows Kelsey Hightower’s Kubernetes The Hard Way, I highly recommend go through his repo. I’m writing this blog post to keep it as a reference for me and share it with other people who want to try it. So, feel free to correct me if there are any mistakes and ping me for any queries. This series is divided into 3 parts and all configuration/scripts are available in my github repo. Well, that has been said, let’s start building the cluster. ...

January 17, 2019 · 11 min · Veerendra K

Kubernetes-The Hard Way With Docker & Flannel (Part 2)

Welcome back to “Kubernetes-The Hard Way With Docker & Flannel” series part 2. In previous post we have provisioned compute resources, generated certificates and kubeconfig files. In this post, we will install and configure controller nodes 6. Bootstrapping the etcd Cluster etcd is a consistent and highly-available key value storage DB. Kubernetes stores all cluster data in etcd via api-server. In this section, we will install and configure etcd on all controller nodes. ...

January 17, 2019 · 6 min · Veerendra K

Kubernetes-The Hard Way With Docker & Flannel (Part 3)

Welcome to the final part of “Kubernetes-The Hard Way With Docker & Flannel” series. In part-1, we discussed our cluster architecture, provisioned compute resources, generated certificates and kubeconfig. In part-2, we have bootstrapped controller nodes. In this post, we will bootstrap worker nodes and at the end, perform a smoke test on the cluster 9. Bootstrapping the Kubernetes Worker Nodes As the title of this post “Kubernetes The Hard Way With Docker & Flannel”, what we are going to do now is different from Kelsey Hightower’s Kubernetes The Hard Way tutorial i.e. container runtime interface is docker instead of containerd ...

January 17, 2019 · 5 min · Veerendra K

SSL Configuration for Kubernetes External LoadBalancer - [AWS ELB]

As we all know, enabling HTTPS to endpoints/websites is essential now-a-days. When it comes to Kubernetes, when we expose a service as LoadBalancer, the cloud provider doesn’t provide an HTTPS mechanism for the endpoint by default. If we look at the K8s setup that is deployed on AWS(For example kops), there is an actual ELB(Elastic Load Balancer) sits in front of K8s service and load balance the traffic. AWS’s ELB is not TLS enabled by default. With help of aws-cli, we can deploy certificates(self-signed) on the load balancer and make the endpoint secure. ...

May 29, 2018 · 2 min · Veerendra K

Linux pseudo files & cheat sheet

*A blog post that I’m actively collecting “Linux pseudo files info, cheat sheets and tips” Tips & Tricks How to force a command to return exit code 0 even if the command exited non-zero? How to install dependencies of .deb automatically which failed to install previously? Example Solution: $ dpkg -i r-base-core_3.3.3-1trusty0_amd64.deb || : \ && apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" -f install -y \ How to traverse directories in shell script? ...

April 14, 2018 · 3 min · Veerendra K

Build and Install Wireshark

Wireshark is a great tool for analyzing traffic, whether it could be live traffic on the interface or the .cap file. The tool enables different types of filtering on packets like follow a stream, filter by protocol and IP, etc In order to install the latest version of Wireshark on Linux, one should build and install it from the source. Sometimes, building from a source is difficult because we have to hunt down the dependencies. That’s what I did for this software. ...

March 30, 2018 · 2 min · Veerendra K

Open vSwitch installation on Redhat7 OS

Long back before I worked on Openshift which is really a great container platform tool from Redhat. But installation is not as simple as Kubernetes(relatively). One of the prerequisites for the cluster deployment is Open vSwitch. Now let’s see how to install Open vSwitch v2.6.1 in RedHat7 step by step Install dependencies $ sudo yum install gcc make python-devel openssl-devel \ kernel-devel graphviz kernel-debug-devel \ autoconf automake rpm-build redhat-rpm-config \ libtool Grab OpenvSwitch source from http://www.openvswitch.org/download/ ...

February 28, 2018 · 2 min · Veerendra K

Windows OS metrics collection with Telegraf

Ok, getting metrics(CPU, Memory & Network) from Windows OS is completely different from Linux. In Linux, people can easily develop scripts to get system metrics by simply reading /proc pseudo files. In fact, there are so many open source tools to do this in Linux, like tcollector which is my favourite. Now, Let’s look at this Telegraf tool and what it does. I found Telegraf tool is a really simple, elegant way to collect Windows OS metrics and lightweight too, unlike others which some are paid and crappy. This tool doesn’t provide any wizard installation to set up, but one has to run a command in Windows Powershell to install it as Windows service. It supports multiple TSDB backend storage like Graphite, OpenTSDB, etc but I have tested only with OpenTSDB. ...

February 27, 2018 · 2 min · Veerendra K

KVM Hypervisor Cheat Sheets

1. Install Packages Check system is capable of running KVM by running kvm-ok $ apt-get install qemu-kvm qemu-system libvirt-bin bridge-utils virt-manager -y Create KVM/Qemu Hard Disk File $ qemu-img create -f raw <name>.img <Size> ## Example $ qemu-img create -f raw ubuntu14-HD.img 10G Then copy the HD file to /var/lib/libvirt/images/ Launch VM with virt-install virt-install --name spinnaker \ --ram 11096 \ --vcpus=4 \ --os-type linux \ --os-variant=ubuntutrusty \ --accelerate \ --nographics -v \ --disk path=/var/lib/libvirt/images/ubuntu14-HD.img,size=8 \ --extra-args "console=ttyS0" \ --location /opt/ubuntu14.iso --force \ --network bridge:virbr0 Explanation ...

January 27, 2018 · 2 min · Veerendra K