Skip to content
This repository has been archived by the owner on May 8, 2023. It is now read-only.
/ sceptre-core Public archive

Core Sceptre functionality for v3

License

Notifications You must be signed in to change notification settings

Sceptre/sceptre-core

Repository files navigation

Sceptre

Bugs Coverage Maintainability Rating Quality Gate Status Reliability Rating Security Rating Technical Debt Vulnerabilities image

About

Sceptre is a tool to drive Cloud Natice IaC tooling such as AWS CloudFormation, Google Deployment Manager and Azure Resource Manager. It automates the mundane, repetitive and error-prone tasks, enabling you to concentrate on building better infrastructure.

Install

$ pip install sceptre-core

More information on installing sceptre can be found in our Installation Guide

Example

Sceptre organises Stacks into "Stack Groups". Each Stack is represented by a YAML configuration file stored in a directory which represents the Stack Group. Here, we have two Stacks, vpc and subnets, in a Stack Group named dev:

$ tree
.
├── config
│   └── dev
│        ├── config.yaml
│        ├── subnets.yaml
│        └── vpc.yaml
└── templates
    ├── subnets.py
    └── vpc.py

Usage

Sceptre can be used from the CLI (see sceptre-cli), or imported as a Python package.

Python API

Using Sceptre as a Python module is very straightforward. You need to create a SceptreContext, which tells Sceptre where your project path is and which path you want to execute on, we call this the "command path".

After you have created a SceptreContext you need to pass this into a SceptrePlan. On instantiation the SceptrePlan will handle all the required steps to make sure the action you wish to take on the command path are resolved.

After you have instantiated a SceptrePlan you can access all the actions you can take on a Stack, such as validate(), launch(), list() and delete().

from sceptre.context import SceptreContext
from sceptre.plan.plan import SceptrePlan

context = SceptreContext("/path/to/project", "command_path")
plan = SceptrePlan(context)
plan.launch()

Full API reference documentation can be found in the Documentation

Use Docker Image

View our Docker repository.

To use our Docker image follow these instructions:

  1. Pull the image docker pull cloudreach/sceptre-core:[SCEPTRE_VERSION_NUMBER] e.g. docker pull cloudreach/sceptre-core:x.x.x. Leave out the version number if you wish to run latest or run docker pull cloudreach/sceptre-core:latest.

  2. Run the image. You will need to mount the working directory where your project resides to a directory called project. You will also need to mount a volume with your Provider config to your docker container. E.g.

If you want to use a custom ENTRYPOINT simply amend the Docker command:

docker run -ti --entrypoint='' cloudreach/sceptre-core:latest sh

The above command will enter you into the shell of the Docker container where you can execute sceptre commands - useful for development.

If you have any other environment variables in your non-docker shell you will need to pass these in on the Docker CLI using the -e flag. See Docker documentation on how to achieve this.

Tutorial and Documentation

Contributing

See our Contributing Guide