Skip to the content.

ADR 24: Selecting a Development Tool for Remote Kubernetes Development

Date: 2023-05-24

Status

Accepted

Context

With the growing complexity of our development team and the expanding use of Kubernetes for our application deployments, we have identified the need for a tool that supports efficient and seamless remote development. The tool we select should facilitate developing, debugging, and deploying applications from local machines to remote Kubernetes environments. After careful consideration, we have narrowed down our options to Skaffold, Devfile.io, and GitHub Codespaces.

Decision

After evaluating the options, we have decided to adopt Skaffold. This decision was primarily based on Skaffold’s ability to support rapid local Kubernetes development, its lightweight nature, and its capability to facilitate the entire development lifecycle, which aligns most closely with our current needs.

Consequences

The adoption of Skaffold is expected to simplify our development workflows and accelerate our processes. However, it will require the team to undergo training to effectively use the tool. Additionally, we will need to monitor the resource usage of Skaffold to ensure it does not negatively impact our system. Lastly, we should stay updated on the development and changes in Skaffold, Devfile.io, and GitHub Codespaces to be prepared to reassess our decision if the need arises.

Below is a Mermaid diagram illustrating our decision-making process:

graph LR
  A[Developer Needs] --> B[Skaffold]
  A --> C[Devfile.io]
  A --> D[GitHub Codespaces]
  B --> E[Selected Tool]
  C -->|Not selected| E
  D -->|Not selected| E
  E --> F[Implemented in Workflow]

In this diagram, “A” represents our identified needs, “B”, “C”, and “D” represent the tools we considered, “E” signifies our final decision, and “F” illustrates the implementation of our decision in our workflow.