Skaffold

Tools | assess

Skaffold is a tool facilitating application development on Kubernetes. It handles the workflow of building, pushing, and deploying containerized applications to either local or remote clusters.

With support for Kustomize and Helm, multiple image builders, and pushing to both OCI registries and local clusters, it simplifies and streamlines development of cloud native applications. Additionally, Skaffold handles file synchronization to containers, port forwarding, and log tailing, along with lifecycle hooks and custom actions. And all of that can be organized into profiles.

All this makes Skaffold capable of bringing up projects—even fairly complex ones—with a single command. Moreover, it tends to come in handy when setting up Continuous Integration pipelines to test Kubernetes deployments.

However, in our experience, development of applications with a complex build process, such as those based on Magento, proved challenging with Skaffold, primarily due to frequent and time-consuming container image builds. Although Skaffold automates file synchronization from local environment to the running application container, we weren't able to find a satisfactory setup that could replace our current Docker Compose-based one.

All in all, we find Skaffold a tool to keep an eye on, with the potential of becoming—in combination with kind—our tool of choice for development and testing of projects such as Magento 2 on Kubernetes.

assess