Spread Versioning

Spread versions your software environment (i.e. a Kubernetes cluster) like Git versions source code. Because Spread is built on top of libgit2, it takes advantage of Git's interface and functionality. This means after you deploy a Kubernetes object to a cluster, you can version the object by staging, committing, and pushing it to a Spread repository.

To get started, initialize Spread and set up a local Spread repository:

spread init

Here is our suggested workflow for versioning with Spread:

  1. Create or edit your Kubernetes objects
  2. Deploy your objects to a local or remote Kubernetes cluster (make sure you've set up your directory correctly): spread deploy .
  3. Stage an object: spread add <objectType>/<objectName>
  4. Repeat until all objects have been staged
  5. Commit your objects with a message: spread commit -m "commit message"
  6. Set up your remote repository: spread remote (add <name> <url> | remove <name> | set-url <name> <url>)
  7. Push your objects to your remote repository: spread push <remote> <refSpec>
  8. Go ahead and try out the other commands - anything not documented can be accessed using spread git ...

If you find any bugs or have any feature requests for Spread versioning, please file an issue!