sommerfeld-io / configs-homelab

Configuration as code for all my workstations and RasPi nodes.
https://sommerfeld-io.github.io/configs-homelab/
Other
0 stars 0 forks source link

ADR 001 - Minikube vs Portainer #4

Closed sebastian-sommerfeld-io closed 1 month ago

sebastian-sommerfeld-io commented 1 month ago
Status Decision Date Outcome
Accepted 2024-02-07 Minikube

Context

In our current setup, Portainer is deployed across all local machines to facilitate the inspection and management of Docker containers and images. This setup allows for efficient monitoring and cleanup of old images, volumes, and other Docker resources, streamlining our container management process. This part is not the issue because it works as expected.

However, we encounter challenges with Portainer's GitOps feature, which is intended to automate the deployment and updating of Docker images.

The primary issue lies in the apparent instability of the GitOps feature; we frequently experience situations where Docker Compose stacks are not initiated as expected or missing altogether. This inconsistency leads to missing services and disrupts our deployment flow, affecting the reliability of our containerized applications. Our portainer setup includes a custom setup involving a Newman side container. This container is crucial for initializing all stacks that Portainer is supposed to manage, executing through a REST API to ensure that our applications are correctly set up and configured. This bespoke solution adds another layer of complexity to our deployment process, further complicating the use of Portainer's GitOps feature. The Newman approach is specific to us and not a standardized solution.

Given these challenges, we are at a crossroads in deciding how to proceed with our container management strategy. The instability of the GitOps feature and the intricacies of our custom setup necessitate a reevaluation of our tooling.

Options

Decision

We chose to transition to a minikube-based approach, because of the following reasons:

However, we need to keep the disadvantages of using minikube in mind:

Author

@sebastian-sommerfeld-io