<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: drtobbyas</title>
    <description>The latest articles on DEV Community by drtobbyas (@drtobbyas).</description>
    <link>https://dev.to/drtobbyas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F160261%2F936344b9-5f2d-43b2-b40a-980f384b64da.png</url>
      <title>DEV Community: drtobbyas</title>
      <link>https://dev.to/drtobbyas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/drtobbyas"/>
    <language>en</language>
    <item>
      <title>EP3: Native Kubernetes deployment is officially working in Coolify. But getting there meant wrestling with vicious race conditions.</title>
      <dc:creator>drtobbyas</dc:creator>
      <pubDate>Mon, 11 May 2026 07:19:14 +0000</pubDate>
      <link>https://dev.to/drtobbyas/ep3-native-kubernetes-deployment-is-officially-working-in-coolify-but-getting-there-meant-13h2</link>
      <guid>https://dev.to/drtobbyas/ep3-native-kubernetes-deployment-is-officially-working-in-coolify-but-getting-there-meant-13h2</guid>
      <description>&lt;p&gt;&lt;strong&gt;If you missed &lt;a href="https://dev.to/drtobbyas/ep2-mapping-the-labyrinth-how-coolify-deploys-your-apps-and-why-k8s-fits-3dal"&gt;Episode 2&lt;/a&gt;, we realized that Coolify's SSH-native engine is surprisingly cluster-friendly. The architecture wasn't locked to Docker; it simply lacked a translation layer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Episode 3, it was time to build that translation layer and prove the concept. But turning theory into reality required two massive, distinct phases of implementation and this led to one of the most stressful race conditions I've ever debugged, all while I was backpacking across 4 countries.&lt;/p&gt;

&lt;p&gt;Here is the story of how the Kubernetes Proof of Concept (POC) came to life.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ Phase 1: The Struggle for a Cluster
&lt;/h2&gt;

&lt;p&gt;Before you can deploy an application to a Kubernetes cluster, you must actually have a cluster to deploy to.&lt;/p&gt;

&lt;p&gt;This was the first major hurdle. The official Coolify deployment currently has zero built-in Kubernetes infrastructure. I knew that I couldn't just build a deployment script without giving users a way to actually spin up an environment to test it on without leaving the UI.&lt;/p&gt;

&lt;p&gt;I spent days searching around, reviewing so many different options for how to bootstrap a cluster natively. Ultimately, I settled on &lt;strong&gt;K3s&lt;/strong&gt;. It is an incredibly lightweight, production-ready Kubernetes distribution that is perfectly suited for the types of servers Coolify normally runs on.&lt;/p&gt;

&lt;p&gt;I integrated it directly into the frontend. I built out the UI and the underlying backend logic so that users can now do two things straight from the dashboard:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Spin up a brand new K3s cluster from scratch on a server.&lt;/li&gt;
&lt;li&gt;Link securely to an existing Kubernetes cluster.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Phase 1 was a resounding success. I had the foundation.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Phase 2: Racing Across Borders
&lt;/h2&gt;

&lt;p&gt;As I moved into Phase 2, life happened. I had to pause active work while I took a cross-country tour across 4 different countries.&lt;/p&gt;

&lt;p&gt;But while I was navigating borders, the codebase I had just written to handle my deployments was locked in an intense race condition of its own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I was literally racing across borders while trying to stop my codebase from "racing" and locking up the UI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here is what went wrong.&lt;/p&gt;




&lt;h3&gt;
  
  
  🐉 Deploying the Docker Image &amp;amp; Fighting the Clock
&lt;/h3&gt;

&lt;p&gt;The second phase of the POC was the grand finale: taking a standard Docker image (I used Nginx), deploying it as a service directly to the K3s cluster I had just created, and ensuring it was accessible via an Ingress route.&lt;/p&gt;

&lt;p&gt;The translation script worked flawlessly. My Docker manifests were effortlessly converted into K8s Deployments, Services, and Traefik Ingress rules. But making the status UI sync was a nightmare.&lt;/p&gt;

&lt;p&gt;To ensure the deployment succeeded, I initially set the core action to run synchronously. The deployment worked! But because it waited for the cluster to finish, it held the PHP process hostage and completely locked up the Coolify frontend.&lt;/p&gt;

&lt;p&gt;"Simple," I thought. "Just revert the deployment to an asynchronous background job."&lt;/p&gt;

&lt;p&gt;The UI immediately became snappy again. But this introduced the ultimate syncing problem. The moment the async deployment fired, Coolify's Application Status Checker instantly polled the K8s API.&lt;/p&gt;

