HashiCorp Vagrant 2.3 introduces a new Vagrant executable written in Golang, tying the Vagrant architecture more closely into the broader HashiCorp ecosystem.
The Vagrant team is pleased to announce HashiCorp Vagrant 2.3, which was recently released. This release marks the first minor release on the path to 3.0 and is the initial step in porting Vagrant from Ruby to Go. (You can find more information about our roadmap for Vagrant 3.0 in our Toward Vagrant 3.0 blog post from last year.)
Beginning with this 2.3 release, the Vagrant packages now include a
vagrant-go executable. This new executable is the updated Vagrant runtime written in Go. The Vagrant release packages still include the traditional Ruby-based Vagrant implementation, which is the current stable Vagrant release.
To minimize confusion, the team's first Go release was developed in a private repository. However, as of the 2.3 release, this has been merged into the main branch of the repository. The Go-based source code is located in the
./internal directory within the Vagrant repository.
The Vagrant Go implementation also includes a new plugin software development kit. This SDK includes the Go-based APIs for all Vagrant plugin types, along with helper utilities for building Vagrant plugins. The plugin SDK is located in a separate repository, which can be found here.
The quickest way to try out the Vagrant Go implementation is to download and install the latest release package. Existing Ruby-based plugins and Vagrantfiles remain compatible.
Note that the Vagrant Go implementation is currently in an alpha state. As such, performance issues as well as bugs should be expected. Before using the Vagrant Go implementation, please refer to the documentation for information about differences in how the Vagrant Go implementation stores data and information compared to the Vagrant Ruby implementation.
To try out Vagrant Go, you'll need to:
vagrant-gocommand to start the Go based binary.
There are several known limitations in the Vagrant Go implementation. It is important to read and understand these limitations before using the
vagrant-go command. Because the Vagrant Go implementation is currently in alpha, we do not yet recommend using the Vagrant Go implementation in general workflows or development.
If you encounter any issues with HashiCorp Vagrant 2.3 or want to provide feedback, please create an issue in GitHub.
Before we ring in the new year, here’s a look back at some of the most important moments in 2022 for HashiCorp.
The HashiCorp Releases API is now available. This API is your one-stop shop for finding and viewing extended metadata about HashiCorp product releases.
There were many popular Kubernetes sessions at this year’s HashiTalks. Watch the highlights from the virtual conference here.