Architecture and Design
Skaffold is designed with pluggability in mind:
The architecture allows you to use Skaffold with the tool you prefer. Skaffold provides built-in support for the following tools:
- Build
- Dockerfile locally, in-cluster with kaniko or on cloud using Google Cloud Build
- Jib Maven and Jib Gradle locally or on cloud using Google Cloud Build
- Bazel locally
- Cloud Native Buildpacks locally or on cloud using Google Cloud Build
- Custom script locally or in-cluster
- Test
- Tag
- Git tagger
- Sha256 tagger
- Input Digest tagger
- Env Template tagger
- DateTime tagger
- Deploy
You can combine the tools as you see fit in Skaffold. For experimental
projects, you may want to use local Docker daemon for building artifacts, and
deploy them to a Minikube local Kubernetes cluster with kubectl
:
However, for production applications, you might find it more appropriate to build with Google Cloud Build and deploy using Helm:
Skaffold also supports development profiles. You can specify multiple different profiles in your configuration and use the one that best serves your needs without having to modify the configuration file. You can learn more about profiles here.