%global _empty_manifest_terminate_build 0
Name: python-sceptre
Version: 4.0.2
Release: 1
Summary: Cloud Provisioning Tool
License: Apache2
URL: https://github.com/Sceptre/sceptre
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c9/2f/a6085de8c65d7440a558687d6f0ccf2747e5da0e734e758549504b94ec8d/sceptre-4.0.2.tar.gz
BuildArch: noarch
Requires: python3-boto3
Requires: python3-click
Requires: python3-cfn-flip
Requires: python3-deepdiff
Requires: python3-deprecation
Requires: python3-PyYaml
Requires: python3-Jinja2
Requires: python3-jsonschema
Requires: python3-colorama
Requires: python3-packaging
Requires: python3-sceptre-cmd-resolver
Requires: python3-sceptre-file-resolver
Requires: python3-six
Requires: python3-networkx
Requires: python3-troposphere
%description
# Sceptre
[](https://app.circleci.com/pipelines/github/Sceptre)
[](https://hub.docker.com/r/sceptreorg/sceptre)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://github.com/Sceptre/sceptre/blob/main/LICENSE)
## About
Sceptre is a tool to drive
[AWS CloudFormation](https://aws.amazon.com/cloudformation). It automates the
mundane, repetitive and error-prone tasks, enabling you to concentrate on
building better infrastructure.
## Features
- Code reuse by separating a Stack's template and its configuration
- Support for templates written in JSON, YAML, Jinja2 or Python DSLs such as
Troposphere
- Dependency resolution by passing of Stack outputs to parameters of dependent
Stacks
- Stack Group support by bundling related Stacks into logical groups (e.g. dev
and prod)
- Stack Group-level commands, such as creating multiple Stacks with a single
command
- Fast, highly parallelised builds
- Built in support for working with Stacks in multiple AWS accounts and regions
- Infrastructure visibility with meta-operations such as Stack querying
protection
- Support for inserting dynamic values in templates via customisable Resolvers
- Support for running arbitrary code as Hooks before/after Stack builds
## Benefits
- Utilises cloud-native Infrastructure as Code engines (CloudFormation)
- You do not need to manage state
- Simple templates using popular templating syntax - Yaml & Jinja
- Powerful flexibility using a mature programming language - Python
- Easy to integrate as part of a CI/CD pipeline by using Hooks
- Simple CLI and API
- Unopinionated - Sceptre does not force a specific project structure
## Install
### Using pip
`$ pip install sceptre`
More information on installing sceptre can be found in our
[Installation Guide](https://docs.sceptre-project.org/latest/docs/install.html)
### Using Docker Image
View our [Docker repository](https://hub.docker.com/repositories/sceptreorg).
Images available from version 2.0.0 onward.
To use our Docker image follow these instructions:
1. Pull the image `docker pull sceptreorg/sceptre:[SCEPTRE_VERSION_NUMBER]` e.g.
`docker pull sceptreorg/sceptre:2.5.0`. Leave out the version number if you
wish to run `latest` or run `docker pull sceptreorg/sceptre: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 AWS config to your docker container. E.g.
`docker run -v $(pwd):/project -v /Users/me/.aws/:/root/.aws/:ro sceptreorg/sceptre:latest --help`
If you want to use a custom ENTRYPOINT simply amend the Docker command:
`docker run -ti --entrypoint='' sceptreorg/sceptre: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.
## 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`:
```sh
$ tree
.
├── config
│ └── dev
│ ├── config.yaml
│ ├── subnets.yaml
│ └── vpc.yaml
└── templates
├── subnets.py
└── vpc.py
```
We can create a Stack with the `create` command. This `vpc` Stack contains a
VPC.
```sh
$ sceptre create dev/vpc.yaml
dev/vpc - Creating stack dev/vpc
VirtualPrivateCloud AWS::EC2::VPC CREATE_IN_PROGRESS
dev/vpc VirtualPrivateCloud AWS::EC2::VPC CREATE_COMPLETE
dev/vpc sceptre-demo-dev-vpc AWS::CloudFormation::Stack CREATE_COMPLETE
```
The `subnets` Stack contains a subnet which must be created in the VPC. To do
this, we need to pass the VPC ID, which is exposed as a Stack output of the
`vpc` Stack, to a parameter of the `subnets` Stack. Sceptre automatically
resolves this dependency for us.
```sh
$ sceptre create dev/subnets.yaml
dev/subnets - Creating stack
dev/subnets Subnet AWS::EC2::Subnet CREATE_IN_PROGRESS
dev/subnets Subnet AWS::EC2::Subnet CREATE_COMPLETE
dev/subnets sceptre-demo-dev-subnets AWS::CloudFormation::Stack CREATE_COMPLETE
```
Sceptre implements meta-operations, which allow us to find out information about
our Stacks:
```sh
$ sceptre list resources dev/subnets.yaml
- LogicalResourceId: Subnet
PhysicalResourceId: subnet-445e6e32
dev/vpc:
- LogicalResourceId: VirtualPrivateCloud
PhysicalResourceId: vpc-c4715da0
```
Sceptre provides Stack Group level commands. This one deletes the whole `dev`
Stack Group. The subnet exists within the vpc, so it must be deleted first.
Sceptre handles this automatically:
```sh
$ sceptre delete dev
Deleting stack
dev/subnets Subnet AWS::EC2::Subnet DELETE_IN_PROGRESS
dev/subnets - Stack deleted
dev/vpc Deleting stack
dev/vpc VirtualPrivateCloud AWS::EC2::VPC DELETE_IN_PROGRESS
dev/vpc - Stack deleted
```
> Note: Deleting Stacks will _only_ delete a given Stack, or the Stacks that are
> directly in a given StackGroup. By default Stack dependencies that are
> external to the StackGroup are not deleted.
Sceptre can also handle cross Stack Group dependencies, take the following
example project:
```sh
$ tree
.
├── config
│ ├── dev
│ │ ├── network
│ │ │ └── vpc.yaml
│ │ ├── users
│ │ │ └── iam.yaml
│ │ ├── compute
│ │ │ └── ec2.yaml
│ │ └── config.yaml
│ └── staging
│ └── eu
│ ├── config.yaml
│ └── stack.yaml
├── hooks
│ └── stack.py
├── templates
│ ├── network.json
│ ├── iam.json
│ ├── ec2.json
│ └── stack.json
└── vars
├── dev.yaml
└── staging.yaml
```
In this project `staging/eu/stack.yaml` has a dependency on the output of
`dev/users/iam.yaml`. If you wanted to create the Stack `staging/eu/stack.yaml`,
Sceptre will resolve all of it's dependencies, including `dev/users/iam.yaml`,
before attempting to create the Stack.
## Usage
Sceptre can be used from the CLI, or imported as a Python package.
## CLI
```text
Usage: sceptre [OPTIONS] COMMAND [ARGS]...
Sceptre is a tool to manage your cloud native infrastructure deployments.
Options:
--version Show the version and exit.
--debug Turn on debug logging.
--dir TEXT Specify sceptre directory.
--output [text|yaml|json] The formatting style for command output.
--no-colour Turn off output colouring.
--var TEXT A variable to replace the value of an item in
config file.
--var-file FILENAME A YAML file of variables to replace the values
of items in config files.
--ignore-dependencies Ignore dependencies when executing command.
--merge-vars Merge variables from successive --vars and var
files.
--help Show this message and exit.
Commands:
create Creates a stack or a change set.
delete Deletes a stack or a change set.
describe Commands for describing attributes of stacks.
estimate-cost Estimates the cost of the template.
execute Executes a Change Set.
generate Prints the template.
launch Launch a Stack or StackGroup.
list Commands for listing attributes of stacks.
new Commands for initialising Sceptre projects.
set-policy Sets Stack policy.
status Print status of stack or stack_group.
update Update a stack.
validate Validates the template.
```
## Python
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()`.
```python
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](https://docs.sceptre-project.org/)
## Tutorial and Documentation
- [Get Started](https://docs.sceptre-project.org/latest/docs/get_started.html)
- [Documentation](https://docs.sceptre-project.org/)
## Communication
Sceptre community discussions happen in the #sceptre chanel in the
[og-aws Slack](https://github.com/open-guides/og-aws). To join click
on to create an account and join the
#sceptre channel.
Follow the [SceptreOrg Twitter account](https://twitter.com/SceptreOrg) to get announcements on the latest releases.
## Contributing
See our [Contributing Guide](CONTRIBUTING.md)
## Sponsors
[](https://sagebionetworks.org)
[](https://www.godaddy.com)
[](https://www.cloudreach.com)
%package -n python3-sceptre
Summary: Cloud Provisioning Tool
Provides: python-sceptre
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-sceptre
# Sceptre
[](https://app.circleci.com/pipelines/github/Sceptre)
[](https://hub.docker.com/r/sceptreorg/sceptre)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://github.com/Sceptre/sceptre/blob/main/LICENSE)
## About
Sceptre is a tool to drive
[AWS CloudFormation](https://aws.amazon.com/cloudformation). It automates the
mundane, repetitive and error-prone tasks, enabling you to concentrate on
building better infrastructure.
## Features
- Code reuse by separating a Stack's template and its configuration
- Support for templates written in JSON, YAML, Jinja2 or Python DSLs such as
Troposphere
- Dependency resolution by passing of Stack outputs to parameters of dependent
Stacks
- Stack Group support by bundling related Stacks into logical groups (e.g. dev
and prod)
- Stack Group-level commands, such as creating multiple Stacks with a single
command
- Fast, highly parallelised builds
- Built in support for working with Stacks in multiple AWS accounts and regions
- Infrastructure visibility with meta-operations such as Stack querying
protection
- Support for inserting dynamic values in templates via customisable Resolvers
- Support for running arbitrary code as Hooks before/after Stack builds
## Benefits
- Utilises cloud-native Infrastructure as Code engines (CloudFormation)
- You do not need to manage state
- Simple templates using popular templating syntax - Yaml & Jinja
- Powerful flexibility using a mature programming language - Python
- Easy to integrate as part of a CI/CD pipeline by using Hooks
- Simple CLI and API
- Unopinionated - Sceptre does not force a specific project structure
## Install
### Using pip
`$ pip install sceptre`
More information on installing sceptre can be found in our
[Installation Guide](https://docs.sceptre-project.org/latest/docs/install.html)
### Using Docker Image
View our [Docker repository](https://hub.docker.com/repositories/sceptreorg).
Images available from version 2.0.0 onward.
To use our Docker image follow these instructions:
1. Pull the image `docker pull sceptreorg/sceptre:[SCEPTRE_VERSION_NUMBER]` e.g.
`docker pull sceptreorg/sceptre:2.5.0`. Leave out the version number if you
wish to run `latest` or run `docker pull sceptreorg/sceptre: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 AWS config to your docker container. E.g.
`docker run -v $(pwd):/project -v /Users/me/.aws/:/root/.aws/:ro sceptreorg/sceptre:latest --help`
If you want to use a custom ENTRYPOINT simply amend the Docker command:
`docker run -ti --entrypoint='' sceptreorg/sceptre: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.
## 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`:
```sh
$ tree
.
├── config
│ └── dev
│ ├── config.yaml
│ ├── subnets.yaml
│ └── vpc.yaml
└── templates
├── subnets.py
└── vpc.py
```
We can create a Stack with the `create` command. This `vpc` Stack contains a
VPC.
```sh
$ sceptre create dev/vpc.yaml
dev/vpc - Creating stack dev/vpc
VirtualPrivateCloud AWS::EC2::VPC CREATE_IN_PROGRESS
dev/vpc VirtualPrivateCloud AWS::EC2::VPC CREATE_COMPLETE
dev/vpc sceptre-demo-dev-vpc AWS::CloudFormation::Stack CREATE_COMPLETE
```
The `subnets` Stack contains a subnet which must be created in the VPC. To do
this, we need to pass the VPC ID, which is exposed as a Stack output of the
`vpc` Stack, to a parameter of the `subnets` Stack. Sceptre automatically
resolves this dependency for us.
```sh
$ sceptre create dev/subnets.yaml
dev/subnets - Creating stack
dev/subnets Subnet AWS::EC2::Subnet CREATE_IN_PROGRESS
dev/subnets Subnet AWS::EC2::Subnet CREATE_COMPLETE
dev/subnets sceptre-demo-dev-subnets AWS::CloudFormation::Stack CREATE_COMPLETE
```
Sceptre implements meta-operations, which allow us to find out information about
our Stacks:
```sh
$ sceptre list resources dev/subnets.yaml
- LogicalResourceId: Subnet
PhysicalResourceId: subnet-445e6e32
dev/vpc:
- LogicalResourceId: VirtualPrivateCloud
PhysicalResourceId: vpc-c4715da0
```
Sceptre provides Stack Group level commands. This one deletes the whole `dev`
Stack Group. The subnet exists within the vpc, so it must be deleted first.
Sceptre handles this automatically:
```sh
$ sceptre delete dev
Deleting stack
dev/subnets Subnet AWS::EC2::Subnet DELETE_IN_PROGRESS
dev/subnets - Stack deleted
dev/vpc Deleting stack
dev/vpc VirtualPrivateCloud AWS::EC2::VPC DELETE_IN_PROGRESS
dev/vpc - Stack deleted
```
> Note: Deleting Stacks will _only_ delete a given Stack, or the Stacks that are
> directly in a given StackGroup. By default Stack dependencies that are
> external to the StackGroup are not deleted.
Sceptre can also handle cross Stack Group dependencies, take the following
example project:
```sh
$ tree
.
├── config
│ ├── dev
│ │ ├── network
│ │ │ └── vpc.yaml
│ │ ├── users
│ │ │ └── iam.yaml
│ │ ├── compute
│ │ │ └── ec2.yaml
│ │ └── config.yaml
│ └── staging
│ └── eu
│ ├── config.yaml
│ └── stack.yaml
├── hooks
│ └── stack.py
├── templates
│ ├── network.json
│ ├── iam.json
│ ├── ec2.json
│ └── stack.json
└── vars
├── dev.yaml
└── staging.yaml
```
In this project `staging/eu/stack.yaml` has a dependency on the output of
`dev/users/iam.yaml`. If you wanted to create the Stack `staging/eu/stack.yaml`,
Sceptre will resolve all of it's dependencies, including `dev/users/iam.yaml`,
before attempting to create the Stack.
## Usage
Sceptre can be used from the CLI, or imported as a Python package.
## CLI
```text
Usage: sceptre [OPTIONS] COMMAND [ARGS]...
Sceptre is a tool to manage your cloud native infrastructure deployments.
Options:
--version Show the version and exit.
--debug Turn on debug logging.
--dir TEXT Specify sceptre directory.
--output [text|yaml|json] The formatting style for command output.
--no-colour Turn off output colouring.
--var TEXT A variable to replace the value of an item in
config file.
--var-file FILENAME A YAML file of variables to replace the values
of items in config files.
--ignore-dependencies Ignore dependencies when executing command.
--merge-vars Merge variables from successive --vars and var
files.
--help Show this message and exit.
Commands:
create Creates a stack or a change set.
delete Deletes a stack or a change set.
describe Commands for describing attributes of stacks.
estimate-cost Estimates the cost of the template.
execute Executes a Change Set.
generate Prints the template.
launch Launch a Stack or StackGroup.
list Commands for listing attributes of stacks.
new Commands for initialising Sceptre projects.
set-policy Sets Stack policy.
status Print status of stack or stack_group.
update Update a stack.
validate Validates the template.
```
## Python
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()`.
```python
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](https://docs.sceptre-project.org/)
## Tutorial and Documentation
- [Get Started](https://docs.sceptre-project.org/latest/docs/get_started.html)
- [Documentation](https://docs.sceptre-project.org/)
## Communication
Sceptre community discussions happen in the #sceptre chanel in the
[og-aws Slack](https://github.com/open-guides/og-aws). To join click
on to create an account and join the
#sceptre channel.
Follow the [SceptreOrg Twitter account](https://twitter.com/SceptreOrg) to get announcements on the latest releases.
## Contributing
See our [Contributing Guide](CONTRIBUTING.md)
## Sponsors
[](https://sagebionetworks.org)
[](https://www.godaddy.com)
[](https://www.cloudreach.com)
%package help
Summary: Development documents and examples for sceptre
Provides: python3-sceptre-doc
%description help
# Sceptre
[](https://app.circleci.com/pipelines/github/Sceptre)
[](https://hub.docker.com/r/sceptreorg/sceptre)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://pypi.org/project/sceptre/)
[](https://github.com/Sceptre/sceptre/blob/main/LICENSE)
## About
Sceptre is a tool to drive
[AWS CloudFormation](https://aws.amazon.com/cloudformation). It automates the
mundane, repetitive and error-prone tasks, enabling you to concentrate on
building better infrastructure.
## Features
- Code reuse by separating a Stack's template and its configuration
- Support for templates written in JSON, YAML, Jinja2 or Python DSLs such as
Troposphere
- Dependency resolution by passing of Stack outputs to parameters of dependent
Stacks
- Stack Group support by bundling related Stacks into logical groups (e.g. dev
and prod)
- Stack Group-level commands, such as creating multiple Stacks with a single
command
- Fast, highly parallelised builds
- Built in support for working with Stacks in multiple AWS accounts and regions
- Infrastructure visibility with meta-operations such as Stack querying
protection
- Support for inserting dynamic values in templates via customisable Resolvers
- Support for running arbitrary code as Hooks before/after Stack builds
## Benefits
- Utilises cloud-native Infrastructure as Code engines (CloudFormation)
- You do not need to manage state
- Simple templates using popular templating syntax - Yaml & Jinja
- Powerful flexibility using a mature programming language - Python
- Easy to integrate as part of a CI/CD pipeline by using Hooks
- Simple CLI and API
- Unopinionated - Sceptre does not force a specific project structure
## Install
### Using pip
`$ pip install sceptre`
More information on installing sceptre can be found in our
[Installation Guide](https://docs.sceptre-project.org/latest/docs/install.html)
### Using Docker Image
View our [Docker repository](https://hub.docker.com/repositories/sceptreorg).
Images available from version 2.0.0 onward.
To use our Docker image follow these instructions:
1. Pull the image `docker pull sceptreorg/sceptre:[SCEPTRE_VERSION_NUMBER]` e.g.
`docker pull sceptreorg/sceptre:2.5.0`. Leave out the version number if you
wish to run `latest` or run `docker pull sceptreorg/sceptre: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 AWS config to your docker container. E.g.
`docker run -v $(pwd):/project -v /Users/me/.aws/:/root/.aws/:ro sceptreorg/sceptre:latest --help`
If you want to use a custom ENTRYPOINT simply amend the Docker command:
`docker run -ti --entrypoint='' sceptreorg/sceptre: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.
## 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`:
```sh
$ tree
.
├── config
│ └── dev
│ ├── config.yaml
│ ├── subnets.yaml
│ └── vpc.yaml
└── templates
├── subnets.py
└── vpc.py
```
We can create a Stack with the `create` command. This `vpc` Stack contains a
VPC.
```sh
$ sceptre create dev/vpc.yaml
dev/vpc - Creating stack dev/vpc
VirtualPrivateCloud AWS::EC2::VPC CREATE_IN_PROGRESS
dev/vpc VirtualPrivateCloud AWS::EC2::VPC CREATE_COMPLETE
dev/vpc sceptre-demo-dev-vpc AWS::CloudFormation::Stack CREATE_COMPLETE
```
The `subnets` Stack contains a subnet which must be created in the VPC. To do
this, we need to pass the VPC ID, which is exposed as a Stack output of the
`vpc` Stack, to a parameter of the `subnets` Stack. Sceptre automatically
resolves this dependency for us.
```sh
$ sceptre create dev/subnets.yaml
dev/subnets - Creating stack
dev/subnets Subnet AWS::EC2::Subnet CREATE_IN_PROGRESS
dev/subnets Subnet AWS::EC2::Subnet CREATE_COMPLETE
dev/subnets sceptre-demo-dev-subnets AWS::CloudFormation::Stack CREATE_COMPLETE
```
Sceptre implements meta-operations, which allow us to find out information about
our Stacks:
```sh
$ sceptre list resources dev/subnets.yaml
- LogicalResourceId: Subnet
PhysicalResourceId: subnet-445e6e32
dev/vpc:
- LogicalResourceId: VirtualPrivateCloud
PhysicalResourceId: vpc-c4715da0
```
Sceptre provides Stack Group level commands. This one deletes the whole `dev`
Stack Group. The subnet exists within the vpc, so it must be deleted first.
Sceptre handles this automatically:
```sh
$ sceptre delete dev
Deleting stack
dev/subnets Subnet AWS::EC2::Subnet DELETE_IN_PROGRESS
dev/subnets - Stack deleted
dev/vpc Deleting stack
dev/vpc VirtualPrivateCloud AWS::EC2::VPC DELETE_IN_PROGRESS
dev/vpc - Stack deleted
```
> Note: Deleting Stacks will _only_ delete a given Stack, or the Stacks that are
> directly in a given StackGroup. By default Stack dependencies that are
> external to the StackGroup are not deleted.
Sceptre can also handle cross Stack Group dependencies, take the following
example project:
```sh
$ tree
.
├── config
│ ├── dev
│ │ ├── network
│ │ │ └── vpc.yaml
│ │ ├── users
│ │ │ └── iam.yaml
│ │ ├── compute
│ │ │ └── ec2.yaml
│ │ └── config.yaml
│ └── staging
│ └── eu
│ ├── config.yaml
│ └── stack.yaml
├── hooks
│ └── stack.py
├── templates
│ ├── network.json
│ ├── iam.json
│ ├── ec2.json
│ └── stack.json
└── vars
├── dev.yaml
└── staging.yaml
```
In this project `staging/eu/stack.yaml` has a dependency on the output of
`dev/users/iam.yaml`. If you wanted to create the Stack `staging/eu/stack.yaml`,
Sceptre will resolve all of it's dependencies, including `dev/users/iam.yaml`,
before attempting to create the Stack.
## Usage
Sceptre can be used from the CLI, or imported as a Python package.
## CLI
```text
Usage: sceptre [OPTIONS] COMMAND [ARGS]...
Sceptre is a tool to manage your cloud native infrastructure deployments.
Options:
--version Show the version and exit.
--debug Turn on debug logging.
--dir TEXT Specify sceptre directory.
--output [text|yaml|json] The formatting style for command output.
--no-colour Turn off output colouring.
--var TEXT A variable to replace the value of an item in
config file.
--var-file FILENAME A YAML file of variables to replace the values
of items in config files.
--ignore-dependencies Ignore dependencies when executing command.
--merge-vars Merge variables from successive --vars and var
files.
--help Show this message and exit.
Commands:
create Creates a stack or a change set.
delete Deletes a stack or a change set.
describe Commands for describing attributes of stacks.
estimate-cost Estimates the cost of the template.
execute Executes a Change Set.
generate Prints the template.
launch Launch a Stack or StackGroup.
list Commands for listing attributes of stacks.
new Commands for initialising Sceptre projects.
set-policy Sets Stack policy.
status Print status of stack or stack_group.
update Update a stack.
validate Validates the template.
```
## Python
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()`.
```python
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](https://docs.sceptre-project.org/)
## Tutorial and Documentation
- [Get Started](https://docs.sceptre-project.org/latest/docs/get_started.html)
- [Documentation](https://docs.sceptre-project.org/)
## Communication
Sceptre community discussions happen in the #sceptre chanel in the
[og-aws Slack](https://github.com/open-guides/og-aws). To join click
on to create an account and join the
#sceptre channel.
Follow the [SceptreOrg Twitter account](https://twitter.com/SceptreOrg) to get announcements on the latest releases.
## Contributing
See our [Contributing Guide](CONTRIBUTING.md)
## Sponsors
[](https://sagebionetworks.org)
[](https://www.godaddy.com)
[](https://www.cloudreach.com)
%prep
%autosetup -n sceptre-4.0.2
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-sceptre -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Tue Apr 11 2023 Python_Bot - 4.0.2-1
- Package Spec generated