This repo facilitates the management of environment variables for a given Unee-T installation.
This is one of the dependency which is called when you deploy several of the Unee-T modules we need for a complete Unee-T installation.
This will create the following functions:
- GetSecret: Get the value of an AWS Parameter from the paramater store based on the AWS variable name.
- New:
- Bucket: Create the S3 Bucket we need for a given Unee-T service.
- SNS: Create the arn endpoint we need when we deploy Unee-T dependencies
- Udomain: Create the urls for each service we need for a given Unee-T environment based on the DOMAIN and STAGE (DEV, DEMO or PROD).
- BugzillaDSN: get the string needed to access the bugzilla database. This is based on the AWS variables
- MYSQL_HOST
- MYSQL_PORT
- BUGZILLA_DB_NAME
- BUGZILLA_DB_USER
- BUGZILLA_DB_PASSWORD
- Protect: Make sure all calls are protected with the API key for this installation using: curl -H 'Authorization: Bearer secret' style
- Towr: A workaround for gorilla/pat: https://stackoverflow.com/questions/50753049/
In each of the environments that will need this code, the following AWS secrets MUST have been declared:
- DOMAIN
- INSTALLATION_ID
- STAGE
- DEFAULT_REGION
- MYSQL_HOST
- MYSQL_PORT
- BUGZILLA_DB_NAME
- BUGZILLA_DB_USER
- BUGZILLA_DB_PASSWORD
For the following repositories, the dependancy is declared in the file go.mod
:
- Tag release this repo with a version number [version]
- In each of the repositories that uses this codebase (see above),
- Update the go dependancy
go get -u
See Using Go Modules for more information - Deploy the updated code (this is usually done via a tag release of the code in the repo for that code).
- Update the go dependancy
For the following modules the dependency is declared directly in the file main.go
:
- Tag release this repo with a version number [version]
- In each of the repositories that uses this codebase (see above),
- update the relevant line in file
main.mod
to the new [version] number : Example:require ( ... github.com/unee-t-ins/env [version] ... )
- Deploy the updated code (this is usually done via a tag release of the code in the repo for that code).
- update the relevant line in file