Scaling cluster upgrades for kubernetes

This post is more of a continuation of the talk I gave over at kubernetes bangalore k8s september 2022 meetup. Here are the slides, which you can take a peek over, to complement this post, if you would like to go through it before reading further. Context I will not repeat the content which is already there in the slides. Will also update this post with the talk link when the talk gets uploaded. But I do want to delve over into the idea of how I feel I would attempt to structure the upgrades next. This post is more on the infrastructure upgrade complexities arising from when managing double digit or more k8s clusters. ...

September 26, 2022 · 5 min · Tasdik Rahman

Musings with client-go of k8s

This post mostly is for documentary purposes for myself, about a few things which I ended up noticing while using client-go as I used it for deliveryhero/k8s-cluster-upgrade-tool, which used the out-cluster client configuration, a couple of things are specific to that setup, like client init, but other things like testing interactions via client-go are more generic. Initialization of the config client-go in itself, shows a couple of example of client init here, pasting the snippet here for context ...

September 22, 2022 · 6 min · Tasdik Rahman

Moving over to www.tasdikrahman.com from tasdikrahman.me

I have been writing over at this blog since mid 2015 and not much has changed over these years on this blog, the same theme, the same static website generater, the same color scheme. Why did I end up moving? The .me domain name, from what I could gather, the registry which is operating it has access to it only till 2023, not that I am anticipating anything out of the blue, but I felt it just makes sense long term to move to .com. ...

September 17, 2022 · 2 min · Tasdik Rahman

Stubbing and few other testing tidbits for python

It’s been sometime since I wrote some python, and ended doing a bit of testing for a couple of routines which I ended up implementing. This post is more about me just condensing those ideas for python and how to do it in python, but the ideas are also a carryover from my other testing experiences, while using other languages and how my ideas for testing have progressed over time comparing some testing which I had done in some projects some years back. You can find a couple of more posts under https://www.tasdikrahman.com/blog/tag/testing/ where I have delved more into these topics. ...

April 15, 2022 · 7 min · Tasdik Rahman

spf13/cobra not respecting mandatory flags as part of Prerun

Just a continuation of the tweet, adding into small snippets for context. Came across this issue where spf13/cobra would not work for mandatory flags set, when PreRun is set for a command while building a cli tool https://t.co/GmULRFrFfm (1/n) — Tasdik Rahman (@tasdikrahman) February 28, 2022 Context When you have both the PreRun and Run directives, and the mandatory flag present, which you expect to run before the PreRun directives mentioned, it will not be respected. This post is just a small nudge to prevent someone from trying to achieve the same as the same hasn’t been documented on cobra.dev side so far (in case nothing has been missed) ...

February 28, 2022 · 3 min · Tasdik Rahman

Evolution of support for infrastructure teams

Context As time has progressed, I have been part of teams of different sizes in terms of org size as well as the team sizes which I have been part of. This post is a conglomeration of the ideas I have picked up, things which have worked out/which haven’t and mental models developed as being a part of such infrastructure teams and growing with them. Another thing noticed over time, would be the amount of adhoc work being slightly higher than other engineering teams out there, hence the difference in structure on how to handle it as we will see over the course of this post. ...

February 21, 2022 · 8 min · Tasdik Rahman

Building the VM creation API for the org

Over the years, there have been a lot of changes in the way, people create their virtual machines in their cloud environment. At a very primitive level, one would simply go about doing it via the cloud provider console. A couple of clicks and lo and behold. At a larger scale, people end up using automation to create these Virtual machines in the way they want them to be, given the manual nature of work would just start becoming a bottleneck in scaling quickly when required otherwise. ...

June 20, 2021 · 7 min · Tasdik Rahman

Handling language stack deprecations: Part 2: Container infrastructure

Given the number of language stacks which different product teams end up using inside the org, variations come, in the form of different versions being used, or different versions of dependent libraries coming in. This combination will quickly lead up to a whole set of container image variations for a particular language, crossed with operating system versions. What is the problem then? Tracking what is being used by different product teams and their services arises when we would want to know what infrastructure combination is being used by different services. Tracking this piece of information is paramount for a couple of reasons for the central infrastructure team. ...

June 15, 2021 · 5 min · Tasdik Rahman

Revamping Vesemir: our virtual machine deployment service

This is a continuation of the post, which details into the working of vesemir and how it goes about introducing changeset. Give it a read before continuing reading this, to allow you to gather more context on the what and the why. While this post will focus more more on how we went on with revamping vesemir for increasing it’s reliability, maintainability and modernizing it. Continuing the thread around how we did the same for Vesemir. (1/n) https://t.co/Xol0uRraJv ...

June 12, 2021 · 9 min · Tasdik Rahman

Vesemir: Our virtual machine deployment service

This post is a continuation of the tweet here The build and deployment pipeline for each org will be different in some way or the other, given each co will have it’s own requirements. This thread talks a bit about our virtual machine deployment pipeline (1/n) — Tasdik Rahman (@tasdikrahman) June 10, 2021 This was also cross posted originally for the gojek tech blog https://www.gojek.io/blog/introducing-vesemir-gojeks-virtual-machine-deployment-service The build and deployment pipeline for each org will be different in some way or the other, given each co will have it’s own requirements. Even in my last org, the way our team enabled other teams to ship code/config changes, was pretty different from the way we do it in my current org. ...

June 10, 2021 · 6 min · Tasdik Rahman