ege.dev

Hello. I'm Ege.


Meet me at KubeCon Europe

The Percona team is heading to KubeCon + CloudNativeCon Europe in Amsterdam, and I’d love to meet you in person! You can find me at Booth 790. This is a great chance to talk with me and other engineers working on Percona Operators. We will be there to discuss: Running MySQL, PostgreSQL, and MongoDB …

Continue reading »

Encrypt PostgreSQL Data at Rest on Kubernetes

The upcoming Percona Operator for PostgreSQL v2.6.0 release introduces support for PostgreSQL 17, which opens exciting possibilities for data security. Since pg_tde comes pre-installed in Percona’s official PostgreSQL 17 images, this release presents an excellent opportunity to implement Transparent …

Continue reading »


Disaster Recovery for MongoDB on Kubernetes

This is a joint post with Sergey Pronin. As per the glossary, Disaster Recovery (DR) protocols are an organization’s method of regaining access and functionality to its IT infrastructure in events like a natural disaster, cyber attack, or even business disruptions related to the COVID-19 pandemic. …

Continue reading »

Cluster Statuses in Percona Kubernetes Operators

In Kubernetes, all resources have a status field separated from their spec. The status field is an interface both for humans or applications to read the perceived state of the resource. When you deploy our Percona Kubernetes Operators – Percona Operator for MongoDB or Percona Operator for MySQL – in …

Continue reading »

Kubernetes Resource Management

I had the chance to listen to Bekir Doğan’s presentation, a former Kartaca employee, at an event in 2017. I was very impressed when I heard that they set up and distribute all the services they manage with OpenVZ in containers in 2005. Was anyone really into this type of thing? Apparently, yes. …

Continue reading »

Renew SSL Certs on Azure Application Gateway with Gitlab CI

Renewing SSL certificates on Azure Application Gateway is a regular toil for me. Whenever I research how to automate it, it felt like everyone uses some Azure tools that doesn’t fit to my liking. I don’t want to copy a year old Powershell script and paste it to an Azure automation account (Oh, I …

Continue reading »

Building a Linux Kernel Module

Last night a friend of mine asked for help for her homework on operating systems. It’s about building a simple Linux kernel module and linked list operations. I hadn’t worked on a kernel module before but somehow knew the basics are simple to grasp. This is the transcript of my experience. The …

Continue reading »

PortQuiz.net

Recently, I was trying to connect to an Azure SQL database from a client’s Windows Server. The Windows admin was telling me he can connect to any website from server but not my SQL database. It was evident that only 80 and 443 outbound ports are allowed but I had to prove this to convince him to …

Continue reading »

New project: gitlabci

At Artistanbul, we usually have multiple repositories for a client and a release often requires running a pipeline on some or all of them. Besides the pain of managing environment variables, the second annoying thing about Gitlab CI is lack of a dashboard to see all pipelines of a group. There is a …

Continue reading »

Packaging a Python program for Fedora

Being a Fedora contributor is one of my long term goals. Recently I took the first step by submitting the Redmine CLI to Fedora. Creating spec file is a bit hard, even for a trivial command line application. So I’ll document the steps others to benefit. Spec file %global pypi_name redminecli …

Continue reading »

New project: Gitlabenv

At Artistanbul, we started using Gitlab CI. While building our pipeline, the hardest part was managing environment variables. Gitlab’s interface makes it really hard: Gitlabenv is a little command line application that makes managing this variables easier. It gets the current state from Gitlab, you …

Continue reading »

New project: Redmine CLI

I’m happy to announce my latest project Redmine CLI is available. It’s a command line interface for the project management and bug tracking software called Redmine that we use in Artistanbul. You can install it via pip: $ pip3 install --user redminecli Also, I’m planning to make a RPM package for …

Continue reading »

My Bash History

This evening, I found ginh.sh on Changelog Weekly. It analyzes your shell usage patterns and generates a bar chart of them. I gave it a try, of course. Home workstation $ ./ginh.sh -f ~/.bash_history entries=15, file=/home/egegunes/.bash_history, char==, len=145 …

Continue reading »

New project: License Bot

There is a new paranoid lawyer bot in town! LicenseBot is the idea of Akın Ömeroğlu. Basically, it monitors public events from Github and analyzes commits for license changes. If it founds one, tweets it. Also, it’s my first Go project. You can see the source on Github. HEADS UP! Someone modified …

Continue reading »

Cloud Native Istanbul

There is a new meetup in town that I’m very excited about: Cloud Native Istanbul The meetup is started by Kaan Demircan and Engin Özkurt. Kaan and Engin are both work for Microsoft and their main focus is on providing open source solutions to Microsoft’s clients. I attended the first and so far only …

Continue reading »

RedHat Forum Istanbul 2018

I attended to Red Hat Forum Istanbul like last year. It was both fun and professional as always. Although most of the talks (excluding sponsor talks) were about containers and Openshift (Kubernetes), the main topic of the coffee breaks was IBM’s acquisition of the Red Hat. Obviously, Red Hat Turkey …

Continue reading »

Working With Panopto API Using Zeep

Panopto is a video recording and publishing platform specifically targeted for education. Recently I had to work with their API and had some trouble with it. It’s only fair if I say their documentation is not good. There are some examples from Graham’s blog, but they are for C# mostly. I interacted …

Continue reading »

Setup a Scalable Ghost with Docker and Traefik

I was hosting my static web site on Netlify. Then Github announced support for HTTPS on custom domains and I migrated there. Recently I bought an iPad Pro. Since I hold my SSH keys on my Yubikeys there is no easy way to write a post on my iPad and push it to Github. So I decided give Ghost a try. …

Continue reading »

Some Git Pitfalls for Junior Developers

Getting started with git is hard. Especially if you alone and don’t have an experienced developer around. In this post I won’t help you with basics of git, but share some pitfalls that I fell. Git is not a backup tool I was totally wrong about the way I comprehend git a year ago. I was using git to …

Continue reading »

I Carry My SSH and GPG Keys All the Time

Yubikeys are great. Many use them just for 2 factor authentication. But Yubikeys are capable to hold your GPG keys also. And you can use your GPG keys for SSH authentication. So here is the story of how I carry my SSH keys in my pocket all the time in (almost) pain-free and relatively secure way. …

Continue reading »

Running Python on AWS Lambda

The idea of “serverless” fascinates me since I first heard it. Write some code, deploy and voila, your code is globally available. I awaited a chance for get my feet wet and last week I got. In Artistanbul we were toying with the idea to create a Facebook Messenger chatbot for one of our clients. …

Continue reading »

Systemd vs Supervisor

Supervisord is a well-known tool among developers for controlling processes. It’s especially useful for monitoring process status and restarting on a crash. For a long time, I used supervisor on my personal projects and still using it at work. But while migrating HastaTakip from Ubuntu 14.04 to …

Continue reading »