Getting Started

Spacelift Getting Started Guide

Hello and Welcome to Spacelift! In this guide we will briefly introduce some key concepts that you need to know to work with Spacelift. These concepts will be followed by detailed instructions to help you create and configure your first run with Spacelift.

Introduction to Main Concepts

Stacks

A stack is a central entity in Spacelift. It connects with your source control repository and manages the state of infrastructure. It facilitates integration with cloud providers (AWS, Google Cloud etc) and other important Spacelift components. You can learn more about Stacks in Spacelift detailed documentation.

State Management

State can be managed by your backend or can be imported into Spacelift for Terraform projects. It is not required to let Spacelift manage your infrastructure state.

Worker Pools

Spacelift provides public and private worker pools that execute Spacelift workflows. Public worker pools are managed by Spacelift whereas private pools are hosted by you. Due to security and compliance requirements, several of our customers choose private pools to manage their infrastructure. You can learn more about worker pools here.

Policies

Spacelift policies provide a way to express rules as code, rules that manage your Infrastructure as Code (IaC) environment and help make common decisions such as login, access and execution. Policies are based on the Open Policy Agent project and can be defined using its rule language Rego. You can learn more about policies here.

Cloud Integration

Spacelift provides native integration with AWS and Google cloud. Integration with other cloud providers is also possible via programmatic connection with their identity services. You can learn more about cloud provider integration in Spacelift detailed documentation.

Change Workflow

Spacelift deeply integrates with your Version Control System (VCS). Pull requests are evaluated by Spacelift to provide a preview of the changes being made to infrastructure; these changes are deployed automatically when PRs are merged. You can learn more about VCS integration here.

Step-by-step

This section provides step-by-step instructions to help you set up and get the most out of Spacelift. If you want to learn about core concepts, please have a look at the main concepts section.

You can get started with either forking our Terraform Starter repository and testing all Spacelift capabilities in under 15 minutes or you can explore Spacelift on your own by adding your own repository and going from zero to fully managing your cloud resources.

First Stack Run

This tutorial will help you complete your first stack and run. It assumes you use your own repository.

Step 1: Connect with your VCS

  1. Install the Spacelift Github App if you have not already installed it during the signup process.

  1. Attach any of your terraform repositories that create local resources (we will not not be integrating any of the cloud providers to keep our first run simple).

Now login to the Spacelift console, you are ready to create your first stack!

Step 2: Create your first Stack

  1. Click on the Add Stack button.

  1. In the Integrate VCS form, choose your VCS provider, select the repository that you gave access to Spacelift in the first step and select a branch that you want to be attached with your Stack.

Click on Continue to configure the backend.

  1. Choose Terraform as your backend with a supported version. Leave the default option to let Spacelift manage state for this stack.

  1. Leave the default options checked for Define Behavior and click continue.

  1. Give a name to your stack and save.

Step 3: Trigger your first Run

Saving the stack will lead you to the Runs screen. Click on Trigger to kick start a Spacelift job that will check out the source code, run terraform commands on it and then present you with an option to apply (confirm) these changes.

Click on Confirm and your changes will be applied. Your output will look different based on your code repository and the resources it creates.

Further Reading

  1. Learn how to integrate with AWS as a cloud provider for your infrastructure

  2. Try creating and attaching policies with stacks for common use cases

  3. Using environment variables and contexts with stacks