I use Ansible to manage my whole OS setup. I have a playbook that installs all the software I need, sets up my dotfiles, and configures my system. The playbook can be run on a fresh installation of my OS …
Most Popular Blog Tags
Automating OS Go Binary Installation and Management with Ansible
3 min read
I use Ansible to manage my whole OS setup. I have a playbook that installs all the software I need, sets up my dotfiles, and configures my system. The playbook can be run on a fresh installation of my OS …
Comprehensive Kubernetes Autoscaling Monitoring with Prometheus and Grafana
7 min read
The Kubernetes-mixin is a popular resource for providing excellent dashboards and alerts for monitoring Kubernetes clusters. However, it lacks comprehensive support for autoscaling components such as Pod Disruption Budgets (PDB), Horizontal and Vertical Pod Autoscalers (HPA, VPA), Karpenter, and the …
Mocking ASGI Scope in WSGI Requests when Testing Django Async Views
3 min read
Django channels are great for asynchronous views, but they can be a headache to test. This is due to the incompatibility with database transactions and all the side effects that the incompatibility produces. For example, the common pattern of rolling …
Configuring VPA to Use Historical Metrics for Recommendations and Expose Them in Kube-state-metrics
4 min read
The Vertical Pod Autoscaler(VPA) can manage both your pods' resource requests but also recommend what the limits and requests for a pod should be. Recently, the kube-state-metrics project removed built-in support for VPA recommendation metrics, which made the VPA require …
Custom Python Logging For Scrapy
3 min read
Scrapy is a great web scraping framework, but it lacks a good logging setup. In this short blog post, I'll show you how to use Structlog with Scrapy.
Ingress-Nginx Monitoring with Prometheus and Grafana
4 min read
Ingress-nginx provides an easy integration with Prometheus for monitoring. However, it can be challenging to get started with monitoring Ingress-nginx and creating dashboards and alerts. Therefore, I've created a monitoring mixin for Ingress-nginx which will provide Prometheus alerts and Grafana …
Deploying a Django Channels ASGI Server to Kubernetes
6 min read
Django channels is great for adding support of various network protocols as WebSockets, chat protocols, IoT protocols and other. It's a great way to add real-time functionality to your Django application. To use channels however, requires you to deploy an …
Adding a Shell to the Django Admin
3 min read
Django's admin is an amazing batteries-included addition to the Django framework. It's a great tool for managing your data, and it is easily extendable and customizable. The same goes for Django's ./manage.py shell
command. If we were to combine these …
Sharing Development Secrets with the Team using Vault
4 min read
My most recent projects have consisted of using a microservice architecture and multiple third party services (analytics, events etc.). For better or worse, this seems to be getting more popular, even for smaller companies and startups. Local development becomes more …
ArgoCD Monitoring with Prometheus and Grafana
5 min read
ArgoCD has by default support for notifying when an Application does not have the desired status through triggers. For example, when an application becomes OutOfSync
or Unhealthy
, a notification is sent to your configured notification service (e.g. Slack). This was …