Giter Site home page Giter Site logo

ci-cd's Introduction

AWS CI/CD Pipeline via Jenkins - Terraform Module

Terraform module which creates a Jenkins environment hosted on AWS ECS(Fargate)

It creates the following resources:

  • Virtual Private Cloud
    • Customizable number of Availability Zones for reliability
    • Application Load Balancer
    • Subnets (Public & Private)
    • Internet Gateway
    • Nat Gateways
    • Route Tables (Public & Private)
    • Route53 Records
  • Jenkins
    • Master (via Docker container hosted on Elastic Container Service (Fargate). While only operating in one AZ at a time, it will recreate in another for disaster recovery )
      • Admin password (generated and stored on Secrets Manager)
    • Slaves (created on demand by the Jenkins Master. Hosted on Elastic Container Service (Fargate). These are spread across multiple AZ )
    • Logging via Cloudwatch
  • Application Load Balancer
  • Storage for the Jenkins Master (via Elastic File System)
  • Discovery Service for Jenkins Master (via Cloud Map)
  • IAM Roles for the above
  • Security Groups for the above

Dependencies

An AWS account
Terraform 13+
A SSL certificate to use with the Application Load Balancer

Variables

Variable Description Type Default Required
Region Which AWS region to build the infrastructure String US East 1 No
CertificateArn An ARN for your SSL certificate String N/A Yes
ClusterName What to name your ECS cluster String default-cluster No
JenkinsJNLPPort Which JNLP Port Jenkins should use Number 50000 No
JenkinsUsername Which username to login to Jenkins with String developer No
JenkinsURL Which URL should redirect to the Jenkins master String N/A Yes
NameSpace The NameSpace for Jenkins in the discovery service String discoverjenkins No
DiscoveryName The name for Jenkins in the discovery service String jenkins No
route53_alias_name The alias name for Jenkins in DNS String N/A Yes
How_Many_AvailabilityZones How many Availability Zones your infrastructure should be spread across for reliability (minimum 2) Number 2 No

ci-cd's People

Contributors

silver-f0x avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.