Initial commit
Some checks failed
Continuous Integration - Pull Request / code-tests (pull_request) Has been cancelled
Continuous Integration - Pull Request / deployment-tests (local-code) (pull_request) Has been cancelled
helm-chart-ci / helm-chart-ci (pull_request) Has been cancelled
kubevious-manifests-ci / kubevious-manifests-ci (pull_request) Has been cancelled
kustomize-build-ci / kustomize-build-ci (pull_request) Has been cancelled
terraform-validate-ci / terraform-validate-ci (pull_request) Has been cancelled
Clean up deployment / cleanup-namespace (pull_request) Has been cancelled
Continuous Integration - Main/Release / code-tests (push) Has been cancelled
Continuous Integration - Main/Release / deployment-tests (local-code) (push) Has been cancelled
helm-chart-ci / helm-chart-ci (push) Has been cancelled
kubevious-manifests-ci / kubevious-manifests-ci (push) Has been cancelled
kustomize-build-ci / kustomize-build-ci (push) Has been cancelled
terraform-validate-ci / terraform-validate-ci (push) Has been cancelled
Some checks failed
Continuous Integration - Pull Request / code-tests (pull_request) Has been cancelled
Continuous Integration - Pull Request / deployment-tests (local-code) (pull_request) Has been cancelled
helm-chart-ci / helm-chart-ci (pull_request) Has been cancelled
kubevious-manifests-ci / kubevious-manifests-ci (pull_request) Has been cancelled
kustomize-build-ci / kustomize-build-ci (pull_request) Has been cancelled
terraform-validate-ci / terraform-validate-ci (pull_request) Has been cancelled
Clean up deployment / cleanup-namespace (pull_request) Has been cancelled
Continuous Integration - Main/Release / code-tests (push) Has been cancelled
Continuous Integration - Main/Release / deployment-tests (local-code) (push) Has been cancelled
helm-chart-ci / helm-chart-ci (push) Has been cancelled
kubevious-manifests-ci / kubevious-manifests-ci (push) Has been cancelled
kustomize-build-ci / kustomize-build-ci (push) Has been cancelled
terraform-validate-ci / terraform-validate-ci (push) Has been cancelled
This commit is contained in:
97
terraform/README.md
Normal file
97
terraform/README.md
Normal file
@@ -0,0 +1,97 @@
|
||||
<!-- Copyright 2022 Google LLC
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License. -->
|
||||
|
||||
# Use Terraform to deploy Online Boutique on a GKE cluster
|
||||
|
||||
This page walks you through the steps required to deploy the [Online Boutique](https://github.com/GoogleCloudPlatform/microservices-demo) sample application on a [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine) cluster using Terraform.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. [Create a new project or use an existing project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#console) on Google Cloud, and ensure [billing is enabled](https://cloud.google.com/billing/docs/how-to/verify-billing-enabled) on the project.
|
||||
|
||||
## Deploy the sample application
|
||||
|
||||
1. Clone the Github repository.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
|
||||
```
|
||||
|
||||
1. Move into the `terraform/` directory which contains the Terraform installation scripts.
|
||||
|
||||
```bash
|
||||
cd microservices-demo/terraform
|
||||
```
|
||||
|
||||
1. Open the `terraform.tfvars` file and replace `<project_id_here>` with the [GCP Project ID](https://cloud.google.com/resource-manager/docs/creating-managing-projects?hl=en#identifying_projects) for the `gcp_project_id` variable.
|
||||
|
||||
1. (Optional) If you want to provision a [Google Cloud Memorystore (Redis)](https://cloud.google.com/memorystore) instance, you can change the value of `memorystore = false` to `memorystore = true` in this `terraform.tfvars` file.
|
||||
|
||||
1. Initialize Terraform.
|
||||
|
||||
```bash
|
||||
terraform init
|
||||
```
|
||||
|
||||
1. See what resources will be created.
|
||||
|
||||
```bash
|
||||
terraform plan
|
||||
```
|
||||
|
||||
1. Create the resources and deploy the sample.
|
||||
|
||||
```bash
|
||||
terraform apply
|
||||
```
|
||||
|
||||
1. If there is a confirmation prompt, type `yes` and hit Enter/Return.
|
||||
|
||||
Note: This step can take about 10 minutes. Do not interrupt the process.
|
||||
|
||||
Once the Terraform script has finished, you can locate the frontend's external IP address to access the sample application.
|
||||
|
||||
- Option 1:
|
||||
|
||||
```bash
|
||||
kubectl get service frontend-external | awk '{print $4}'
|
||||
```
|
||||
|
||||
- Option 2: On Google Cloud Console, navigate to "Kubernetes Engine" and then "Services & Ingress" to locate the Endpoint associated with "frontend-external".
|
||||
|
||||
## Clean up
|
||||
|
||||
To avoid incurring charges to your Google Cloud account for the resources used in this sample application, either delete the project that contains the resources, or keep the project and delete the individual resources.
|
||||
|
||||
To remove the individual resources created for by Terraform without deleting the project:
|
||||
|
||||
1. Navigate to the `terraform/` directory.
|
||||
|
||||
1. Set `deletion_protection` to `false` for the `google_container_cluster` resource (GKE cluster).
|
||||
|
||||
```bash
|
||||
# Uncomment the line: "deletion_protection = false"
|
||||
sed -i "s/# deletion_protection/deletion_protection/g" main.tf
|
||||
|
||||
# Re-apply the Terraform to update the state
|
||||
terraform apply
|
||||
```
|
||||
|
||||
1. Run the following command:
|
||||
|
||||
```bash
|
||||
terraform destroy
|
||||
```
|
||||
|
||||
1. If there is a confirmation prompt, type `yes` and hit Enter/Return.
|
||||
Reference in New Issue
Block a user