Setting Up a GitOps Workflow with Argo CD and GitHub Actions

GitOps is gaining increasing popularity these days, and for good reason. The principles of GitOps promote the use of Git repositories as the ultimate source of truth for application infrastructure and configuration. This concept revolves around storing all application-related files and manifests in a Git repository, leveraging it as the central hub for deployment management. By combining GitOps principles with declarative continuous delivery tools like Argo CD, you can significantly improve your deployment workflow and expedite the shipping processes, achieving faster and more efficient results. ...

October 14, 2023 · 9 min · Arsh Sharma

If You're Using Helm, Why Not Give It a Pretty UI As Well?

Helm Dashboard is an open-source project by Komodor that offers a visual and user-friendly way to manage and visualize all the Helm charts installed in your clusters. Instead of using the terminal, you can leverage the Helm Dashboard’s intuitive UI to perform a variety of tasks that make working with Helm a breeze. Here are some of its key features: Visually pleasing chart list: The dashboard presents all the installed charts in an aesthetically pleasing manner. Comprehensive K8s resource view: Get a clear overview of the Kubernetes resources associated with each chart installation. Manifest visibility: Easily access and examine the manifests included in the charts. Chart upgrade notifications and UI execution: Stay informed about available chart upgrades, and perform upgrades directly from the UI. One-click rollback: Effortlessly revert to a previous chart installation with just one click. Manifest diffing: Quickly identify and understand the differences between manifests when upgrading or rolling back to a different version. In addition to these features, Helm Dashboard offers many other handy functionalities, which I will discuss further in the article. To summarize, almost anything you can do via the CLI, you can now accomplish with a few simple clicks in this elegant UI. ...

September 17, 2023 · 5 min · Arsh Sharma

Deploying Your First Microservice to Kubernetes

I have written extensively about different Kubernetes concepts in my previous blogs, but I haven’t covered a proper, step-by-step hands-on guide for getting started with Kubernetes. In this article, my plan is to do exactly that. After all, there’s only so much you can learn by reading without trying things out yourself. We will take a simple microservice-based application, containerize it, and deploy it to a Kubernetes cluster. I will be using Google Cloud for this, but you can use any cloud provider to follow along. Without wasting any more words, let’s get started! ...

May 7, 2023 · 8 min · Arsh Sharma

Getting Started With AWS EC2

In the previous post, we talked briefly about EC2. In this post, we’ll explore it in a bit more detail. We’ll launch an instance and use it to run an nginx web server which will be accessible from anywhere using a URL. So without further ado, let’s get started :) Search for “EC2” in the AWS search bar. From there click the “Launch Instance” button. Now you would see a screen to choose an AMI. AMIs (Amazon Machine Images) are nothing but virtual machine images. For this blog, we’re going to select the “Amazon Linux 2 AMI (HVM), SSD Volume Type” with the x86 option. On the “Instance Type” screen we select the kind of hardware we want to be allocated to our VM. This is basically like choosing the configuration (CPU, RAM, etc) for our computer which would act as the server. Let’s go with “t2.micro” here. From here click on “Review and Launch” and finally on the next screen click on “Launch”. ...

October 14, 2021 · 5 min · Arsh Sharma

Introduction To AWS IaaS

This article is going to introduce you to the Infrastructure as a Service side of AWS. We’ll start from the basics of how accounts in AWS work and cover some fundamentals in this article. Then in the next post, we’re going to do something a bit more hands-on and see EC2 and S3 in action. AWS Accounts? So let’s talk a bit about AWS accounts first. If you just have a username and password for your account then you have what is called a root account. If you were sent a username, password, account id, and/or a special link to log in then you have an IAM user account. ...

October 2, 2021 · 6 min · Arsh Sharma

So What Even Is This Cloud Computing?

Cloud computing is what everybody seems to be talking about these days? But what does it even mean? In this short article, I’ll go over what it is and the different types of cloud deployment and delivery models. What is Cloud Computing? Earlier to host applications you would have to rent or build data centers where you would store the hardware which would run your servers. Cloud computing simply refers to using computing resources on demand without directly managing them. So instead of building data centers and buying hardware to run your apps you simply rent compute power and use that to suit your needs. Who do you rent it from? Let’s get to that later in the cloud delivery models section. ...

September 24, 2021 · 5 min · Arsh Sharma

Using Kyverno To Enforce EKS Best Practices

Hey folks, in this post we’ll see how you can use Kyverno to enforce some best practices for your EKS cluster. For those not familiar, Kyverno is a Kubernetes native policy engine that aims to make your life easy when managing clusters. To know more you can read my previous post on Kyverno where we discuss the project and its internals in detail. With that out of the way, let’s get started! EKS best practices recommend the use of separate IAM roles for different use cases. For example, for dev and prod environments you should prefer to have separate IAM roles which can configure objects in those environments. Now the problem that arises with this is how do you make sure that the IAM role which has permission for the dev environment doesn’t accidentally create objects in the production environment? If you have the roles configured properly it would obviously not allow this to happen but with Kyverno not only can you fool-proof this but also make sure that if someone does try this, then it gets reported. ...

June 21, 2021 · 5 min · Arsh Sharma

Pod Health With Liveness Probes

Kubernetes relies on Probes to determine the health of a Pod container. A probe can be understood simply as a periodical diagnostic performed by the kubelet on the container. In this short article, I’m going to show you a liveness probe in action. Liveness probes are used to check if a Pod is healthy (running as expected) or not. It simply acts as a check for Kubernetes to know when it should restart the container. ...

May 13, 2021 · 3 min · Arsh Sharma

kubectl exec Is So Cool!

I recently learned about kubectl port-forward and kubectl exec, and I was amazed by what simple but cool stuff you could o with just these two commands when getting started with Kubernetes. So that’s what this post is going to be about. Running Our Pod I’m going to use minikube to launch my cluster but feel free to use whatever you like. Once you have your cluster up and running (using minikube start), create a nginx pod using: ...

April 29, 2021 · 4 min · Arsh Sharma