Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

runtime-manager-action

Action test UbuntuAction test MacOSAction test Windows

GitHub action to authenticate and consume StackSpot Runtime API.

Note: This action is supported on all runners operating systems (ubuntu, macos, windows)

📚 Usage

Requirements

To get the account keys (CLIENT_ID, CLIENT_KEY and CLIENT_REALM), please login using a ADMIN user on the StackSpot Portal, and generate new keys at https://stackspot.com/en/settings/access-token.

Use Case

steps:
- uses: stack-spot/runtime-manager-action@v2.1id: runwith:
CLIENT_ID: ${{ secrets.CLIENT_ID }}CLIENT_KEY: ${{ secrets.CLIENT_KEY }}CLIENT_REALM: ${{ secrets.CLIENT_REALM }}WORKSPACE: my_workspaceENVIRONMENT: my_environmentVERSION_TAG: my_tagSKIP_DEPLOY: falseTF_STATE_BUCKET_NAME: my_bucketTF_STATE_REGION: regionIAC_BUCKET_NAME: my_bucketIAC_REGION: regionVERBOSE: true # not mandatoryBRANCH: main # not mandatoryOPEN_API_PATH: swagger.yaml # not mandatoryDYNAMIC_INPUTS: --key1 value1 --key2 value2WORKDIR: ./my-folder # not mandatory
- name: Check Run Tasks Datarun: echo "Tasks = ${{ steps.run.outputs.tasks }}"shell: bash

▶️ Action Inputs

FieldMandatoryDefault ValueObservation
CLIENT_IDYESN/AStackSpot Client ID.
CLIENT_KEYYESN/AStackSpot Client KEY.
CLIENT_REALMYESN/AStackSpot Client Realm.
WORKSPACEYESN/AStackSpot Workspace where the project has been registered.
ENVIRONMENTYESN/AStackSpot Environment where the project will be deployed.
VERSION_TAGYESN/ADeploy version tag
SKIP_DEPLOYNOfalseIf set as true, checks if manifesto had any changes, in case it had no changes, it will set deploy as SKIPPED and will not apply infra plugins in the cloud.
TF_STATE_BUCKET_NAMEYESN/AAWS S3 Bucket name where the generated tfstate files will be stored.
TF_STATE_REGIONYESN/AAWS region where the TF State will be stored (e.g: us-east-1).
IAC_BUCKET_NAMEYESN/AAWS S3 Bucket name where the generated IaC files will be stored.
IAC_REGIONYESN/AAWS region where the IaC will be stored (e.g: us-east-1).
VERBOSENOfalseWhether to show extra logs during execution. (e.g: true).
BRANCHNOtrueWhether or not to checkout automatically on repository (e.g: false).
OPEN_API_PATHNON/APath to OpenAI / Swagger file within the repository (e.g: path/to/file.yml)
DYNAMIC_INPUTSNON/ADynamic inputs used with Jinja on IAC, informed as --key1 value1 --key2 value2
WORKDIRNO./Path to the directory where the .stk is located.

More information on some inputs

BRANCH

When the input BRANCH is used, within the IAC step of the tasks, the repository will be cloned within the terraform.zip with the following structure, in case repository files are necessary within terraform.

Note: the contents of the branch input don't really matter, the branch cloned will be the branch used to dispatch the workflow as long as it is not empty

├── main.tf
├── outputs.tf
├── repodir
│ ├── .git/
│ ├── .stk/
│ │ └── stk.yaml
│ ├── src/
│ ├── tests/
│ └── ... {repository-files}
└── variables.tf
└── ... {templates-deploy}
DYNAMIC_INPUTS

When the input DYNAMIC_INPUTS is used, the flags passes in these inputs will be added to every plugin applied as their input, and could be used by Jinja engine to modify the IaC file created

e.g:

DYNAMIC_INPUTS = --app_repository="https://github.com/stack-spot/runtime-manager-action"

main.tf

{%ifapp_repositoryisdefined%}
resource_source = {{ app_repository }}
{%else%}
resource_source = "default"
{%endif%}
WORKDIR

When the input WORKDIR is used, it should point to the path where a .stk folder is located and that it should be used as the source of the new deployment. This is specially useful if you contain multiple Stackspot infras within a single repository.

e.g:WORKDIR="./ecr-infra" will deploy the stk.yaml within that folder, but if you want to deploy the application, you should use WORKDIR="./application"

Repository structure

├── .git/
├── ecr-infra/
│ ├── .stk/
│ │ └── stk.yaml
├── application/
│ ├── .stk/
│ │ └── stk.yaml
│ ├── src/
│ ├── tests/
│ └── ...
└── README.MD

License

Apache License 2.0

Releases

Packages

Contributors

Languages