Skip to content

Commit

Permalink
#1 updating S3 bucket for GCS incl. instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewmc1 committed Jan 27, 2022
1 parent 58bde51 commit 935dea3
Show file tree
Hide file tree
Showing 15 changed files with 27 additions and 412 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ override.tf.json
# !example_override.tf

# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
# example: *tfplan*
*tfplan*
13 changes: 0 additions & 13 deletions AWS/1-Configure-Credentials-To-Access-AWS.md

This file was deleted.

52 changes: 26 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# DevOps-The-Hard-Way-AWS
# DevOps-The-Hard-Way-GCP

This tutorial contains a full, real-world solution for setting up an environment that is using DevOps technologies and practices for deploying apps and cloud services/cloud infrastructure to AWS.
This tutorial contains a full, real-world solution for setting up an environment that is using DevOps technologies and practices for deploying apps and cloud services/cloud infrastructure to GCP.


The repository contains free labs, documentation, diagrams, and docs for setting up an entire workflow and DevOps environment from a real-world perspective in AWS.
The repository contains free labs, documentation, diagrams, and docs for setting up an entire workflow and DevOps environment from a real-world perspective in GCP.

## DevOps Scenario
The scenario that you're currently facing is you work in an organization that is very monolithic. There is a ton of bare metal, virtualization, manual deployments of applications, and **old school** practices based on the current teams knowledge of IT.
Expand All @@ -24,44 +24,44 @@ https://github.com/AdminTurnedDevOps/Python-Sample-Application
## Technology Details
You will be using the following technologies and platforms to set up a DevOps environment.

1. AWS
- AWS will be used to host the application, cloud infrastructure, and any other services we may need to ensure the Uber app is deployed properly.
1. GCP
- GCP will be used to host the application, cloud infrastructure, and any other services we may need to ensure the Uber app is deployed properly.
2. GitHub
- To store the application and infrastructure/automation code
3. Python
- Python will be used for the Uber app (it is written in Python) and some automation efforts that aren't in Terraform.
4. Terraform
- Create an S3 bucket to store Terraform State files
- Create an AWS ECR repository with Terraform
- Create an EKS cluster
- Create an GCS bucket to store Terraform State files
- Create an GCP ECR repository with Terraform
- Create an GKE cluster
5. Docker
- Create a Docker image
- Store the Docker image in AWS ECR
- Store the Docker image in GCP Artifact Registry
6. Kubernetes
- To run the Docker image that's created for the containerized Uber app. Kubernetes, in this case, EKS, will be used to orchestrate the container.
7. CI/CD
- Use GitHub Actions to create an EKS cluster
- Use GitHub Actions to create an GKE Cluster
8. Automated testing
- Testing Terraform code with Checkov

