ruslan-ikhsan commented on code in PR #25793: URL: https://github.com/apache/beam/pull/25793#discussion_r1177768728
########## learning/tour-of-beam/terraform/README.md: ########## @@ -0,0 +1,121 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you 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. +--> +# The Tour of Beam deployment on GCP +This guide provides instructions on how to deploy the Tour of Beam environment on Google Cloud Platform (GCP) and Firebase environment. Before starting the deployment, ensure that you have the following prerequisites in place: + +## Prerequisites: + +1. [GCP project](https://cloud.google.com/resource-manager/docs/creating-managing-projects) +2. [GCP User account](https://cloud.google.com/appengine/docs/standard/access-control?tab=python) _(Note: You will find the instruction "How to create User account" for your new project)_<br> + Ensure that the account has at least following privileges: + - Cloud Datastore Owner + - Create Service Accounts + - Security Admin + - Service Account User + - Service Usage Admin + - Storage Admin + - Kubernetes Engine Cluster Viewer + +3. [Google Cloud Storage bucket](https://cloud.google.com/storage/docs/creating-buckets) for saving deployment state + +4. An OS with the following software installed: + +* [Java](https://adoptopenjdk.net/) +* [NodeJS & npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) +* [Flutter (3.7.3 >)](https://docs.flutter.dev/get-started/install) +* [Dart SDK (2.19.2)](https://dart.dev/get-dart) +* [Firebase-tools CLI](https://www.npmjs.com/package/firebase-tools) +* [Terraform](https://www.terraform.io/downloads) +* [gcloud CLI](https://cloud.google.com/sdk/docs/install-sdk) +* [Kubectl authentication plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) +* [Go](https://go.dev/doc/install) + +5. Apache Beam Git repository cloned locally + +# Prepare deployment configuration: +Tour of Beam backend uses `terraform.tfvars` located in `learning/tour-of-beam/terraform/environment/environment_name/` to define variables specific to an environment (e.g., prod, test, staging). Follow the steps below to prepare the deployment configuration:<br> +1. Create a folder (referred to as `environment_name`) to define a new environment and place configuration files into it: + +* `terraform.tfvars` environment variables: +``` +project_id = "gcp_project_id" # Your GCP Project ID +cloudfunctions_bucket = "gcs_bucket_name" # Globally unique name of the bucket to store cloud functions' source code +region = "gcp_region" # Your GCP resources region +service_account_id = "service_account_name" # Name of GCP service account to run Tour of Beam cloud functions + +``` Review Comment: Terraform code has been refactored. Arguments will be used to provide variables, no .tfvars file will have to be created E.g. ``` terraform plan -var gcloud_init_account=$(gcloud config get-value core/account) \ -var environment="test" \ -var region="us-east1" \ -var project_id=$(gcloud config get-value project) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