&lt;p&gt;Because Kubernetes is eventually-consistent, it takes a few seconds to pull the image and schedule the pods. The API responded, accurately, that there were zero pods running. Instead of understanding that the app was just booting up, the Coolify orchestrator aggressively flagged the perfectly healthy deployment as "Exited" or "Failed."&lt;/p&gt;

&lt;p&gt;A fully functional deployment was showing a glaring red error state.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The Resolution: The POC is Alive
&lt;/h2&gt;

&lt;p&gt;You cannot force an intrinsically asynchronous system (Kubernetes scheduling) to behave linearly against a strict synchronous status check. The absence of a resource immediately after creation is an expected state, not a failure.&lt;/p&gt;

&lt;p&gt;I solved the "racing codebase" by injecting an intelligent, two-minute graceful memory window into the status pipeline. If the checker polls an application within two minutes of an update and finds zero pods, it simply holds the UI status at "Starting" until the pods are scheduled. The moment the K8s API confirms the pods are healthy, it seamlessly flips the interface to "Running."&lt;/p&gt;

&lt;p&gt;The end-to-end "Docker Image -&amp;gt; K8s" flow is now incredibly fast, fully observable, and completely robust. I conquered the K3s installation, I defeated the deployment race conditions, and I proved that Native Kubernetes fits perfectly inside Coolify.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⏭️ Next in the Investigation
&lt;/h2&gt;

&lt;p&gt;Letting the automated systems handle the eventual consistency of Kubernetes meant I could actually close my laptop and enjoy the rest of my tour across countries. But the work is far from over.&lt;/p&gt;

&lt;p&gt;Next up, I dive deeper into linking external production clusters and polishing the features for robust availability. You will not want to miss what's coming next!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub Issue:&lt;/strong&gt; &lt;a href="https://github.com/coollabsio/coolify/issues/2390" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/issues/2390&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect with me:&lt;/strong&gt; &lt;a href="https://x.com/drtobbyas" rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt;, &lt;a href="https://linkedin.com/in/oluwatobiadeshina" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;, &lt;a href="https://t.me/drtobbyas" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the third post in a series documenting my investigation into building native Kubernetes support for Coolify. Next up: Connecting robust external clusters.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>devops</category>
      <category>coolify</category>
    </item>
    <item>
      <title>EP2: Mapping the Labyrinth: How Coolify Deploys Your Apps (and Why K8s Fits)</title>
      <dc:creator>drtobbyas</dc:creator>
      <pubDate>Wed, 22 Apr 2026 13:27:36 +0000</pubDate>
      <link>https://dev.to/drtobbyas/ep2-mapping-the-labyrinth-how-coolify-deploys-your-apps-and-why-k8s-fits-3dal</link>
      <guid>https://dev.to/drtobbyas/ep2-mapping-the-labyrinth-how-coolify-deploys-your-apps-and-why-k8s-fits-3dal</guid>
      <description>&lt;p&gt;&lt;strong&gt;If you missed &lt;a href="https://dev.to/drtobbyas/they-said-kubernetes-isnt-coming-to-coolify-im-going-to-find-out-if-thats-true-4eee"&gt;Episode 1&lt;/a&gt;, we established the goal: Investigate whether native Kubernetes support in Coolify is actually impossible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, the investigation moves from the "Why" to the "How." I spent the last few days inside the Coolify source code, trying to map exactly how it moves code from a repository into a running container.&lt;/p&gt;

&lt;p&gt;Here is the technical reality of the engine.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏗️ Part 1: Finding the Heartbeat
&lt;/h2&gt;

&lt;p&gt;To understand how Coolify works, you have to find its "Engine Room." In this codebase, that room is located at &lt;code&gt;app/Jobs/ApplicationDeploymentJob.php&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It is a massive, 4,000-line procedural job.&lt;/p&gt;

&lt;p&gt;In some circles, a 4k-line file is a "code smell." But in an orchestrator, it’s actually a map. Because it's written procedurally, you can read it like a script. I spent hours tracing the flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Setup&lt;/strong&gt;: Cloning the repo and establishing the build environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Network&lt;/strong&gt;: Creating the Docker bridge networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Deployment&lt;/strong&gt;: Building the images and running &lt;code&gt;docker compose up&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The audit confirmed my first hunch: &lt;strong&gt;The logic isn’t hardcoded to Docker.&lt;/strong&gt; It’s a sequence of commands. If we can swap those commands, we can change the engine.&lt;/p&gt;




