Skip to content

cn-terraform/terraform-aws-jenkins

Repository files navigation

Jenkins Terraform Module for AWS

This Terraform module deploys a Jenkins Master Server providing high availability and scalability.

Usage

Check valid versions on:

Other modules that you may need to use this module

The Networking module:

Install pre commit hooks.

Pleas run this command right after cloning the repository.

    pre-commit install

For that you may need to install the folowwing tools:

In order to run all checks at any point run the following command:

    pre-commit run --all-files

Requirements

Name Version
terraform >= 0.13
aws >= 4

Providers

Name Version
aws 4.27.0

Modules

Name Source Version
aws_cw_logs cn-terraform/cloudwatch-logs/aws 1.0.12
ecs-cluster cn-terraform/ecs-cluster/aws 1.0.10
ecs-fargate-service cn-terraform/ecs-fargate-service/aws 2.0.34
td cn-terraform/ecs-fargate-task-definition/aws 1.0.30

Resources

Name Type
aws_efs_file_system.jenkins_data resource
aws_efs_mount_target.jenkins_data_mount_targets resource
aws_security_group.jenkins_data_allow_nfs_access resource
aws_security_group_rule.jenkins_data_allow_nfs_access_rule resource
aws_subnet.private_subnets data source

Inputs

Name Description Type Default Required
create_kms_key If true a new KMS key will be created to encrypt the logs. Defaults true. If set to false a custom key can be used by setting the variable log_group_kms_key_id bool false no
enable_autoscaling (Optional) If true, autoscaling alarms will be created. bool true no
lb_waf_web_acl_arn ARN of a WAFV2 to associate with the ALB string "" no
log_group_kms_key_id The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested. string null no
log_group_retention_in_days (Optional) Specifies the number of days you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 3653, and 0. If you select 0, the events in the log group are always retained and never expire. Default to 30 days. number 30 no
name_prefix Name prefix for resources on AWS any n/a yes
private_subnets_ids List of Private Subnets IDs list(any) n/a yes
public_subnets_ids List of Public Subnets IDs list(any) n/a yes
region AWS Region the infrastructure is hosted in any n/a yes
vpc_id ID of the VPC any n/a yes

Outputs

Name Description
jenkins_master_alb_arn Jenkins Master Application Load Balancer ARN
jenkins_master_alb_arn_suffix Jenkins Master Application Load Balancer ARN Suffix
jenkins_master_alb_dns_name Jenkins Master Application Load Balancer DNS Name
jenkins_master_alb_id Jenkins Master Application Load Balancer ID
jenkins_master_alb_zone_id Jenkins Master Application Load Balancer Zone ID