Just released v1.0.1 of my first Crystal project

Hi everyone! I have been learning Crystal and working on a project with it for a few weeks now and am excited to be here. I’m Vito, a senior backend developer and DevOPS (mostly Kubernetes and other GCP stuff) based in Finland, where I work for event management platform Brella.

I have been working with Ruby (and Rails) for many years now, so when I decided to rewrite a Ruby tool of mine to be able to offer standalone binaries, Crystal was a natural choice. The tool I rewrote in Crystal is a CLI tool that allows you to super quickly create and manage cheap Kubernetes clusters in Hetzner Cloud, an awesome German cloud provider (with locations in the US as well) that combines an excellent service with unbeatable prices. This tool is used by individuals as well as companies, and on one occasion one person contacted me to thank me because at their company they were saving quite a bit of cash each month after they migrated from GKE (Google Kubernetes Engine) to Kubernetes clusters created with my tool in Hetzner Cloud. This makes me happy :)

The Ruby version of the tool was fine, but users had to either set up a Ruby environment (which sometimes is not as straightforward as one might think, for people not familiar with Ruby) or use a Docker image, which was the only alternative.

Rewriting in Crystal allowed me to solve this problem easily because I can now offer standalone binaries for Linux and macOS, which makes using my tool a lot easier. Besides this, I took the opportunity to better organize and structure the code. My code may not be perfect yet, since I am new to Crystal and I might do some things in a weird way (from a Crystal perspective) but the tool is perfectly functional, and today I released v1.0.1 with support for autoscaling, an awesome feature that was requested by many and that makes clusters created with my tool behave similarly to managed Kubernetes clusters, which I think is awesome.

If you work with Kubernetes and are interested in cheap clusters, give it a try! You can find the repo at GitHub - vitobotta/hetzner-k3s: A CLI tool to install and manage Kubernetes clusters in Hetzner Cloud using the lightweight distribution k3s by Rancher..

I spend most of my time coding basically between work and other projects, but I am also studying to earn the Offensive Security certifications geared towards web app security mainly. Sometimes I write about programming, devops and related stuff on https://vitobotta.com/ (my personal blog).

I guess that’ll do as an introduction. Nice to meet you!

19 Likes

Welcome to the community! =)

I’m a long-time Hetzner customer as well, never used kubernetes, tho. If I ever need that, your shard looks like a great tool for that.

1 Like

Hey vitobotta,

Congrats! Sounds like a useful tool.

I’ve recently done something similar for a CLI tool, the main reason being similar to what you mentioned about the Ruby version of the tool requiring a Ruby environment. Some of the gem’s dependencies have native extensions, and even require a compiler toolchain. Crystal is great for this.

How have you found the experience of distributing the tool so far? Have you sent people binaries directly, made the tool available in package managers, etc.?

Nick

Based on same purpose, i wrote several CLI tools use Crystal too, because those awesome tools use daily which wrote use Rust/Go in Github impressive, but I don’t want to lose the fun of Ruby/Crystal. Hope in the future, the windows platform can be support as ter 1.