RSSAmplifier

Blog

Vivek Dhami

I'm a technologist. I write about cloud-native architecture, Kubernetes, security, and the future of technology.

blog.vivekdhami.comRSS feed ↗17 posts

Latest posts

Terraform: Eliminating phantom diffs using ignore_changes and replace_triggered_by

The Problem: Write-Only Fields and Perpetual Diffs A particularly common source of phantom diffs is Azure DevOps service endpoint resources. Passwords and API keys are write-only — the API accepts the

Managing Terraform Phantom Diffs: A Practical Guide

What Are Phantom Diffs? Phantom diffs — also called perpetual diffs or ghost changes — are changes that appear in your terraform plan output every single run, even when you haven't modified any code o

Understanding WASM and WASI: A complete guide

If you've been following the infrastructure and cloud-native space, you've probably heard whispers about WebAssembly (WASM) being the "next big thing" beyond just browser sandboxing. And honestly? The hype isn't entirely unfounded. When you pair WASM...

MicroVMs: the security-first alternative to containers

If you've ever deployed untrusted workloads—think CI/CD runners, serverless functions, or multi-tenant SaaS—you've probably lost sleep over container escape vulnerabilities. Containers share the kernel with the host, and that shared boundary is a con...

Terraform state: The good, the bad, and the ugly

If you've worked with Terraform for more than a day, you've encountered the state file. Maybe you've cursed at it when it locked during a critical deployment. Maybe you've panicked when someone accidentally deleted it. Or maybe—just maybe—you've comm...

Managing Azure DevOps pipeline templates: patterns and best practices

If you've worked with Azure DevOps for any length of time, you've probably noticed that pipeline YAML files have a tendency to sprawl. What starts as a simple build-and-deploy pipeline quickly turns into hundreds of lines of duplicated logic scattere...

Powershell: Custom prompt using oh-my-posh

Install a nerd font from https://www.nerdfonts.com/font-downloads Install oh-my-posh using winget winget install oh-my-posh // Close & reopen powershell window // Check oh-my-posh version oh-my-posh version // Upgrade oh-my-posh using winget wing...

Share WSL rootless Podman instance with Windows

Background Podman Desktop is the easiest way to start using Podman with windows. However currently Podman Desktop creates a new WSL instance with podman and connects windows to it. While it is pretty convenient for most of the users, this still requi...

How Linux networking configuration evolved from ifconfig to systemd

If you've been working with Linux for more than a few years, you've probably noticed that networking configuration has gone through some serious changes. What started as simple text files and a handful of commands has evolved into a complex ecosystem...

Git: Move files from one repo to another with history

Background A lot of times as developers and code maintainers we need to move files/folders between code repos and most of the time we avoid exporting history because of the complexity and issues often faced during the export. However fret not anymore...

Azure Bicep: Pump up your azure deployments

Azure Bicep: Pump up your azure deployments Even though Azure Bicep was announced at Ignite 2020 I was not so keen to try it out because of the preview nature of the cli and my personal preference and past experience with beta phase tools and technol...

Setup a kubernetes cluster on raspberry pi/s using k3s

This blog post will detail the steps for setting up a kubernetes cluster on your raspberry pi/s using k3s. k3s: A brief introduction While it is completely possible to install, manage and run a complete kubernetes distribution (pronounced k8s) on you...

Upgrade WSL/WSL2 Ubuntu version to 20.04 LTS

Its the time of the year again to upgrade Ubuntu version in WSL/WSL2 since the Ubuntu 20.04 LTS came out last week. Please follow along the following steps in your WSL console to upgrade to the new version: Check installed Ubuntu version Take a no...

Kubernetes: Working with multiple contexts

A context in kubernetes defines the current scope under which all the kubectl commands will run. In simple words, it defines the cluster against which all the kubectl commands will execute. The contexts are easy to work with as long as you have a fix...

Git: Sync fork with upstream changes

A forked repository can be synced with the upstream one as follows: Clone the forked repository locally if not already done. git clone https://github.com/OWNER/FORKED-REPOSITORY.git List the remote repository configured for your fork: git remote...

Git: Submodule Init and Update

For a repository with submodules all the submodules can be pulled down locally for the first time using: git submodule update --init --recursive Subsequently, submodules can be updated with remote changes using: git submodule update --recursive --re...

MySQL–Restoring large database on windows

Recently while trying to restore database from a large database backup file I encountered few issues with MySQL. So for reference I am posting the solution steps for resolving these issues on windows : Initiate the restoration process from command p...