Skaffold v2 GA: Further enhancing developer productivity
Russell Wolf
Product Manager
Maggie Neterval
Software Engineer
For years, Google has been committed to maximizing developer productivity. In 2019, we announced the general availability of Skaffold, a command-line tool that facilitates continuous development and delivery for containerized applications. Today, we're excited to announce that Skaffold V2 is now generally available.
Skaffold V2 expands Skaffold’s supported platforms and architectures with the introduction of Cloud Run as a supported deployer, and now supports building from and deploying to both ARM and x86 architectures. Skaffold V2 also offers enhanced support for CI/CD and GitOps workflows, with the introduction of the skaffold render
phase, verify
phase, and kpt integration. Best of all, all existing Skaffold configurations are fully compatible with Skaffold V2, and upgrading from V1 is as easy as running skaffold fix
.
Expanded platform support
Since its inception, Skaffold has supported deploying applications to Kubernetes, using either kubectl or Helm deployers. Deploying to Kubernetes with Skaffold unlocks the benefits of improved velocity from source to prod, with reusable building blocks for iterative development and CI/CD.
We're excited to expand these benefits to Cloud Run, Google’s serverless container runtime. Cloud Run provides a fully managed platform for any containerized application, and includes features such as automatic resource scaling and integrated storage, security, and monitoring solutions.
It’s easy to get started with Skaffold and Cloud Run; all you need is a Cloud Run service config and a few small updates to your skaffold.yaml
. Skaffold also powers Cloud Deploy’s support of Cloud Run. Check out our documentation to learn more.
In addition to the new deployment target, the expanded set of compatible image-architecture configurations with Skaffold V2 helps developers ensure that the architecture of the machine on which an image is built is compatible with the architecture of the machine on which the image is intended to be run. Skaffold now intelligently checks the architecture of your local machine as well as the target Kubernetes cluster before building your images, allowing you to deploy to ARM, x86 or multi-arch clusters from a x86 or ARM machine without any manual configuration.
Check out our documentation to learn more about deploying to Cloud Run and managing ARM workloads.
CI/CD and DevOps, simplified
Skaffold helps developers implement CI/CD and DevOps workflows by providing a set of reusable building blocks for repeatable build, tag, and deploy steps. With Skaffold, the same config can be shared in development and production, leveraging Skaffold profiles to implement environment-specific configuration.
With Skaffold V2, the Skaffold render
phase is now distinct from the deploy
phase. The output of the Skaffold render
phase is a manifest, hydrated with tagged image names and templated values, which can then be persisted in source control before deployment as part of a GitOps workflow.
In addition to the render
phase, Skaffold V2’s new verify
phase helps to configure post-deployment tests. This phase can be used to configure a series of test containers that are then monitored to ensure that the deployment was successful. This allows developers to integrate this verification step into reusable deployment pipelines rather than running these tests manually.
Finally, the introduction of kpt as a supported renderer in Skaffold V2 provides a sophisticated syntax for serially transforming and validating your manifests, unlocking additional customizability and verification in your GitOps workflows. Using Skaffold makes it easy to adopt kpt because you can take advantage of kpt’s transformation and validation functionality without needing to write any separate kpt configuration. It’s as easy as adding a few stanzas to your existing skaffold.yaml
. Kpt can also be used alongside Skaffold’s pre-existing integrations with renderers Helm and Kustomize.
Check out our documentation to learn more about the Skaffold render phase, verify phase, and kpt integration.
Upgrading to Skaffold V2
Getting started with Skaffold V2 is easy. If you're new to Skaffold, check out the V2 installation guide for platform-specific installation instructions.
If you're an existing Skaffold user, upgrading to Skaffold V2 is simple and requires no manual configuration changes. All of your existing Skaffold configurations will continue to work as-is with Skaffold V2. Simply download the Skaffold V2 binary and run skaffold fix
to update your config. Check out the V2 upgrade guide for more details.
Finally, check out our documentation for more detailed instructions on taking advantage of all of the new features introduced in Skaffold V2.
What’s next?
If you're interested in harnessing the power of Skaffold for serverless workloads, check out our documentation for using Skaffold V2 with Cloud Run.
Also, be sure to check out Cloud Deploy, Google’s fully managed continuous delivery offering, which leverages Skaffold to construct reusable deployment pipelines.
We’re excited to hear from you. As always, you can reach out to us on GitHub and Slack.