Posts

Integrate Jenkins with Azure Key Vault

Image
Jenkins has been one of the most used CI/CD tools. For every tool which we are using in our daily life, it becomes really challenges when it comes to handling secret information. I know there are lots of tools available provided with PAAS or in house hosting solution. But we need those tools to support integration with different toolsets without many efforts.  In this particular blog, we will be discussing the integration of Jenkins with the  Azure Key Vault . Thanks to all the guys who are continuously working for different communities and spending time to make product more flexible and enhancing the product capabilities. We are going to use Azure Key Vault  plugin for this. There are multiple ways to use this. But in this post, we'll go through the integration and then testing using declarative pipelines. Pre-Requisites- Make sure you have running Jenkins setup You have valid Azure subscription Implementation Steps-      1. Create a...

How to handle packaging in python using __init__.py

Image
Keeping in mind the current situation across the world. I hope everyone is doing good. Please take precautions and stay at home and keep your self busy in whatever way you want to be. I was reading the book "Python for DevOps" and came across the topic "Packaging". In every business, packaging plays a big role while it comes to product distribution.  While it comes to IT software usually, below are the few things which should take care of : Descriptive Versioning  In Python packages, the following two variants are used: major.minor major.minor.micro major - for backward-incompatible changes minor - adds features that are also backward compatible micro - adds backward-compatible bug fixes. The Changelog This is a simple file that keeps track of all the changes we will be doing for each version upgrade. Not going in detail here, coming directly to implementation on how we can handle packaging in python using the "__init__.py"...

Deploy and Scale Kubernetes Application using Spinnaker

Image
Deploy and Scale Kubernetes Application using Spinnaker- In my last post Getting started with Spinnaker , we completed the installation and setup part of spinnaker. In this post, I'll be going through the "Deploying and Scaling application on Kubernetes using spinnaker". In this particular exercise, we'll create a simple "nginx" deployment on kubernetes and expose that as a service. After that we'll see how we can scale up and down the deployment easily from Spinnaker Dashboard itself. Fot this, first make sure we have done port-forwarding for required pods and able to access Spinnaker Dashboard.  Note - Before moving ahead, please make sure that "kubernetes" provider is enabled. You can check this on "Halyard" configuration as below. $ kubectl exec -it  spinnaker-local-spinnake-halyard-0 /bin/bash -n spinnaker $ hal config list | grep -A 37 kubernetes After that click on the Create Application in Applica...

Getting Started with Spinnaker locally using minikube(local Kubernetes)

Image
Before jumping to Installation and setup part, first of all, lets briefly summarize about the "What is Spinnaker" Spinnaker :              Spinnaker is an open-source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.           I am not going in many details about the functionality here but would like to highlight the main architectural component which I think we should know at least before starting playing with this. This will help you in troubleshooting if got stuck in between. So, Spinnaker is composed on multiple components. You will be able to see all these after we complete the setup. List of different components is as below(currently just copy-pasting from the official site)- Deck  is the browser-based UI. Gate  is the API gateway. The Spinnaker UI and all api callers communicate with Spinnaker via Gate. Orca  is the or...

Taints and Tolerations in Kubernetes

Image
              We all know that Kubernetes is powerful orchestration tool in the world of containers. The whole complexity of managing, distributing multiple containers across the cluster is being taken care Kubernetes OOB. In shorts it takes care of all the heavy and complex lifting for us. Since, its K8S who takes care of all distribution and scheduling of pods across different nodes in the cluster. So, what we if we want to run specific pod on specific node only. Luckily we have option to manage this as well. In K8S its called " taint and toleration ". In general terms:         - Taint is the capability of the node which makes node to do not let any pod to be scheduled on it.         - On the other hand, Toleration is another capability makes that particular pod to be tolerated by specific Node. To summarise, Taint and Toleration are used to set restrictions on the what po...