https://github.com/redbox-mint/redbox-hook-terraform
ReDBox Portal Terraform Provisioner
https://github.com/redbox-mint/redbox-hook-terraform
Last synced: 5 days ago
JSON representation
ReDBox Portal Terraform Provisioner
- Host: GitHub
- URL: https://github.com/redbox-mint/redbox-hook-terraform
- Owner: redbox-mint
- License: gpl-3.0
- Created: 2019-09-16T22:29:19.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T00:38:30.000Z (almost 3 years ago)
- Last Synced: 2025-10-14T02:14:36.556Z (9 months ago)
- Language: TypeScript
- Size: 229 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Support: support/development/docker-compose.yml
Awesome Lists containing this project
README
# ReDBox Provisioner: Terraform
A Terraform provisioner for ReDBox.
This hook allows ReDBox to manage and execute Terraform manifests from ReDBox.
Responsibilities:
- Launch and parse Terraform return codes
- Manage Terraform modules and corresponding variables
- Capture and manage Terraform output
On it's own, this plugin doesn't come with any cloud-specific provisioners. You will need to install a cloud specific provisioner, as part of this Terraform-specific platform.
## Installation
To add this plugin to ReDBox portal:
- Clone this repo
- On your ReDBox portal source directory, run: `yarn add file:`
Start ReDBox Portal as usual.
If you are looking to develop this tool, see further information below.
## API
Your API files are in `typescript/api/**`.
- controllers
- services
## config & form-config
This configurations are redbox-portal dependent. They will allow redbox to be available as a record
If you require to have a form in your portal
- `config/recordtype`
- `config/workflow`
- `form-config/template-1.0-draft`
## index
Main entry point for the hook
### initialize
Init code before it gets hooked.
### routes
Controller routes exposed to the sails front-end
```javascript
'get /your/route' : YourController.method
```
### configure
Add configuration and services to your sails app
```javascript
sails.services['YourService'] = function() { };
sails.config = _.merge(sails.config, {object});
```
## test
First run `npm install`
Test your sails hook with mocha by running `npm test` before adding the hook to your redbox-portal.
It may cause your application to not lift.
```sh
$ npm test
> @uts-eresearch/sails-hook-redbox-template@1.0.0 test /Users/moises/source/code.research/sails-hook-redbox-template
> NODE_ENV=test node_modules/.bin/mocha
Basic tests ::
✓ should have a service
✓ should have a form
✓ should have a route
✓ sails does not crash
4 passing (864ms)
```
For more information on testing your hook go to : https://sailsjs.com/documentation/concepts/testing
## Development in redbox-portal
Requirements:
- Clone redbox-portal
- Create a symbolic link from `/api/core --> /api/core`
- Build the core files
A docker-compose.yml file is present in support/development and is setup to run the full ReDBox stack and install the hook. To run the stack there is a ReDBox Sails Hook Run Utility in the root of the project.
Usage
```
ReDBox Sails Hook Run Utility
Usage: ./runForDev.sh [-a|--(no-)angular] [-h|--help]
-a,--angular,--no-angular: Angular mode. Will ensure permissions are set correctly on the Sails working directory so that changes can be applied (off by default)
-h,--help: Prints help
```
Note: The first time the stack runs it may take some time as yarn initialises the hook within ReDBox Portal. All subsequent runs should be faster.