RSSAmplifier

Blog

Riccardo Padovani

rpadovani.comRSS feed ↗25 posts

Latest posts

Kubernetes doesn't care about your uptime

It's 3:00 AM. A node in your production cluster has gone dark. You wait for the Kubernetes scheduler to do its magic: to recognize the loss and spin up your database elsewhere. But nothing happens. Why?

On the importance of teachability

Internet is full of posts, video, and instructions on how to give great feedback. Way less discuss about how to receive feedback in the right way, and get the most value out of it.

How Kubernetes picks which pods to delete during scale-in

Have you ever wondered how K8s choose which pods to delete when a deployment is scaled down? Given it is not documented, I dived in the source code to learn.

Moving to HyvorBlogs

A refresh of the blog was long due, and I finally moved to a proper blogging platform. Let's take a look at the how and why

No heroes needed

Being a hero is nice, isn't it? You work hard, single-handedly save the day, and your teammates are eternally grateful to you. However, such behavior is, in fact, highly problematic. Let's see why, and what to do instead.

How to prepare for the Certified Kubernetes Administrator (CKA) exam

The Certified Kubernetes Administrator (CKA) exam tests your ability to operate a Kubernetes (K8s) cluster and your knowledge of how to run jobs over a cluster. I am sharing here some tips&tricks on how to pass it.

Why K8s deployments need `matchLabels` keyword

Kubernetes deployment want you to specify the `matchLabel` field. But why? It should be able to infer it on its own. Let's deep dive and understand how it works.

Managing Helm CRDs with Terraform

Introducing a Terraform module to manage Helm Custom Resource Definitions (CRDs) through code, to being able to manage Kubernetes deployments completely through GitOps.

Why you should contribute to GitLab

Contributing to any open-source project is a great way to spend a few hours each month. I started more than 10 years ago, and it has ultimately shaped my career in ways I couldn’t have imagined!

Managing Rust crates in private Git repositories

Rust is all hot these days, and it is indeed a nice language to work with. Let's take a look at a small challenge: how to host private crates in the form of Git repositories, making them easily available both to developers and CI/CD systems.

The inconsistencies of AWS EKS IAM permissions

AWS EKS is a remarkable product: it manages Kubernetes for you, letting you focussing on creating and deploying applications. However, if you want to manage permissions accordingly to the shared responsibility model, you are in for some wild rides.

How to make Terraform waiting for cloud-init to finish on EC2 without SSH

Terraform is a powerful tool, but it doesn't have a way to wait for EC2 instances to be ready, instead of just created. We will see how to use AWS SSM to do just that.

Adding comments to the blog

After years of blogging, I’ve finally chosen to add a comment system, including reactions, to this blog.

Reading env variables from a Tauri App

“Build smaller, faster, and more secure desktop applications with a web frontend” is the promise made by Tauri. And indeed, it is a great Electron replacement.

Integrating JetBrains Qodana with GitLab pipelines

JetBrains Qodana is a new product, still in early access, that brings the “Smarts” of JetBrains IDEs into your CI pipeline, and it can be easily integrated in GitLab.

Fail a Gitlab pipeline when code coverage decreases

Automatic and continuous testing is a fundamental part of today’s development cycle. Given a Gitlab pipeline that runs for each commit, we should enforce not only all tests are passing, but also that a sufficient number of them are present.

Create a PyTorch Docker image ready for production

Given a PyTorch model, how should we put it in a Docker image, with all the related dependencies, ready to be deployed?

Introducing Daintree.app: an opensource alternative implementation of the AWS console.

Daintree is a website to manage some of your AWS resources: since this is an early preview, at the moment, it supports a subset of Networking, EC2, SQS, and SNS. Daintree does not aim to replace the original console, but would like to improve the user experience

Leveraging AWS Lambda to notify users about their old access keys

I love to spend time trying to automatize out boring part of my job. One of these boring side is remembering people to rotate AWS Access Keys, as suggested also by AWS in their best practices.

My year on HackerOne

This year I spent some of my free time doing bug bounties over HackerOne. Here a summary of what I did, how did it go, and what I want to do in the future.

Exploring Gitlab Visual Reviews

With Visual Reviews, you can provide a feedback form to your Review Apps so that reviewers can post comments directly from the app back to the merge request that spawned the Review App.

Using AWS Textract in an automatic fashion with AWS Lambda

AWS Textract does OCR reading of data: let's see how to automatize its usage with AWS Lambda, S3, and Amazon SNS

Responsible disclosure: improper access control in Gitlab private project.

As I said back in September regarding a responsible disclosure about Facebook, data access control isn’t easy. While it can sound elementary, it is very difficult, both on a theoretical side and on a practical side.

Glasnost: yet another Gitlab's client.

Glasnost is an opensource Gitlab's client for Android and iOs.

Responsible disclosure: retrieving a user's private Facebook friends.

Data access control isn’t easy. While it can sound quite simple, it is very difficult, both on a theoretical side and on a practical side.