Spring Cloud Skipper

Skipper is a tool that allows you to discover applications and manage their lifecycle on multiple Cloud Platforms.

Quick Start
Fork me on GitHub

Overview

Skipper is a tool that allows you to discover Spring Boot applications and manage their lifecycle on multiple Cloud Platforms. You can use Skipper standalone or integrate it with Continuous Integration pipelines to help achieve Continuous Deployment of applications.

The system design is influenced by a large number of projects in the Kubernetes ecosystem that perform resource templating and/or orchestration, hence the nautically inspired project name Skipper.

Applications in Skipper are bundled as packages which contain a templated configuration file and a default set of values that are used to fill in the template. You can override these defaults when installing or upgrading a package. Skipper provides a means to orchestrate the upgrade/rollback procedure of applications between different versions, taking the minimal set of actions to bring the system to the desired state. One of the goals of Skipper is to be used as one tool to help promote the practice of Continuous Deployment.

Features

The main features in Skipper are:

  • Define multiple platform accounts where Spring Boot applications can be deployed. Supported platforms are Local, Cloud Foundry, and Kubernetes.
  • Substitute variables in Mustache templated files that describe how to deploy applications to a platform.
  • Search Package Repositories for existing applications.
  • Install/Upgrade/Rollback a package based on a simple workflow.
  • Store the history of resolved template files (aka 'application manifests') which represent the final description of what has been deployed to a platform for a specific release.
  • Use via a standalone interactive shell or via the web APIs to supplement CI workflows.

The means to deploy a Spring Boot application to multiple platforms is provided by Spring Cloud Deployer implementations. The supported template file format are YAML based and describe the set of variables needed to create a Spring Cloud Deployer AppDeploymentRequest

The next version (1.0 RC1) of Skipper will replace the simple hardcoded workflow of upgrading/rolling back applications versions to a more flexible approach based on the Spring Statemachine project.

Getting Started

The reference guide is the best place to get started.

History

Skipper evolved out of a need to perform "Stream Edits" in Spring Cloud Data Flow. It was later recognized that to provide that feature a more general purpose project, Skipper, should be created so that it can also be a useful toolkit outside the context of Spring Cloud Data Flow.