&lt;h3&gt;
  
  
  🗺️ The Map of the Territory
&lt;/h3&gt;

&lt;p&gt;To find the path to Kubernetes, I first had to map the Labyrinth. Here is the simplified structure of the Coolify engine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;coolify/
├── app/
│   ├── Actions/        # Reusable deployment logic
│   ├── Jobs/           # The heart: ApplicationDeploymentJob.php (4k lines)
│   └── Models/         # Data structures (Server, Destination, Service)
├── bootstrap/
│   └── helpers/        # The heavy lifters: remoteProcess.php &amp;amp; proxy.php
├── config/             # Global platform settings
└── docker-compose.dev.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Discovery Points:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;app/Jobs&lt;/code&gt;&lt;/strong&gt;: This is where the linear deployment sequence lives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;bootstrap/helpers/remoteProcess.php&lt;/code&gt;&lt;/strong&gt;: This is the "SSH Tunnel" that makes everything possible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;app/Models&lt;/code&gt;&lt;/strong&gt;: This is where we’ll define the new &lt;code&gt;KubernetesDestination&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🐉 Part 2: The Fedora Sidequest
&lt;/h2&gt;

&lt;p&gt;Before I could dive deeper, I had to fix my own "Engine Room."&lt;/p&gt;

&lt;p&gt;I develop on &lt;strong&gt;Fedora&lt;/strong&gt;, which means I’m running a security-hardened stack with &lt;strong&gt;SELinux&lt;/strong&gt;. As soon as I tried to spin up a basic service like Dashy or Homepage in my local Coolify dev environment, I hit a stone wall.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Permission Denied.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The proxy container (Traefik/Caddy) couldn’t talk to the Docker socket. Everything was 404ing.&lt;/p&gt;

