Skip to content

Latest commit

 

History

History
102 lines (70 loc) · 4.61 KB

README.md

File metadata and controls

102 lines (70 loc) · 4.61 KB

Upkeep: jira-example

This is an example project for creating JIRA Data Centre cloud formation on AWS and testing the performance of your JIRA addon using Gatling framework.

This example uses the following maven plugins:

What you need to run this example

1. An AWS Account

You will need an AWS account with ability to create RDS Postgres database, EC2 instances, Launch Configurations, Cloud Formation, Subnets, Elastic System Storage, and Security Groups.

2. SSH key-pair

Due to SSH problems, generate two SSH keys, one which will be used by Gatling maven plugin and one that will be used by cloud formation. In the pom.xml, I have chosen two key-pairs: gatling-keypair and jira-keypair. Modify the pom.xml to your needs.

3. IAM User Credentails

You will need IAM user with the correct access key and secret key. Log into AWS console https://console.aws.amazon.com/iam/home and create two users:

  • One with S3 bucket read only permission
  • Second one with read and write permissions to create the necessary resources for creating a cloud formation:
    • Access to EC2 instances
    • Access to RDS
    • Access to S3 (used by Gatling plugin to upload results)
    • Access to VPC (if you use template that creates one)
    • Access to Elastic File System
    • Access to Cloud Formation

You will need to update src/test/resources/s3.aws.user credentials file with S3 IAM user. Also updating aws.properties with the second IAM user to launch cloud formation.

4. S3 bucket

Any S3 bucket that will be used for downloading backup of the JIRA sample data.

5. JIRA Data Centre template

You can use a template provided by AmazonAWS: https://s3.amazonaws.com/quickstart-reference/atlassian/jira/latest/templates/JiraDataCenter.template Please note that this template attaches to already existing VPC and subnets. You will have to modify the pom.xml template properties and change the VPC value to the correct one! The reason of choosing this template is that we can access the EC2 instances remotely. The default JIRA quick start template creates private subnets and therefore disabling SSH access from remote machine.

You can read more about the template here: https://aws.amazon.com/quickstart/architecture/jira/

And the PDF manual is located here: https://s3.amazonaws.com/quickstart-reference/atlassian/jira/latest/doc/jira-software-data-center-on-the-aws-cloud.pdf

6. Sample project Data

Sample data, a Postgre SQL backup and indexes. You can use the sample project data from here: https://github.com/hindsightsoftware/upkeep-jira-cloudformation-maven-plugin/sample-data which contains a sample project data generated by JIRA.

Upload the data (the tar file and psql data) into your bitbucket and update the pom.xml properties:

  • jira.cloudformation.s3.restore.bucket
  • jira.cloudformation.s3.restore.psql
  • jira.cloudformation.s3.restore.index

If you wish not to restore any data, set jira.cloudformation.s3.restore.enabled to false.

7. EC2 AMI image ID

Depending on your region, you will need to find the Amazon Linux AMI ID. For example, us-east-1 uses ami-8c1be5f6 for the default Amazon Linux image. You might need to update the ec2.ami.id in pom.xml

8. Optional JIRA addon

This example contains a tutorial sample JIRA addon myPlugin-1.0.0-SNAPSHOT.obr which will be uploaded including a timebomb license. If you wish not to upload any addon, simply remove the jira-upload-addon-maven-plugin plugin from the pom.xml. If you wish not to upload any license, add jira.addon.license.enabled property and set it to false.

Running this example

To run the example using local instance of Gatling, run:

$ mvn verify -Plocal

To run using remote instances of Gatling EC2 machines, run:

$ mvn verify -Premote

The reports will be generated in target/gatling/basicsimulation-ID where the ID is a unix timestamp. The reports will also be uploaded to S3 bucket. If you wish to not to upload the reports, set s3.upload.enabled property to false.