IaC
Structured YAML diffs for Helm Paid Members Public
Helm diffs used to be misleading unified-diff hunks buried in noise - and once an AI review stage started reading them too, that noise started costing tokens and time. Here's how we made this smarter.
Prepending Environment Variables with Kyverno: Finding the Right Approach Paid Members Public
Injecting environment variables into Kubernetes pods with Kyverno requires careful strategy. While `patchStrategicMerge` only appends to arrays, `patchesJson6902` with `add` operation at index `0` successfully prepends variables, preserving existing configurations.
terraform actions - I like hooks and I cannot lie Paid Members Public
Terraform 1.14 beta brings actions - a decent approach to run one shot events on state transitions. Check out this post to see an example and how it can be done already today.
Helm & variable scopes Paid Members Public
When using variables to track state across loop iterations in Helm templates, declare them outside the loop scope or they'll reset on each iteration.
Terraform map expansion - interface ranges Paid Members Public
Expanding value ranges dynamically in terraform can help you to compact your configuration and keep the focus on the values. It takes a few moments to expand the values using regex magic, still it's worth the effort!
Helm's Hidden Quirks: Merging boolean values Paid Members Public
Helm is a powerful tool for manageing Kubernetes applications. Despite its ubiquity in the kubernetes-world, there are some nuances to consider when working with boolean values—especially when merging complex objects.
Ansible - pretty print output Paid Members Public
Sometimes you want to print more or extensive information on ansible output (in this case a terraform plan). This can easily be realised using an stdout callback.
Object attribute defaults on terraform - hello simplicity Paid Members Public
Using terraform's object attributes defaults empowers you to create complex input values that still apply default values on a highly granular level. This post shows an example how to use this.