My 2023, in review
January 01, 2024
In this blog post, I retrospect on my 2023 in tech. I’ll be looking at the projects I’ve worked on, the things I’ve learned and the things I’ve achieved!
My 2023 in tech
It’s 2024 now, happy new year! I guess you could say I haven’t written Ansible code since last year!
I’ve had a very productive year in 2023! In this blog post, I’m going to be summarizing my 2023 in tech, what I did, what I learned and what I achieved in a somewhat chronological order
Certifications
This year I went on a certification rush, and I’m proud of the results! I’ve achieved 6 Red Hat certifications and 4 SUSE certifications!
I did the following Red Hat exams and achieved the following certifications:
- Red Hat Certified Specialist in Containers (EX188)
- Red Hat Certified Specialist in Ansible Network Automation (EX457)
- Red Hat Certified Specialist in Developing Automation with Ansible Automation Platform (EX374)
- Red Hat Certified Specialist in Deployment and Systems Management (EX403)
- Red Hat Certified Specialist in Managing Automation with Ansible Automation Platform (EX467)
This netted me the Red Hat Certified Architect (RHCA) certification and title!
I also went to SUSECON this year, where I had the opportunity to do 4 SUSE certifications! I did the following exams and achieved the following certifications:
- SUSE Certified Administrator in Rancher 2.6 (sca-rancher-2-6)
- SUSE Certified Deployment Specialist in Rancher Manager 2.7 for Rancher Prime (scds_rancher_mgr2_7)
- SUSE Certified Deployment Specialist in SUSE Rancher and Kubernetes Distributions (scds-ran-k8s)
- SUSE Certified Administrator in Linux Enterprise Server 15 (sca-sles-15)
I’m glad I got to do these certifications, as I learned a lot from them! I achieved a lot of certifications in a very short time, and I’m glad I did! I do need to slow down a bit though, so I’ll likely be doing less certifications in 2024.
I put the practice material I use for these certifications in the diademiemi/certifications repository, and I hope it helps others learn as well!
You can view all my certifications on my about page!
Homelab v2
I started 2023 with a new homelab, based on Ansible, Terraform, Kubernetes and ArgCD! This isn’t the homelab I’m currently running, that would be v3, but I’ll get to that later!
This homelab was deployed using Ansible and Terraform on my local NAS, with ArgoCD used to deploy applications to a Kubernetes cluster! I was rather proud of this cluster at the time, it was a big step up from my previous homelab, this one using more off the shelf components and being generally a better practice environment for how these tools are used in the real world.
I split this project up into multiple repositories, which you can find here:
- diademiemi/ansible_project_homelab_v2
- diademiemi/terraform_project_homelab_v2
- diademiemi/argocd_project_homelab_v2
This design did end up overcomplicating things a bit, and I ended up with a lot of duplicate code. Especially the ArgoCD repository was a bit of a mess and the secret management was a bit of a pain. I did learn a lot from this project though, and I’m still using some of the code and ideas from this project in my current homelab!
You can view the repository structure for each project in the README.md files of each repository!
Tonetag.is
I did my first actual web development project this year! I worked on the tonetag.is website. This site is a list of tone indicators (also called tone tags), which are used to communicate tone in text-based communication.
These tone tags are often used by neurodivergent people, and provide a clearer way to communicate tone in text-based chats! I could not find any existing website which had a definitive list of tone tags, so I decided to make one myself! I’m especially proud how this website turned out, and I hope I could help some people with it! You can find the source code for this website on tonetag/tonetag
Tonetag.is embeds in chat applications and gives their meaning and usage in a URL preview when it is linked. Try it out on platforms such as Discord, Telegram, Slack, etc! For example, “What https://tonetag.is/j?” will give you the meaning of the tone tag /j!
It’s deployed on my Homelab v3, and I’m using ArgoCD to deploy it! You can check tonetag/deployment for the deployment code!
Ansible Content
I’ve written a lot of Ansible code in 2023! From my Ansible Advent of Code 2023 challenge, homelab v2 and v3 to my Roles and Collections!
This year, I spent my time making the hurdle to start using Ansible as low as possible for me, so I don’t have an excuse to not automate something. That resulted in me writing a lot of Ansible Roles and Collections, which I’m very happy with!
My standouts for this year are my diademiemi/ansible_role_template, diademiemi/ansible_collection_diademiemi.template and diademiemi/ansible_project_template. All of these are templates for Ansible roles, collections and projects respectively, and they’re all integrated with Molecule tests, GitHub Actions, Ansible Lint, Ansible Galaxy and can be used as a template from GitHub!
I’ve made the decision to test my Ansible Collections and Roles on the following distributions, whenever possible:
- Ubuntu 20.04
- Ubuntu 22.04
- Debian 10
- Debian 11
- Debian 12
- EL 8 (Tested on Rocky Linux 8)
- EL 9 (Tested on Rocky Linux 9)
- Fedora 38
- openSUSE Leap 15.5
I’m glad I made this decision, as I’ve learned a lot about Ansible and how it works on different distributions and how to best write cross-platform Ansible code!
You can view all my current Ansible content, along with the previously mentioned Molecule tests CI status on my Ansible Content page.
Homelab v3
In June, I started work on a new homelab, this time running on a Hetzner dedicated server and using Rancher! This is still the homelab I’m currently running, and I’m very satisfied with it! It’s stable, easy to deploy and maintainable.
Rancher is a Kubernetes management service, which allows you to manage multiple Kubernetes clusters from a single interface. Rancher also provides a Kubernetes distribution (RKE2), a storage solution (Longhorn) and a GitOps solution (Fleet).
I started this project with the goal of learning Rancher, and I absolutely achieved that goal, as this project helped me achieve 3 SUSE certifications in Rancher!
For this project, I decided to use a single repository, diademiemi/homelab_v3, as I wanted to keep the code as simple as possible and integrate everything as much as possible.
I can redeploy the entire cluster (Wiping the entire cluster and starting over) in about 20 minutes with a single command, all data persisting! I’m already very proud of this project, it’s helped me at work as well. I still wish to improve it in the future! My goal in 2024 is to add a zero-downtime migration solution to this project, so I can reset & upgrade this cluster while keeping it online on failover nodes!
I’ve made an in-depth README for this repository, and I may write a blog post about it in the future, so I won’t go into too much detail here.
3D Printing
I’ve gotten much more into 3D printing this year, something I’ll mention in the next section as well! I’ve gotten a new 3D printer this year, the Creality K1 Max, and I’m glad I got it! It’s motivated me to get into 3D modelling and I’ve been printing a lot more since I got it! I’ve also been printing a lot of fidget toys and other things for friends and family, and it’s very satisfying to be able to make something that makes people happy at home!
OpenSCAD Content
I took up 3D modelling in OpenSCAD this year! I’ve made a few fidget toys and other models. I’m very happy with the results!
I’ve made a diademiemi/openscad_fidget_toys repository for these fidget toys, I’ve been giving them out to friends and family, and they’ve been very well received! It’s great to make something that you can actually give out or use yourself!
My favourite models are the Infinity Cube and Rotating Rings toys, which I’ve made in OpenSCAD and printed on my 3D printers!
Ansible Advent of Code 2023
I’d also like to mention my Ansible Advent of Code 2023 challenge! I’ve written a blog post about it, so I won’t go into too much detail here, but even though I’m nowhere near done, I already learned a lot from it!
Terraform Content
I’ve also started taking Terraform more seriously, and creating modules for it!
While these are mostly aimed for my personal use, I have a libvirt-vm and hetzner-vm module!
Other Projects
Other projects I don’t have much to say about, but still would like to mention are:
- diademiemi/experiments:
From just a few code dumps, this has evolved to contain some test environments and POCs for code I use! I’ve been using this repository to learn new tools and test out new ideas, something that’s very useful to the way I like to learn! - diademiemi/webring-api:
This is a webring API I made for a webring I used to be a part of! I’ve since left the webring, but I’m still proud of the code I wrote for it! - diademiemi/ansible_project_desktop:
This is the Ansible code I use to deploy my desktop and laptop! I’ve set a goal to automate as much as possible, to positive results! I can now deploy my entire desktop and laptop with a single command, and I can keep it up to date with a single command as well! And since my roles are tested on 9 different Linux distributions, I can easily switch between distributions without having to worry about my setup breaking! - diademiemi/charts:
I’ve written some Helm Charts for applications I use that didn’t have a Helm Chart yet! I use these on my Homelab v3! - diademiemi/CelestialMovement:
This is a quick and simple Minecraft Spigot plugin I wrote for fun that adds Celeste-like platformer movement to Minecraft! - diademiemi/Adventageous:
This ones actually from late 2022, but I’m including it here! This is a Minecraft Spigot plugin that adds an advent calendar and daily rewards to a Minecraft server! I wrote this for a Minecraft server I staff for, and it was used to celebrate the holidays! - queercraft/datapack_fireworks2023:
This is a Minecraft Datapack generated in Python which creates a fireworks show for the new year on a Minecraft server!
Conclusion
2023 was a productive, but tiring year! While I’m looking forward to what I’ll make in 2024, I’m also looking forward to taking a break and slowing down a bit…
Thanks for reading this blog, and I hope you have a great 2024!!!