This tool is designed to be run in a cron and detected instance events. When events are detected a JIRA issue is opened up
Example:
cp config-example.toml config.toml
# edit config file
./aws-events
The minimal IAM permissions required to run the app are below.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:DescribeRegions",
"ec2:DescribeInstanceStatus"
],
"Resource": "*"
}
]
}
It is strongly recommended you create a user with only these permissions rather then using your personal keys
By default the application will check all regions, however you can pass one or more --region
flags to define specific regions to check.
./aws-events --region us-east-1 --region us-east-2
Config | Purpose | Environment Variable | Default |
---|---|---|---|
application.log_level | Set application log level, supported options are debug, warn, error, fatal | AWS_EVENT_LOG_LEVEL | info |
jira.protocol | Protocol to use, http or https | AWS_EVENT_JIRA_PROTOCOL | https |
jira.port | Jira server port | AWS_EVENT_JIRA_PORT | 443 |
jira.host | Jira server hostname | AWS_EVENT_JIRA_HOST | "jira-eng-gpk2.example.com" |
jira.path | Jira server bath path | AWS_EVENT_JIRA_PATH | /jira |
jira.username | Jira server username | AWS_EVENT_JIRA_USERNAME | |
jira.password | Jira server password | AWS_EVENT_JIRA_PASSWORD | |
jira.environmentPriorityMapping | Mapping between environment and issue priority | production = "P1" integration = "P2" default = "P3" |
|
aws.profileName | aws config profilee name | AWS_EVENT_AWS_PROFILE_NAME | sparkdev |
ledis.path | Path to database file for state | AWS_EVENT_LEDIS_PATH | "./database/ledis |
ledis.database | Database to use, suggest never changing this | AWS_EVENT_LEDIS_DATABASE | 0 |
ledis.key_expire_time | Time ( in seconds ) to expire keys in k/v data store, default is 60 days | AWS_EVEMNT_LEDIS_KEY_EXPIRE_TIME | 5184000 |
Note, this application will read from a netrc file as well for authenteication
machine jira-eng-gpk2.example.com
password xxxxx
login xxxxx
dep ensure
make
docker build -t johntdyer/aws-events:0.0.1 .
docker run --rm -it \
-e AWS_EVENT_JIRA_USERNAME=johndye \
-e AWS_EVENT_JIRA_PASSWORD='xxxxx' \
-v /Users/johndye/.aws:/root/.aws \
-v `pwd`/config-mount:/root/config-mount/
johntdyer/aws-events:0.0.1
- Mapping of enviromnment to JIRA issue priority. Example integration is P4 and production is P3.
- Configurable JIRA Server, Issue type, Issue Project
- Toml configuration, with overrides via environmnent variables
- Issue state is tracted in Ledis key value store to avoid duplicate notifications
- Issues are opened with formatting that includes all tags, environment, ect