Stacks Overview
A stack is a representation of the software delivery tooling available during action plan execution.
Stacks contain external configuration parameters that cannot be securely or reliably discovered from a source code repository.
Input Fields
Stacks parameters are provided as input fields in the action plan. The fields required by the stack file are under the inputs
key as key/value pairs.
Parameters defined in the stack configuration are only used when needed by a given action plan.
Inputs File
The inputs.json
is a JSON formatted configuration file that contains all of the stack inputs for a given environment.
Encryption
The inputs file contain secrets such as kuebconfigs, docker credentials, and other service credentials. The Stackfile must be encrypted at rest using sops with an age key.
Use the links below to install sops and age:
Run the below actions to create an encrypted stack configuration.
- Create the age private and public key.
age-keygen -o key.txt
- Encrypt your stack.json file using sops with age.
sops -e --age <age-public-key> stack.json > stack.enc.json
You should have a file named stack.enc.json
on your filesyste with the encrypted contents of your stack.json file.
You can name your encrypted file anything that you want, but you should avoid overwriting your stack file using a command such as:
sops -e --age <age-public-key> stack.json > stack.json
If you want to use the name stack.json you can add the -i
argument to sops to encrypt your stack configuration in place.
If you encrypt your stack.json in place, and you lose your age key, then you won't be able to recover your stack configuration.