&lt;p&gt;I spent a few hours patching &lt;code&gt;bootstrap/helpers/proxy.php&lt;/code&gt; to handle this "hardened" reality. The fix required two key adjustments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding the &lt;code&gt;:z&lt;/code&gt; flag for volume relabeling (&lt;code&gt;/var/run/docker.sock:/var/run/docker.sock:z&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Setting &lt;code&gt;privileged: true&lt;/code&gt; for the local proxy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Lesson:&lt;/strong&gt; Local dev is never as simple as &lt;code&gt;docker compose up&lt;/code&gt;. But solving these "gatekeeper" bugs gave me a deeper understanding of how Coolify handles its proxy logic. Such knowledge I'll need when we move to K8s Ingress.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚪 Part 3: The SSH Backdoor
&lt;/h2&gt;

&lt;p&gt;While auditing the engine, I found the most important piece of the puzzle: &lt;code&gt;remote_process&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Coolify doesn't rely on complex, vendor-locked SDKs to manage your servers. It does something much simpler and more powerful: it uses SSH to run shell commands.&lt;/p&gt;

&lt;p&gt;This is the "Kubernetes Backdoor."&lt;/p&gt;

&lt;p&gt;Right now, the &lt;code&gt;ApplicationDeploymentJob&lt;/code&gt; sends strings like:&lt;br&gt;
&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But because it’s just a CLI pipeline over SSH, there is no architectural reason it can't send:&lt;br&gt;
&lt;code&gt;kubectl apply -f manifest.yaml&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The engine treats servers as &lt;strong&gt;SSH-ready shell endpoints&lt;/strong&gt;. If your server has &lt;code&gt;kubectl&lt;/code&gt; installed, Coolify can already talk to it. The "impossible" barrier isn't the architecture,it's just a translation problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The Phase 2 Conclusion: It’s a Translation Problem
&lt;/h2&gt;

&lt;p&gt;They said Kubernetes isn't coming. I've found that the door is already wide open.&lt;/p&gt;

&lt;p&gt;The challenge ahead isn't rewriting the core engine. It's building the &lt;strong&gt;Translator&lt;/strong&gt;. We need to take the configuration you provide in the Coolify UI and turn it into Kubernetes YAML instead of Docker Compose labels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next in the Investigation:&lt;/strong&gt;&lt;br&gt;
I’m moving on to building the &lt;code&gt;KubernetesDestination&lt;/code&gt; model, the foundation for a cluster-native Coolify experience.&lt;/p&gt;

&lt;p&gt;Follow along as we start building the bridge.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub Issue:&lt;/strong&gt; &lt;a href="https://github.com/coollabsio/coolify/issues/2390" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/issues/2390&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect with me:&lt;/strong&gt; &lt;a href="https://x.com/drtobbyas" rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt;, &lt;a href="https://linkedin.com/in/oluwatobiadeshina" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;, &lt;a href="https://t.me/drtobbyas" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is the second post in a series documenting my investigation into Kubernetes support for Coolify. Next up: Building the first Kubernetes Destination model.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>devops</category>
      <category>coolify</category>
    </item>
    <item>
      <title>EP1: They Said Kubernetes Isn't Coming to Coolify. I'm Going to Find Out If That's True.</title>
      <dc:creator>drtobbyas</dc:creator>
      <pubDate>Tue, 14 Apr 2026 13:08:46 +0000</pubDate>
      <link>https://dev.to/drtobbyas/they-said-kubernetes-isnt-coming-to-coolify-im-going-to-find-out-if-thats-true-4eee</link>
      <guid>https://dev.to/drtobbyas/they-said-kubernetes-isnt-coming-to-coolify-im-going-to-find-out-if-thats-true-4eee</guid>
      <description>&lt;p&gt;&lt;strong&gt;22 months open. $250 bounty. 46 reactions. One unexpected answer.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Reach-Out
&lt;/h2&gt;

&lt;p&gt;On March 14, 2026, I did something that felt important.&lt;/p&gt;

&lt;p&gt;I commented on &lt;a href="https://github.com/coollabsio/coolify/issues/2390" rel="noopener noreferrer"&gt;Coolify issue #2390&lt;/a&gt; — the Kubernetes support request that has been sitting open since June 2024. I offered to help. I shared my background (8 years DevOps, deep K8s specialization). I asked if they were open to collaboration.&lt;/p&gt;

&lt;p&gt;Then I took it to Discord and asked the team directly: "What do you think about this?"&lt;/p&gt;

&lt;p&gt;The response came from Peak, a core maintainer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We will use our own custom solution (for v5) that integrates directly with Docker Compose and uses Docker in the background, as it is more flexible and tightly integrated into Coolify, like Swarm but better."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kubernetes support, it seemed, was not coming to Coolify. Not in v5. Maybe not ever.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Gap in the Answer
&lt;/h2&gt;

&lt;p&gt;I read that response multiple times. Something struck me.&lt;/p&gt;

&lt;p&gt;They never said Kubernetes was &lt;strong&gt;technically impossible&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They said their solution was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"More flexible"&lt;/li&gt;
&lt;li&gt;"Tightly integrated" &lt;/li&gt;
&lt;li&gt;"Like Swarm but better"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are &lt;strong&gt;comparative advantages&lt;/strong&gt;, not absolute constraints.&lt;/p&gt;

&lt;p&gt;The maintainers made a product decision: "We will build X instead of Y."&lt;/p&gt;

&lt;p&gt;They did not make a technical claim: "Y cannot be built."&lt;/p&gt;




&lt;h2&gt;
  
  
  The Unanswered Question
&lt;/h2&gt;

&lt;p&gt;This distinction matters because of what sits behind issue #2390:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;46 community reactions&lt;/strong&gt; (36 hearts, 10 eyes watching)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$250 in community bounties&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;22 months&lt;/strong&gt; of sustained interest&lt;/li&gt;
&lt;li&gt;Comments from users explaining why this is the blocker preventing them from adopting Coolify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The community clearly wants native Kubernetes support.&lt;/p&gt;

&lt;p&gt;The maintainers have chosen a different path.&lt;/p&gt;

&lt;p&gt;And no one has investigated whether the community's request is actually &lt;em&gt;possible&lt;/em&gt; to fulfill.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Investigation
&lt;/h2&gt;

&lt;p&gt;So I'm asking a different question than "Will you accept my PR?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is native Kubernetes support in Coolify actually impossible?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With 8 years of Kubernetes experience — designing clusters, integrating K8s clients into applications, debugging production deployments — I'm in a position to find out.&lt;/p&gt;

&lt;p&gt;Here's what I'm going to do:&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Architecture Mapping
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clone Coolify and understand its current deployment model&lt;/li&gt;
&lt;li&gt;Identify where K8s integration would logically live&lt;/li&gt;
&lt;li&gt;Document the current "Docker-only" architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 2: Integration Point Analysis
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Map the API boundaries where K8s could interface&lt;/li&gt;
&lt;li&gt;Identify potential blockers (technical, architectural, philosophical)&lt;/li&gt;
&lt;li&gt;Research how other PaaS platforms handle dual Docker/K8s support&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 3: Proof-of-Concept
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Build a minimal K8s integration for one deployment type&lt;/li&gt;
&lt;li&gt;Document what works, what breaks, what's hard&lt;/li&gt;
&lt;li&gt;Share working code or detailed failure analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 4: Community Decision
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Publish findings: "Here's what I found when I tried"&lt;/li&gt;
&lt;li&gt;If it's possible: offer the solution to maintainers and community&lt;/li&gt;
&lt;li&gt;If it's impossible: document exactly why (valuable for future reference)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Three Possible Outcomes
&lt;/h2&gt;

&lt;p&gt;I'm not approaching this with a predetermined conclusion. There are three ways this investigation ends:&lt;/p&gt;

&lt;h3&gt;
  
  
  Outcome 1: It's Possible
&lt;/h3&gt;

&lt;p&gt;I build working K8s support that proves the architecture can accommodate it. The maintainers can choose to merge it or not — but the community will have a working solution (either in mainline or as a maintained fork).&lt;/p&gt;

&lt;h3&gt;
  
  
  Outcome 2: It's Impossible
&lt;/h3&gt;

&lt;p&gt;I discover genuine technical blockers that make K8s integration infeasible. I document these blockers in detail. The community finally has a definitive answer instead of an open question.&lt;/p&gt;

&lt;h3&gt;
  
  
  Outcome 3: It's Complicated
&lt;/h3&gt;

&lt;p&gt;The integration is technically possible but comes with significant trade-offs. I map these trade-offs clearly so the community and maintainers can make an informed decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Any of these outcomes serves the community better than the current state:&lt;/strong&gt; an open issue with demand but no investigation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I'm Doing This
&lt;/h2&gt;

&lt;p&gt;Let's be honest about the risks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The maintainers might see this as undermining their vision&lt;/li&gt;
&lt;li&gt;I could invest significant time and prove it's actually impossible&lt;/li&gt;
&lt;li&gt;The community might not care about the findings&lt;/li&gt;
&lt;li&gt;I could end up maintaining a fork that no one uses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here's what I know:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The question deserves an answer.&lt;/strong&gt; 46 reactions and $250 in bounties suggest real demand. Someone should investigate if that demand can be met.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The investigation has value regardless of outcome.&lt;/strong&gt; Even a documented failure teaches us something about Coolify's architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building in public creates connections.&lt;/strong&gt; The process of investigation — sharing blockers, breakthroughs, architecture insights — is valuable content for the DevOps community.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The maintainer decision isn't the end of the story.&lt;/strong&gt; Open source means the community can explore paths the core team chooses not to. That's not hostile — it's how open source evolves.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;This isn't just about Coolify and Kubernetes.&lt;/p&gt;

&lt;p&gt;It's about what happens when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A community clearly wants a feature&lt;/li&gt;
&lt;li&gt;The maintainers choose a different direction
&lt;/li&gt;
&lt;li&gt;No one investigates if the community's request is technically feasible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Someone has to ask: "Is this actually impossible? Or just not prioritized?"&lt;/p&gt;

&lt;p&gt;I'm asking that question. And I'm documenting the answer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Follow Along
&lt;/h2&gt;

&lt;p&gt;I'll be sharing every step of this investigation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture deep-dives&lt;/li&gt;
&lt;li&gt;Integration point analysis&lt;/li&gt;
&lt;li&gt;Blockers and breakthroughs&lt;/li&gt;
&lt;li&gt;Working code or documented failures&lt;/li&gt;
&lt;li&gt;Honest assessments of what's possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you're interested in:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes architecture&lt;/li&gt;
&lt;li&gt;How PaaS platforms handle deployment abstraction&lt;/li&gt;
&lt;li&gt;The gap between maintainer vision and community demand&lt;/li&gt;
&lt;li&gt;What "impossible" actually looks like in practice&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Connect with me:&lt;/strong&gt; Follow me here on Dev.to for updates. You can also find me on &lt;a href="https://x.com/drtobbyas," rel="noopener noreferrer"&gt;Twitter/X&lt;/a&gt;, &lt;a href="https://linkedin.com/in/oluwatobiadeshina" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; and &lt;a href="https://t.me/drtobbyas" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Issue:&lt;/strong&gt; &lt;a href="https://github.com/coollabsio/coolify/issues/2390" rel="noopener noreferrer"&gt;https://github.com/coollabsio/coolify/issues/2390&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Drop them in the comments below.&lt;/p&gt;




</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>devops</category>
      <category>coolify</category>
    </item>
  </channel>
</rss>