## Labs
1. [Prerequisites](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/prerequisites.md)
1. [Prerequisites](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/prerequisites.md)
2. VPC - When running EKS, it requires specific networking. Because all environments will most likely be different, there's a CloudFormation template for this exact purpose.
- [Create EKS VPC](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/tree/main/EKS-VPC-CloudFormation)
3. AWS:
- [Configure credentials to access AWS at a programmatic level](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/AWS/1-Configure-Credentials-To-Access-AWS.md)
4. Terraform - The purpose of the Terraform section is to create all of the AWS cloud services you'll need from an environment/infrastructure perspective to run the Uber application.
- [Create S3 Bucket To Store TFSTATE Files](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-AWS-Services-Creation/1-Create-S3-Bucket-To-Store-TFSTATE-Files.md)
- [Create an Elastic Container Registry](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-AWS-Services-Creation/2-Create-ECR.md)
- [Create An EKS Cluster IAM Role, And Policy For EKS](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-AWS-Services-Creation/3-Create-EKS-Cluster-IAM-Role-And-Policy.md)
- [Create An EKS Cluster](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-AWS-Services-Creation/3-Create-EKS-Cluster-IAM-Role-And-Policy.md)
5. Docker - The purpose of the Docker section is to create a Docker image from the app that the organization is running on-prem (the uber app), containerize it, and store the container inside of a container repository. For the container repo, you'll use AWS ECR.
- [Create The Docker Image](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Docker/1-Create-Docker-Image.md)
- [Log Into AWS ECR Repository](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Docker/Push%20Image%20To%20ECR.md)
- [Create VPC](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/tree/main/VPC)
3. GCP:
- [Configure credentials to access GCP at a programmatic level](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/GCP/1-Configure-Credentials-To-Access-GCP.md)
4. Terraform - The purpose of the Terraform section is to create all of the GCP cloud services you'll need from an environment/infrastructure perspective to run the Uber application.
- [Create S3 Bucket To Store TFSTATE Files](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-GCP-Services-Creation/1-Create-S3-Bucket-To-Store-TFSTATE-Files.md)
- [Create an Elastic Container Registry](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-GCP-Services-Creation/2-Create-ECR.md)
- [Create An EKS Cluster IAM Role, And Policy For EKS](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-GCP-Services-Creation/3-Create-EKS-Cluster-IAM-Role-And-Policy.md)
- [Create An EKS Cluster](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-GCP-Services-Creation/3-Create-EKS-Cluster-IAM-Role-And-Policy.md)
5. Docker - The purpose of the Docker section is to create a Docker image from the app that the organization is running on-prem (the uber app), containerize it, and store the container inside of a container repository. For the container repo, you'll use GCP ECR.
- [Create The Docker Image](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Docker/1-Create-Docker-Image.md)
- [Log Into GCP ECR Repository](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Docker/Push%20Image%20To%20ECR.md)
6. Kubernetes - The purpose of the Kubernetes section is to connect to EKS locally and to write the Kubernetes manifest to deploy the Python Uber app.
- [Connect To EKS From The Terminal](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/kubernetes_manifest/1-Connect-To-EKS.md)
- [Create A Kubernetes Manifest](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/kubernetes_manifest/2-Create-Kubernetes-Manifest.md)
- [Connect To EKS From The Terminal](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/kubernetes_manifest/1-Connect-To-EKS.md)
- [Create A Kubernetes Manifest](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/kubernetes_manifest/2-Create-Kubernetes-Manifest.md)
7. Automated Testing - The purpose of the Automation Testing section is to ensure that all of the Terraform code is performing as it should be from a policy, security, and static code analysis perspective.
- [Install And Run Checkov](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-Static-Code-Analysis/1-Checkov-For-Terraform.md)
- [Install And Run Checkov](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-Static-Code-Analysis/1-Checkov-For-Terraform.md)
8. CICD - The purpose of this section is to automatically create an EKS cluster with CICD using GitHub Actions
- [Create a GitHub Actions CICD pipeline](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-AWS/blob/main/Terraform-AWS-Services-Creation/4-Run-CICD-For-EKS-Cluster.md)
- [Create a GitHub Actions CICD pipeline](https://github.com/AdminTurnedDevOps/DevOps-The-Hard-Way-GCP/blob/main/Terraform-GCP-Services-Creation/4-Run-CICD-For-EKS-Cluster.md)

This file was deleted.

17 changes: 0 additions & 17 deletions Terraform-AWS-Services-Creation/2-Create-ECR.md

This file was deleted.

This file was deleted.

37 changes: 0 additions & 37 deletions Terraform-AWS-Services-Creation/4-Run-CICD-For-EKS-Cluster.md

This file was deleted.

25 changes: 0 additions & 25 deletions Terraform-AWS-Services-Creation/ECR/main.tf

This file was deleted.

1 change: 0 additions & 1 deletion Terraform-AWS-Services-Creation/ECR/terraform.tfvars

This file was deleted.

5 changes: 0 additions & 5 deletions Terraform-AWS-Services-Creation/ECR/variables.tf

This file was deleted.

93 changes: 0 additions & 93 deletions Terraform-AWS-Services-Creation/EKS-Fargate/main.tf

This file was deleted.

14 changes: 0 additions & 14 deletions Terraform-AWS-Services-Creation/EKS-Fargate/variables.tf

This file was deleted.

Loading

0 comments on commit 935dea3

Please sign in to comment.