<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ronard Luna on Caktus Group</title><link>https://www.caktusgroup.com/authors/ronard-luna/</link><description>Recent content in Ronard Luna on Caktus Group</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 24 Sep 2025 22:18:00 +0300</lastBuildDate><atom:link href="https://www.caktusgroup.com/authors/ronard-luna/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrating Amazon EKS Nodes to Amazon Linux 2023 (AL2023) from Amazon Linux 2 (AL2) Using CloudFormation and Troposphere</title><link>https://www.caktusgroup.com/blog/2025/09/migrate-eks-nodes-from-al2-to-al2023-images/</link><pubDate>Wed, 24 Sep 2025 22:18:00 +0300</pubDate><guid>https://www.caktusgroup.com/blog/2025/09/migrate-eks-nodes-from-al2-to-al2023-images/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>In this post, we’ll explain how we extended our existing AWS CloudFormation infrastructure, built using &lt;a href="https://github.com/cloudtools/troposphere" target="_blank" rel="noopener noreferrer">Troposphere&lt;/a>, to support the use of &lt;code>Amazon Linux 2023 (AL2023)&lt;/code> for Amazon EKS (Elastic Kubernetes Service) nodes. This migration was necessary to ensure compatibility ahead of our planned upgrade to &lt;code>Kubernetes version 1.33&lt;/code>.&lt;/p></description></item><item><title>How to migrate from pip-tools to uv</title><link>https://www.caktusgroup.com/blog/2025/08/25/migrate-pip-tools-to-uv/</link><pubDate>Mon, 25 Aug 2025 14:00:00 -0400</pubDate><guid>https://www.caktusgroup.com/blog/2025/08/25/migrate-pip-tools-to-uv/</guid><description>&lt;p>At Caktus, many of our projects use &lt;code>pip-tools&lt;/code> for dependency management. Following Tobias&amp;rsquo; post &lt;a href="https://www.caktusgroup.com/blog/2025/06/11/migrating-python-django-projects-uv/">How to Migrate your Python &amp;amp; Django Projects to uv&lt;/a>, we were looking to migrate other projects to &lt;code>uv&lt;/code>, but the path seemed less clear with existing pip-tools setups. Our requirements are often spread across multiple files, like this:&lt;/p></description></item><item><title>Handling Configuration and Server Snippets When Upgrading to ingress-nginx 1.12.0</title><link>https://www.caktusgroup.com/blog/2025/07/03/handling-configuration-and-server-snippets-when-upgrading-ingress-nginx-1120/</link><pubDate>Thu, 03 Jul 2025 16:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2025/07/03/handling-configuration-and-server-snippets-when-upgrading-ingress-nginx-1120/</guid><description>&lt;p>As part of our ongoing Sustainability and Maintenance efforts, we are
upgrading our Kubernetes clusters to version 1.32. Much like a major
Django upgrade, this process requires us to update other key components
to ensure they remain compatible. One of these is the ingress-nginx
controller, which manages external access to the cluster.&lt;/p></description></item><item><title>Cakti Share Their Favorite Tools For Streamlined Workflows</title><link>https://www.caktusgroup.com/blog/2025/03/27/cakti-share-their-favorite-tools-for-streamlined-worklows/</link><pubDate>Thu, 27 Mar 2025 20:09:03 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2025/03/27/cakti-share-their-favorite-tools-for-streamlined-worklows/</guid><description>&lt;p>Let’s jump into it!&lt;/p>
&lt;p>At Caktus, we’re always looking for tools that help us streamline our workflows, increase productivity, and make our day-to-day tasks more efficient. Whether you&amp;rsquo;re managing projects, writing code, or debugging, the right tools can make all the difference. Here are some of our favorite tools that we love using to get the job done!&lt;/p></description></item><item><title>Upgrade Smarter, Not Harder: Python Tools for Code Modernization</title><link>https://www.caktusgroup.com/blog/2025/03/27/upgrade-smarter-not-harder-python-tools-code-modernization/</link><pubDate>Thu, 27 Mar 2025 10:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2025/03/27/upgrade-smarter-not-harder-python-tools-code-modernization/</guid><description>&lt;p>Upgrading projects is somewhat equivalent to flossing, you know you have
to do it, but rarely make time for it. After all, if the project is in
active development, there are exciting new features to build. And we all
know that &lt;strong>new features&lt;/strong> &amp;gt; &lt;strong>project upgrades&lt;/strong>. Well not to worry,
Caktus wants to make you aware of some tools that will save you from
considerable repetitive work &amp;amp; time while simultaneously modernizing
your codebase. Combined, these tools will automate part of the upgrade
process, decreasing the likelihood of neglecting parts of the codebase.&lt;/p></description></item><item><title>A Helpful Guide to Solving Common Poetry Issues</title><link>https://www.caktusgroup.com/blog/2025/03/10/helpful-guide-solving-common-poetry-issues/</link><pubDate>Mon, 10 Mar 2025 10:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2025/03/10/helpful-guide-solving-common-poetry-issues/</guid><description>&lt;p>We don't often use &lt;a href="https://python-poetry.org/" target="_blank" rel="noopener noreferrer">Poetry&lt;/a>, the Python
packaging and dependency management tool, but when we do, we usually
look up and re-learn the same things repeatedly. This post is a quick
reference for some of the recent issues we encountered when using
&lt;a href="https://python-poetry.org/" target="_blank" rel="noopener noreferrer">Poetry&lt;/a>.&lt;/p></description></item><item><title>Deleting a Django Application from a Multi-Site Kubernetes Cluster</title><link>https://www.caktusgroup.com/blog/2025/03/03/deleting-django-application-multi-site-kubernetes-cluster/</link><pubDate>Mon, 03 Mar 2025 13:20:54 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2025/03/03/deleting-django-application-multi-site-kubernetes-cluster/</guid><description>&lt;p>Recently, a client requested that we delete a website that was no longer
used. The Kubernetes cluster was managed by an engineer who is no longer
with the company, making the cluster feel like a concealed box. All I
had was the website&amp;rsquo;s name. Since we use &lt;a href="https://github.com/kubernetes/ingress-nginx" target="_blank" rel="noopener noreferrer">Ingress
Nginx&lt;/a> and
&lt;a href="https://nginx.org/" target="_blank" rel="noopener noreferrer">Nginx&lt;/a> as a web server, I figured the answer to my
query could be found there. So I ran:&lt;/p></description></item><item><title>Reflections on DjangoCon US 2024: Highlights, Takeaways, and Community Connections</title><link>https://www.caktusgroup.com/blog/2024/12/16/reflections-djangocon-us-2024-highlights-takeaways-and-community-connections/</link><pubDate>Mon, 16 Dec 2024 23:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2024/12/16/reflections-djangocon-us-2024-highlights-takeaways-and-community-connections/</guid><description>&lt;p>DjangoCon 2024 was a resounding success for the community, with attendees from all over the world gathering to learn about the latest developments in Django and to connect with the Django community. Caktus was well-represented at the conference, with six of our team members attending. In this blog post, we share our experiences at DjangoCon 2024, including our favorite talks, the people we met, and the things we learned. We also offer some tips for future attendees on how to get the most out of DjangoCon.&lt;/p></description></item><item><title>Upgrading PostgreSQL From v11 to v15 in Your Django Application</title><link>https://www.caktusgroup.com/blog/2023/10/23/upgrade-postgresql-client-15/</link><pubDate>Mon, 23 Oct 2023 13:28:50 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/10/23/upgrade-postgresql-client-15/</guid><description>&lt;p>In the ever-evolving world of data management, staying up-to-date with
the latest technologies and best practices is imperative. One crucial
aspect of this is ensuring your PostgreSQL version remains current. On
&lt;strong>November 9, 2023&lt;/strong>, PostgreSQL 11 reaches &lt;a href="https://www.postgresql.org/support/versioning/#:~:text=November%2014%2C%202024-,11,November%209%2C%202023,-10" target="_blank" rel="noopener noreferrer">end of life
(EOL)&lt;/a>.&lt;/p></description></item><item><title>Migrating a Django Project from a GPU to a Convenience Image on CircleCI</title><link>https://www.caktusgroup.com/blog/2023/08/22/migrating-django-project-gpu-convenience-image-circleci/</link><pubDate>Tue, 22 Aug 2023 11:22:07 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/08/22/migrating-django-project-gpu-convenience-image-circleci/</guid><description>&lt;p>Recently we learned that as of &lt;em>September 30th, 2023&lt;/em> &lt;a href="https://discuss.circleci.com/t/linux-cuda-deprecation-and-image-policy/48568?mkt_tok=NDg1LVpNSC02MjYAAAGM6em0j1c6QSwAzSPHBw_kbCD6VmHwcrtr74I_yJ4R5W6GlyyUFsm1Qtv7LLzkwkVqvCeh2UqgD4lY4ZjnezxuvYUcc9HgZ2xXuihHBlv_45J_" target="_blank" rel="noopener noreferrer">several linux
images will be
deprecated&lt;/a>,
including the one we used, &lt;code>ubuntu-2004:202111-02&lt;/code>. Therefore, after
September 30th, our pipelines would have failed. To avoid this, we
switched several machines in our Django project from Ubuntu GPU images
to convenience images; This writing details that switch.&lt;/p></description></item><item><title>Migrate to Amazon EKS Add-ons</title><link>https://www.caktusgroup.com/blog/2023/07/10/migrate-amazon-eks-add-ons/</link><pubDate>Mon, 10 Jul 2023 17:07:44 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/07/10/migrate-amazon-eks-add-ons/</guid><description>&lt;p>Amazon Elastic Kubernetes Service (Amazon EKS) released support for
operational cluster add-on software, or &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html" target="_blank" rel="noopener noreferrer">Amazon EKS
add-ons&lt;/a>,
around Kubernetes version 1.19 in May 2021. These include:&lt;/p></description></item><item><title>Set up AWS CloudTrail to Monitor Application Events using Ansible</title><link>https://www.caktusgroup.com/blog/2023/06/27/set-aws-cloudtrail-monitor-kubernetes-application-events-using-ansible/</link><pubDate>Tue, 27 Jun 2023 15:50:46 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/06/27/set-aws-cloudtrail-monitor-kubernetes-application-events-using-ansible/</guid><description>&lt;p>AWS CloudTrail is a service that enables monitoring and recording of
account activities. In this post, we will use CloudTrail to monitor CPU
usage and to monitor our nodes. We will use Ansible to automate the
setup process and as a means to document our setup (IaC). This post
assumes you already have Ansible set up for your project and will not
provide setup instructions.&lt;/p></description></item><item><title>GitHub Submodules: Leveraging Branches to Allow Independent Updates in Parent Applications</title><link>https://www.caktusgroup.com/blog/2023/06/09/github-submodule-branches-upgrade/</link><pubDate>Fri, 09 Jun 2023 13:24:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/06/09/github-submodule-branches-upgrade/</guid><description>&lt;p>Recently I&amp;rsquo;ve been working with projects that use GitHub submodules.
According to
&lt;a href="https://github.blog/2016-02-01-working-with-submodules/#:~:text=Submodules%20allow%20you%20to%20include%20or%20embed%20one%20or%20more%20repositories%20as%20a%20sub%2Dfolder%20inside%20another%20repository" target="_blank" rel="noopener noreferrer">GitHub&lt;/a>,
submodules &amp;ldquo;allow you to include or embed one or more repositories as a
sub-folder inside another repository.&amp;rdquo; Submodules help us keep code dry
when functionality is shared across multiple repositories.&lt;/p></description></item><item><title>Begin your Data Analysis Journey with Pandas and Seaborn</title><link>https://www.caktusgroup.com/blog/2023/03/28/begin-your-data-analysis-journey-pandas-and-seaborn/</link><pubDate>Tue, 28 Mar 2023 14:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/03/28/begin-your-data-analysis-journey-pandas-and-seaborn/</guid><description>&lt;p>Lately, there has been a lot of talk about scoring in the NBA because
LeBron James surpassed Kareem Abdul-Jabbar with 38,390 career points. I
have noticed that there is not much discussion about post-season
scoring, so I searched for this
&lt;a href="https://www.kaggle.com/datasets/isaienkov/nba-top-25-alltime-playoff-scorers" target="_blank" rel="noopener noreferrer">dataset&lt;/a>
on Kaggle (nba_playoffs.csv) which contains the top 25 all-time
post-season scoring leaders. Post-season scoring is its own beast. Since
teams face one opponent multiple times in a row, they can better
concentrate on the opposing team and its individual players,
particularly star players. This results in improved defenses across the
board. However, the post-season also means players improving their game.
What is the result of improved defenses and players alike? Only elite
players score consistently and thus, only the NBA's elite are on this
list. This post will first examine the dataset using &lt;strong>Pandas&lt;/strong> and then
use &lt;strong>Seaborn&lt;/strong> to graph such data.&lt;/p></description></item><item><title>An introduction to Django Simple History</title><link>https://www.caktusgroup.com/blog/2023/02/13/introduction-django-simple-history/</link><pubDate>Mon, 13 Feb 2023 15:00:00 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/02/13/introduction-django-simple-history/</guid><description>&lt;p>Wouldn&amp;rsquo;t it be useful if we could document changes in our life and
revisit them later at will? It would allow us to better analyze
situations, remember what we were thinking, or help us remember how we
got to our current state. Although no such tool currently exists for
changes in life, one such tool does exist in Django. It is called
&lt;a href="https://django-simple-history.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer">django-simple-history&lt;/a>.&lt;/p></description></item><item><title>Reflection on DjangoCon 2022</title><link>https://www.caktusgroup.com/blog/2023/01/06/django-con-2022/</link><pubDate>Fri, 06 Jan 2023 15:33:37 +0000</pubDate><guid>https://www.caktusgroup.com/blog/2023/01/06/django-con-2022/</guid><description>&lt;h2 id="ronards-recap">Ronard&amp;rsquo;s Recap&lt;/h2>
&lt;p>&lt;em>&amp;ldquo;It takes a village&amp;rdquo;&lt;/em> the African proverb goes. Nowhere was this as apparent as in DjangoCon. It was my first technology conference and my experience could not have been better. People from the most senior developer to fellow juniors and even one of the co-creators of Django made the experience feel warm and inviting. Perhaps knowing that you are surrounded by introverts alleviates the social pressure, knowing that everyone has a common interest, or perhaps even love for programming also brought a soothing feeling to the experience.&lt;/p></description></item></channel></rss>