I know I spoke out against AI in the past, and I still think those thoughts are warranted. That’s why I would like to write down how we actually should use AI to do the things we want to do without losing our critical thinking in the process. Here’s my flow… How to use LLMs responsibly There always needs to be feedback. Don’t use it to think, use it to ask questions,…
Adventures in The Forge - Part 1 And so it begins. The ship coasted out of the gate breaking hard so as to not run into an ambush blind. The gravimetric dampeners worked overtime on cancelling out the Gs of the break. The robot gently, but firmly held the baby in place. His final and ultimate task whirled around in his tiny mechanical brain. Protect him at all costs. The Forge. A promised land.…
Choose your own slide adventure I got bored of presentations that just drone on and on about something that barely interests me. I wanted something more interactive. I’m well aware about Prezi and slido, but they both lack certain features I needed and are also not free. I believe in open source, and I believe in helping humanity go further and be more successful. So what did I create?…
CTY now supports using a custom CSS for the HTML output Hey folks. My tool, cty 1 now supports adding custom CSS to the HTML output. In an effort to prevent cross-site scripting and other CSS nasties the CSS is pretty limited, sanitized and escaped. Using --css-file now, it’s possible to give it a CSS file that will overwrite everything inside the main HTML file. This allows you to add any…
Updated Google OAuth Go Sample Hello. I’ve recently updated my Google OAuth Go sample application 1 to follow modern standards and practices. The update brings several improvements including a cleaner UI, better error handling, and more robust authentication flows. What’s New New interface for the login side: Nicer errors: Welcome message: Battle arena: And lastly, logout: Technical…
Tilt.dev with server-side apply Hey folks. This will be a quick one. Recently, ESO reached the CRD limit of 256KB which means that every time there is an apply of the CRDs it needs to be a Server Side Apply . This isn’t something new. However, Tilt doesn’t really have a clear documentation in this case. And since ESO is using Tilt, or at least I’m using Tilt with ESO, I also had…
Re: My AI Skeptic Friends Are All Nuts There was a post recently that was dissing AI Skeptics . While the post is funny at times, I feel like it’s absolutely and completely missing the point of the skepticism. Or at least I feel that it is glossing over some massive pain points of said skepticism. Let’s go over some of the points and the things that stuck out to me as problematic.
MFA Generator in External Secrets Operator Today, I’m happy to announce that external-secrets-operator will have an MFA / TOTP token generator once this PR is merged and released. This opens up some exciting new features. For example, imagine having an AWS session that requires MFA, or you have an Azure flow that requires a TOTP token. Now, you can achieve that using automation and an MFA…
In-depth look at CRDs and how they work under the hood Today, we are going to walk through how a CRD looks like, what it does, what it contains, how it works and how it alters Kubernetes. The design, the api extension and links and snippets to the code ( accurate at the time of writing ) where it happens. Let’s dive in. What are CRDs CRDs as described in the official Kubernetes Documentation…
CNCF Project Showcases Hi there, hello. Long time no see. I was very busy these past months. I thought about a series though that I would like to lead. Every week or month or so, I’m going to randomly pick a CNCF project for this CSV - CNCF Projects . I will explore it and write about it. See what it does, why, how, and for what reason. I know some folks that already do this, but I…
External Secrets Operator template rendering tool Once this 1 pull request is merged, ESO will be extended with a tool that has the ability to render templates in an object. Let’s step back a little… what are templates even? But… what is ESO even? Okay, so… ESO is external-secrets-operator 2 . It’s Kubernetes operator than can sync secrets between an external…
Missing out of jobs because of LeetCode At the end of the last year, my previous workplace ( Weaveworks ) went bankrupt. I found myself without a job. I didn’t have to interview for a long time and I certainly wasn’t planning on it any time soon. I enjoyed my work. Thus, I started to learn a bit because I forgot how to interview. I refreshed my knowledge on LeetCode, I did some…
Notetaking with ADHD After several years, I finally have my official diagnosis. ADHD. I had it as a kid as well, in hindsight, it was pretty fucking obvious. I could reminisce about those days for a long time. How things now fit together, how everything suddenly fell into place. Why the things happened to me as they did and how I was always always in the middle of every shit-storm.
Introducing ORAS into a Library This post talks about using ORAS as a library to interact with OCI repositories. First and foremost I like to keep things simple. I was seeing basic usages around the project I’m working in and some common behaviour that started to emerge. Looking at that behaviour I drawn a preliminary interface. This interface is also something similar that docker remote…
This year I want to do somerhinf different. For the whole year I’ll attempt to write a blogpost everyday. I might miss a day during holiday or being sick or something but the point is that by the end of the year I should have at least 365 blog posts. I also want them to be somewhat meaningful so be about some kind of technology or discovery or whatever. So posts like ‘This is a…
Added Suggest Edit to Post link to all my posts I added “Suggest edit” to all my posts in a way to open my blob to the community. I accept all kinds of contriubtions be they simple grammar fixes or more accurate descriptions of something. Feel free to suggest changes. I’m also toying with the idea of accepting completely new content but that remains to be seen. Thank you, and…
Script to remove GitHub registry images Hey, though I quickly just share a script to get rid of packages you don’t want anymore from your GitHub registry. #!/bin/bash set -e # Variables OWNER = $1 # Replace with your GitHub username or organization name PACKAGE_GLOB = $2 # Glob pattern for package names passed as an argument (e.g., "package*" to match all) # makes sure that important…
How I track tasks with Obsidian Hello. This will be a run-down on how I track tasks and projects and long-term things, like reading a book, tracking a project or traveling using the PARA method. Let’s get to it! Task tracking queue The way I track tasks is through a queuing system. To not get overloaded by tasks, I just simply put the next task into the queue and take out the top recent if…
Update your CRDs with confidence Hello. I would like to write about a release for crd-to-sample-yaml 1 . It’s the release version v0.8.0 2 . This version brings with it a feature to test the validity of your CRD changes. It means that if you change your CRD it will test if the changes do not break working samples of that version. This is achieved by a helm unittest type of YAML based test…
Using cert-manager as a subchart Hello. In today’s post, I would like to show how to set up cert-manager as a subchart. Not only that, but also, how to add a Job to make sure that cert-manager is installed and its webhook is up and running so it can process any Issuers that are going to be applied with your own chart. Let’s get to it. Defining a subchart To define a subchart, simply…
Hello. Today’s will be a quick post. Everyone knows and loves/hates functional options 1 in Go. The biggest gripe people get with it is, that the options aren’t discoverable and that there is no IDE support for nicely auto-completing options. My thought about this was that, what if we would just hang it on a struct? Let’s see how that looks. Consider this normal server builder…
Hello, Dear Reader! Settle in for a long one this time. I would like to write about my journey from being a Tester back in 2004 to being a software engineer today ( 2024 ). A mere 20 year long journey. I’m going to write down how I got this far, what it took, the sacrifices, fears, doubts and all the things in between. Let’s get started. The early days Around 2002, I became a student…
Hello! Just wanted to give an update to my crd-to-sample-yaml tool. It, now, supports creating a standalone HTML output. Why, you may ask? Well, now you can host the generated content as a static page on your website. That’s pretty handy. Here is a sample output: Go and get it while it’s hot in version v0.4.0 . That’s all. Thanks for reading!
Generic dig for map key using typed parameters Hello! I was fiddling with a way of getting out values from a map that is of format map[string]any . But I wanted my type safety as well. This was coming from digging out keys from a Metadata field. The metadata was in a JSON format. This is what I came up with: / FetchValueFromMetadata fetches a key from a metadata if it exists . It will recursively…
CRD to YAML as WASM website A while ago, I wrote about Generating Sample YAML files from CRDs . It’s a tool I created that lives here . It has a front-end service as well for convenience. I wrote it in a traditional client-server manner. It’s running from a Docker Swarm container. But, as I was thinking about it, nothing in this service requires interaction with a server. It gets some…
Self-Signed locally trusted certificates with cert-manager We are going to discuss how to set up a Kubernetes environment where components can run using HTTPS without pain. Premise Usually, people either generate certificates outside the cluster using either openssl, or mkcert, then mount them in or use those as seeds for further generation. This poses a number of problems during testing and…
Diff check and manifest generation GitHub Actions For Go projects it’s crucial that you don’t forget to run go mod tidy from time to time. Combine that with a project that includes Kubernetes controllers and the other thing people tend to forget is running make manifest && make generate . To check for these I added a small GitHub action that looks like this: name : Check for diff after…
Digital and analog notes together This fight is as old as time itself. Okay, maybe not that old. But as soon as viable digital note-taking tools appeared it was on . Since then, many solutions that live together have appeared. PKM tools like Second Brain running hand-in-hand with Zettelkasten or BuJo have opened my eyes to combining them in a way that makes the outcome more powerful than each…
Adding a certificate to a GitHub runner Imagine having a project where you have a server that you would like to run with TLS. Let’s say, you want to run a Docker registry in a cluster using TLS. You need the generated certificate’s root certificate in the trust store of the GitHub action runner. This is simple with mkcert . The action is simple: name : tests on : pull_request :…
Hello dear reader. I switched to a new theme that has Dark Mode. I’m hoping nothing changed regarding the RSS functionality. I removed the comments because I rarely used them. Also disabled any sort of tracking. Enjoy, Gergely.
Hello dear reader. I switched to a new theme that has Dark Mode. I’m hoping nothing changed regarding the RSS functionality. I removed the comments because I rarely used them. Also disabled any sort of tracking. Enjoy, Gergely.
Welcome dear reader. When last we met, we talked a lot about setting up Tilt for rapid controller development. Now, let’s see how powerful Tilt can be once we bring it together with Kubernetes’ e2e-framework . Controller E2E Framework I’d like to present my controller-e2e-framework which brings Tilt and e2e-framework together to easily write and run tests for controllers that…
Welcome dear reader. Today, we are going to dive into how to use Tilt to speed up the feedback loop of developing a Kubernetes controller. We are going to do that using an open-source project called OCM which has a controller called ocm-controller . I’m going to walk through the following process: researching tilt what it could do for me understanding the Tilt file trivial mapping of the…
You can see, I wasn’t able to decide on a title. That’s because I wanted to express more than a “How to get started with Journaling” kind of vibe. There are a lot of posts about that already. Rather, this post depicts my struggle to get into this habit. TL;DR It turned out that it took way too long to get into writing a simple entry with too many steps. Taking out a…
Hello. This one is a quick update. Just a showcase really. I wrote a tool to generate a sample YAML file from a CRD. Given a CRD like this one, it would output a generate yaml sample like this: apiVersion : infrastructure.cluster.x-k8s.io/v1beta1 kind : AWSCluster metadata : {} spec : additionalTags : {} bastion : allowedCIDRBlocks : [ "string" ] ami : string disableIngressRules : true enabled :…
Hello! I’ve been working on something extensive these days. Like my Grokking Algorithms summary, I now moved on to read Common-Sense Guide to Data Structures and Algorithms . As with Grokking, I created a Go based repo and added notes for each chapter. The repo can be located here . Enjoy, and thanks for reading. Gergely.
How to contribute to a new repository Hello Dear readers. Today, I’m going to walk you through a process of contributing into a new repository. If you are new to Go development and would like to contribute somewhere but are at a loss in large repositories, this post will be for you. I selected the top repository in trending Go today. Which is istio . I think that’s sufficiently large…
Hacking on CAPA - The journey of implementing a nontrivial feature in a barely known codebase Hello Dear readers. Today, I would like to write about a project I’ve been working on these past months or so. This is a longer story and hopefully an interesting one to read. I’m going to write about the journey I took while trying to implement IPv6 based Kubernetes cluster for CAPA and EKS.…
Hello Dear readers. Today, I would like to write about a small pet project of mine called Dependabot Bundler . We’ve all been here: You would like to review these individually, of course, however, having to individually merge them is quite the pain. Isn’t it a lot better to do this instead? A lot nicer and more comfortable, isn’t it? This is done by running dependabot-bundler…
Hello Dear readers. Today’s reader’s digest comes with a repo and some code too! Let’s dive in. Reader’s Digest - January Immune Immune is an absolutely fabulous book. It’s amazing and in time of this pandemic a healthy read to boot. I love biology, but never went too deep into it. This book fascinated me with its colorful images, the style of Kurzgesagt story telling…
Hello Dear readers. Today, I would like to write about a project design pattern I’ve been using successfully over the past years for various projects. It has many variations and it has some design patterns that are commonly found in the wild, so there is nothing really special about it. Let’s begin. Providers Pattern What is this pattern anyways? It’s a pattern I learned while…
Advent Of Code - Day 12 - Updated A comment from one of my readers prompted me to revise my solution on this trying to do part 2. The suggestions was that instead of using a struct as seen, use int and keep track of the count for small caves that way. I started to do that but got into various problems along the way when I got frustrated with my code, deleted the whole thing and begun again. But…
Advent Of Code - Day 15 Today, again, we open up Red Blob Games . It is a great source of information and descriptions. Especially, since this scenario is right up Red Blob’s ally. We need some weighted path finding. And Red Blob has a lovely post on that using the ever famous Dijkstra algorithm with a Priority Queue. Day 15 - Part 1 Let’s get to it. After refreshing my memory about…
Advent Of Code - Day 14 Now we have to do some chemistry. Santa is pretty cool this way. They have a lot of skills mastered and read manuals like an expert. But this also means that manuals are always faulty. But Santa manages to work around these problems rather well. Day 14 - Part 1 So, by reading the description and looking at the outcome, that a string only after 5 iterations will be this big,…
Advent Of Code - Day 13 This one was a lot of fun! Matrix folding was a bit fiddly but nothing too serious… Day13 - Part 1 By solving this part, I actually solved both parts. I had to butcher it to not solve both parts because I already dealt with folding both ways. First, we parse our input. We read out both the folding and the numbers first for easy handling later:
Advent Of Code - Day 12 EDIT : I revisited this problem and completely revised my solution to it: Day 12 Updated This one is a bit different from our little BFS walk the other day. I didn’t quite remember how DFS works, so I looked at the Wikipedia a bit. Then I remembered that I implemented this previously at some point in a later year. Disclaimer : I didn’t manage to finish part 2.…
Advent Of Code - Day 11 Today was an easier one again. It’s been a while since I last did some recursion anyway. At least, that’s how I solved this. I’m pretty sure my solution isn’t the most efficient one, but at least it’s working and it’s not horrible. Day 11 - Part 1 We have some number tracking to do again. This time, instead of fishes, we find ourself an…
Advent Of Code - Day 10 Again, a bit of breathing time with an easier one. Although, it can be difficult, if you go down the path of trying to do it via recursion. Day 10 - Part 1 We have to match brackets. There can be a bit of a hassle if you go off on the wrong foot and try to implement it using recursion. But that works perfectly fine as well. But, there is a more elegant solution in which we…