diff --git a/README.md b/README.md index 632632fa..da844e93 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![GitHub Latest Release)](https://img.shields.io/github/v/release/cloudbees/terraform-aws-cloudbees-ci-eks-addon?logo=github) ![GitHub Issues](https://img.shields.io/github/issues/cloudbees/terraform-aws-cloudbees-ci-eks-addon?logo=github) [![Code Quality: Terraform](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/terraform.yml/badge.svg?event=pull_request)](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/terraform.yml) [![Code Quality: Super-Linter](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/superlinter.yml/badge.svg?event=pull_request)](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/superlinter.yml) [![Documentation: MD Links Checker](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/md-link-checker.yml/badge.svg?event=pull_request)](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/md-link-checker.yml) [![Documentation: terraform-docs](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/terraform-docs.yml/badge.svg?event=pull_request)](https://github.com/cloudbees/terraform-aws-cloudbees-ci-eks-addon/actions/workflows/terraform-docs.yml) [![gitleaks badge](https://img.shields.io/badge/protected%20by-gitleaks-blue)](https://github.com/zricethezav/gitleaks#pre-commit) [![gitsecrets](https://img.shields.io/badge/protected%20by-gitsecrets-blue)](https://github.com/awslabs/git-secrets) -> Deploy CloudBees CI to AWS EKS Clusters with this add-on. +Deploy CloudBees CI to AWS EKS Clusters with this add-on. ## Usage @@ -32,7 +32,7 @@ Easing adoption of CloudBees CI by: - Using [AWS Terraform EKS Addons](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/) as the single point of truth for third-party EKS Addons. Note that some of the addons are required and others are optional. > [!NOTE] -> For a better understading of the blueprints' scope, please read the section [Consumption](https://aws-ia.github.io/terraform-aws-eks-blueprints/#consumption) and [Terraform Caveats](https://aws-ia.github.io/terraform-aws-eks-blueprints/#terraform-caveats) in AWS the EKS blueprints documentation. +> For a better understading of the AWS the EKS blueprints' scope, please read the section [Consumption](https://aws-ia.github.io/terraform-aws-eks-blueprints/#consumption) and [Terraform Caveats](https://aws-ia.github.io/terraform-aws-eks-blueprints/#terraform-caveats) in its documentation. ## CloudBees License diff --git a/blueprints/01-getting-started/README.md b/blueprints/01-getting-started/README.md index e9ea653b..04b9d0bf 100644 --- a/blueprints/01-getting-started/README.md +++ b/blueprints/01-getting-started/README.md @@ -8,13 +8,18 @@ Get started with the CloudBees CI add-on by reviewing this example which deploys - [External DNS](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/external-dns/) - [EBS CSI Driver](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) to allocate EBS volumes for hosting [$JENKINS_HOME](https://docs.cloudbees.com/docs/cloudbees-ci/latest/backup-restore/jenkins-home). +## Architecture + +![Architecture](architecture/getting-started.drawio.svg) + ## Prerequisites ### Tooling The required tooling as described in the [Getting Started Guide - Prerequisites](https://aws-ia.github.io/terraform-aws-eks-blueprints/getting-started/#prerequisites) -> **_NOTE:_** For contributing there is a dedicated page [CONTRIBUTING.md](../../CONTRIBUTING.md). +> [!NOTE] +> For contributing there is a dedicated page [CONTRIBUTING.md](../../CONTRIBUTING.md). ### AWS Authentication @@ -69,14 +74,14 @@ These blueprints rely on an existing Hosted Zone in AWS Route53. If you don't ha ## Deploy -First of all, customize your variables by copying `.auto.tfvars.example` to `.auto.tfvars`. +First of all, customize your terraform values by copying `.auto.tfvars.example` to `.auto.tfvars`. Initialize the root module and any associated configuration for providers and finally create the resources and deploy CloudBees CI to an EKS Cluster. Please refer to [Getting Started - Amazon EKS Blueprints for Terraform - Deploy](https://aws-ia.github.io/terraform-aws-eks-blueprints/getting-started/#deploy) -In case, it is required to review the resources before applying the changes, remove the flag `-auto-approve` from the commands. - For more detailed information, see the documentation for the [Terraform Core workflow](https://www.terraform.io/intro/core-workflow). +TODO: Deloyed resources link to AWS Resource Groups + > [!TIP] > These steps are automated in the [Makefile](../../Makefile) at the root of the project under the target `tfDeploy`. @@ -131,7 +136,3 @@ To teardown and remove the resources created in the blueprint, the typical steps > [!TIP] > These steps are automated in the [Makefile](../../Makefile) at the root of the project under the target `tfDestroy`. - -## Architecture - -![Architecture](../diagrams/getting-started.drawio.png) diff --git a/blueprints/01-getting-started/architecture/getting-started.drawio.svg b/blueprints/01-getting-started/architecture/getting-started.drawio.svg new file mode 100644 index 00000000..a6e0ce91 --- /dev/null +++ b/blueprints/01-getting-started/architecture/getting-started.drawio.svg @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ AWS Cloud +
+
+
+
+ + AWS Cloud + +
+
+ + + + + +
+
+
+ + Custom VPC + +
+
+
+
+ + Custom VPC + +
+
+ + + + + +
+
+
+ Availability Zone 1 +
+
+
+
+ + Availability Zone 1 + +
+
+ + + + + +
+
+
+ Internet +
+ Gateway +
+
+
+
+ + Internet... + +
+
+ + + + + +
+
+
+ Route 53 +
+ Hosted Zone +
+
+
+
+ + Route 53... + +
+
+ + + + + +
+
+
+ Region +
+
+
+
+ + Region + +
+
+ + + + + +
+
+
+ + EBS + +
+
+
+
+ + EBS + +
+
+ + + + + +
+
+
+ Certificate +
+ Manager +
+
+
+
+ + Certificate... + +
+
+ + + + + +
+
+
+ Application Load +
+ Balancing (ALB) +
+
+
+
+ + Application L... + +
+
+ + + + + +
+
+
+ K8s Cluster +
+ EKS +
+
+
+
+ + K8s Cluster... + +
+
+ + + + + +
+
+
+ Public subnet +
+
+
+
+ + Public subnet + +
+
+ + + + + +
+
+
+ NAT +
+ Gateway +
+
+
+
+ + NAT... + +
+
+ + + + + +
+
+
+ Private Subnet +
+
+
+
+ + Private Subnet + +
+
+ + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/blueprints/01-getting-started/main.tf b/blueprints/01-getting-started/main.tf index 58c99e20..1a803bef 100644 --- a/blueprints/01-getting-started/main.tf +++ b/blueprints/01-getting-started/main.tf @@ -21,7 +21,7 @@ locals { route53_zone_id = data.aws_route53_zone.this.id route53_zone_arn = data.aws_route53_zone.this.arn #Number of AZs per region https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html - azs = slice(data.aws_availability_zones.available.names, 0, 3) + azs = slice(data.aws_availability_zones.available.names, 0, 1) tags = merge(var.tags, { "tf:blueprint" = local.name diff --git a/blueprints/02-at-scale/README.md b/blueprints/02-at-scale/README.md index adee42f9..2998933b 100644 --- a/blueprints/02-at-scale/README.md +++ b/blueprints/02-at-scale/README.md @@ -4,10 +4,18 @@ Once you have familiarized yourself with the [Getting Started blueprint](../01-g - [Cluster Autoscaler](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/cluster-autoscaler/) -- [EFS CSI Driver](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/aws-efs-csi-driver/). CloudBees CI HA/HS requirement. -- [Metrics Server](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/aws-efs-csi-driver/). CloudBees CI HA/HS requirement for Horizontal Pod Autoscaling. +- [EFS CSI Driver](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/aws-efs-csi-driver/). It can be used by non-HA/HS (optional) and it is required by HA/HS Controllers. +- [Metrics Server](https://aws-ia.github.io/terraform-aws-eks-blueprints-addons/main/addons/aws-efs-csi-driver/). It is required by HA/HS Controllers for Horizontal Pod Autoscaling. -Additionally, it uses [CloudBees Configuration as Code](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-oc/casc-intro) for configuring the [Operation Center](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-oc/) and [Controllers](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-controller/). +Additionally, it uses [CloudBees Configuration as Code](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-oc/casc-intro) for configuring the [Operation Center](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-oc/) and [Controllers](https://docs.cloudbees.com/docs/cloudbees-ci/latest/casc-controller/) enabling [New Features for Streamlined DevOps](https://www.cloudbees.com/blog/cloudbees-ci-exciting-new-features-for-streamlined-devops) + +- [CloudBees CI High Availability (active/active)](https://www.cloudbees.com/capabilities/continuous-integration/high-availability-horizontal-scalability) +- [CloudBees CI Workspace Caching](https://www.cloudbees.com/capabilities/continuous-integration/workspace-caching) +- [CloudBees CI Pipeline Explorer](https://www.cloudbees.com/capabilities/continuous-integration/pipeline-explorer) + +## Architecture + +![Architecture](architecture/at-scale.drawio.svg) ## Prerequisites @@ -57,7 +65,3 @@ Refer to the [Getting Started Blueprint - Prerequisites](../01-getting-started/R ## Destroy Refer to the [Getting Started Blueprint - Prerequisites](../01-getting-started/README.md#destroy) section. - -## Architecture - -![Architecture]() diff --git a/blueprints/02-at-scale/architecture/at-scale.drawio.svg b/blueprints/02-at-scale/architecture/at-scale.drawio.svg new file mode 100644 index 00000000..af7c4190 --- /dev/null +++ b/blueprints/02-at-scale/architecture/at-scale.drawio.svg @@ -0,0 +1,734 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ AWS Cloud +
+
+
+
+ + AWS Cloud + +
+
+ + + + + +
+
+
+ + Custom VPC + +
+
+
+
+ + Custom VPC + +
+
+ + + + + +
+
+
+ Availability Zone 1 +
+
+
+
+ + Availability Zone 1 + +
+
+ + + + + +
+
+
+ Availability Zone 2 +
+
+
+
+ + Availability Zone 2 + +
+
+ + + + + +
+
+
+ Internet +
+ Gateway +
+
+
+
+ + Internet... + +
+
+ + + + + +
+
+
+ Route 53 +
+ Hosted Zone +
+
+
+
+ + Route 53... + +
+
+ + + + + +
+
+
+ Region +
+
+
+
+ + Region + +
+
+ + + + + +
+
+
+ + EBS + +
+
+
+
+ + EBS + +
+
+ + + + + +
+
+
+ Certificate +
+ Manager +
+
+
+
+ + Certificate... + +
+
+ + + + + +
+
+
+ Application Load +
+ Balancing (ALB) +
+
+
+
+ + Application L... + +
+
+ + + + + +
+
+
+ Public subnet +
+
+
+
+ + Public subnet + +
+
+ + + + + +
+
+
+ NAT +
+ Gateway +
+
+
+
+ + NAT... + +
+
+ + + + + +
+
+
+ K8s Cluster +
+ EKS +
+
+
+
+ + K8s Cluster... + +
+
+ + + + + +
+
+
+ Public subnet +
+
+
+
+ + Public subnet + +
+
+ + + + + +
+
+
+ NAT +
+ Gateway +
+
+
+
+ + NAT... + +
+
+ + + + + +
+
+
+ Private Subnet +
+
+
+
+ + Private Subnet + +
+
+ + + + + + + +
+
+
+ K8s Apps +
+
+
+
+ + K8s Apps + +
+
+ + + + + +
+
+
+ CBCI Apps +
+
+
+
+ + CBCI Apps + +
+
+ + + + + +
+
+
+ CBCI Agents +
+
+
+
+ + CBCI Agen... + +
+
+ + + + + +
+
+
+ CBCI SPOT +
+ Agents +
+
+
+
+ + CBCI SPOT... + +
+
+ + + + + +
+
+
+ Availability Zone 2 +
+
+
+
+ + Availability Zone 2 + +
+
+ + + + + +
+
+
+ Public subnet +
+
+
+
+ + Public subnet + +
+
+ + + + + +
+
+
+ NAT +
+ Gateway +
+
+
+
+ + NAT... + +
+
+ + + + + +
+
+
+ EFS +
+
+
+
+ + EFS + +
+
+ + + + + +
+
+
+ Private Subnet +
+
+
+
+ + Private Subnet + +
+
+ + + + + +
+
+
+ CBCI Apps +
+
+
+
+ + CBCI Apps + +
+
+ + + + + +
+
+
+ CBCI Agents +
+
+
+
+ + CBCI Agen... + +
+
+ + + + + +
+
+
+ K8s Apps +
+
+
+
+ + K8s Apps + +
+
+ + + + + +
+
+
+ CBCI SPOT +
+ Agents +
+
+
+
+ + CBCI SPOT... + +
+
+ + + + + +
+
+
+ Private Subnet +
+
+
+
+ + Private Subnet + +
+
+ + + + + +
+
+
+ K8s Apps +
+
+
+
+ + K8s Apps + +
+
+ + + + + +
+
+
+ CBCI Apps +
+
+
+
+ + CBCI Apps + +
+
+ + + + + +
+
+
+ CBCI Agents +
+
+
+
+ + CBCI Agen... + +
+
+ + + + + +
+
+
+ CBCI SPOT +
+ Agents +
+
+
+
+ + CBCI SPOT... + +
+
+ + + + + +
+
+
+ Autoscaling +
+ Group +
+
+
+
+ + Autoscal... + +
+
+ + + + + +
+
+
+ Autoscaling +
+ Group +
+
+
+
+ + Autoscal... + +
+
+ + + + + + + +
+
+
+ Autoscaling +
+ Group +
+
+
+
+ + Autoscal... + +
+
+ + +
+ + + + + Text is not SVG - cannot display + + + +