From a65874570f9aedd470ab9547a447781c03bb9d9f Mon Sep 17 00:00:00 2001 From: Shabir Mohamed Abdul Samadh <7249208+Shabirmean@users.noreply.github.com> Date: Fri, 14 Oct 2022 11:08:47 -0400 Subject: [PATCH] feature: add new sample for running APIGee on ABM (#419) * feature: add apigee installation * feature: update the abm on gce script * cleanup: fix tfvars error * cleanup: fix output vats * cleanup: fix shellcheck * cleanup: addlicense and fix gitignore * fix: terraform format * chore: fix the script after testing * chore: update README and validate apigee sample (#438) * Apigee Hybrid Changes * Readme * Update README.md * doc changes * Update README.md * Update README.md * quickstart * Update README.md * Update README.md * Add files via upload * Update README.md * Update quickstart.md * Add files via upload * Update README.md * Update quickstart.md * pre requisite * quickstart * pre requisite quickstart * Apigee Hybrid Changes Readme Update README.md doc changes Update README.md Update README.md quickstart Update README.md Update README.md Add files via upload Update README.md Update quickstart.md Add files via upload Update README.md Update quickstart.md pre requisite quickstart pre requisite quickstart * Fixing pull request feedback * Pull Request Feedback * Pull Request Feedback * Update README.md * Update README.md Fixes as per the PR Comments * Update README.md Whitespaces. * Update quickstart.md Changes related to PR comments * Pull Request Comments * Update README.md PR 438 Changes. * Update quickstart.md Fixes to PR 438 Comments * Update README.md Fixes in PR Request * Add files via upload Changed the diagram to show apigee piece * Delete abm_gcp_infra.svg * Add files via upload Apigee Infra * Delete abm_gcp_apigee_infra.png Duplicates. Removing it * Update quickstart.md Made some changes to quickstart with Apigee References * Update quickstart.md Whitespaces. * fix: readme and quickstart * fix: table in readme * fix: readme * fix: readme * fix: the pre-req script * fix: tfvars file * fix: output.tf and readme * lint: fix quoting error * docs: add link to image * codeowner: add new team ownership for sample * fix: lint errors * doc: add note on errors printed * doc: remove incorrect output * doc: update external ip info * doc: add image for apigee * doc: update image border Co-authored-by: Rajesh Mishra --- .gitignore | 5 + CODEOWNERS | 1 + anthos-bm-apigee/README.md | 86 +++++ .../docs/images/abm_gcp_infra.png | Bin 0 -> 52140 bytes anthos-bm-apigee/docs/images/apigee-ui.png | Bin 0 -> 42173 bytes .../docs/images/default_network.png | Bin 0 -> 133090 bytes anthos-bm-apigee/docs/quickstart.md | 307 ++++++++++++++++++ anthos-bm-apigee/docs/variables.md | 56 ++++ anthos-bm-apigee/main.tf | 96 ++++++ anthos-bm-apigee/outputs.tf | 59 ++++ anthos-bm-apigee/resources/install_apigee.sh | 306 +++++++++++++++++ .../resources/run_prerequisite.sh | 128 ++++++++ anthos-bm-apigee/terraform.tfvars.sample | 6 + anthos-bm-apigee/variables.tf | 80 +++++ anthos-bm-apigee/versions.tf | 48 +++ anthos-bm-gcp-terraform/main.tf | 1 + anthos-bm-gcp-terraform/outputs.tf | 17 + anthos-bm-gcp-terraform/variables.tf | 6 + 18 files changed, 1202 insertions(+) create mode 100644 anthos-bm-apigee/README.md create mode 100644 anthos-bm-apigee/docs/images/abm_gcp_infra.png create mode 100644 anthos-bm-apigee/docs/images/apigee-ui.png create mode 100644 anthos-bm-apigee/docs/images/default_network.png create mode 100644 anthos-bm-apigee/docs/quickstart.md create mode 100644 anthos-bm-apigee/docs/variables.md create mode 100644 anthos-bm-apigee/main.tf create mode 100644 anthos-bm-apigee/outputs.tf create mode 100755 anthos-bm-apigee/resources/install_apigee.sh create mode 100755 anthos-bm-apigee/resources/run_prerequisite.sh create mode 100644 anthos-bm-apigee/terraform.tfvars.sample create mode 100644 anthos-bm-apigee/variables.tf create mode 100644 anthos-bm-apigee/versions.tf diff --git a/.gitignore b/.gitignore index 8ab43a2a..9017893f 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,11 @@ admin-openrc.sh __pycache__ *.data +# APIGee samples specific ignores +new_policy.yaml + +# Service Account Key files +anthos-bm-owner.json abm-sa-temp.json bm-gcr.json ssh-metadata diff --git a/CODEOWNERS b/CODEOWNERS index 759de1ee..0898449b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -11,3 +11,4 @@ /attached-logging-monitoring/ @GoogleCloudPlatform/onyx-gke-observability /anthos-multi-cloud/ @GoogleCloudPlatform/anthos-multicloud /anthos-bm-utils/ @GoogleCloudPlatform/anthos-baremetal-eng +/anthos-bm-apigee/ @GoogleCloudPlatform/app-mod-customer-engineers diff --git a/anthos-bm-apigee/README.md b/anthos-bm-apigee/README.md new file mode 100644 index 00000000..a7467294 --- /dev/null +++ b/anthos-bm-apigee/README.md @@ -0,0 +1,86 @@ + +## Apigee Hybrid on Anthos Baremetal on Google Compute Engine VMs with Terraform + +This is a sample Apigee Hybrid installation on Anthos Cluster on bare metal +running on GCE Virtual Machines. +[Apigee hybrid](https://cloud.google.com/apigee/docs/hybrid/v1.7/what-is-hybrid) +is a platform for developing and managing API proxies that features a hybrid +deployment model. The hybrid model includes a management plane hosted by Apigee +in the Cloud and a runtime plane that you install and manage on one of the +[supported Kubernetes platforms](https://cloud.google.com/apigee/docs/hybrid/supported-platforms). +An [Apigee organization](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure) +is the top-level container in Apigee. It contains all your API proxies and +related resources. This installation will create an evaluation Apigee +Organization with the same name as the ID of the Google Cloud Project you use. + +### Pre-requisites + +> **NOTE:** We have provided a [utility script](./resources/run_prerequisite.sh) + that checks and configures some of the following project/organization level + prerequisites. You may use it to validate some of the requirements that follow. + Please ensure you have authenticated the `gcloud` CLI to use the GCP project + you intend to use before running this script. + +- A workstation with access to internet _(i.e. Google Cloud APIs)_ with the following installed + - [Git](https://www.atlassian.com/git/tutorials/install-git) + - [Google Cloud SDK](https://cloud.google.com/sdk/docs/install) + - [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli) (>= v0.15.5, < v1.2) + +- A [Google Cloud Project](https://console.cloud.google.com/cloud-resource-manager?_ga=2.187862184.1029435410.1614837439-1338907320.1614299892) + _(in which the resources for the setup will be provisioned)_ + - **Network:** The project must have a network called `default` with all the + default firewall policies configured on it. If, default network creation is + enabled for the organization, the project will already have it. In case the + *`Skip default network creation`* policy is enforced, you can create a new + VPC `network` called default in **auto mode**. + _[See image for example.](./docs/images/default_network.png)_ + + - **Quota:** The project must have the required quota. his sample requires 4 + VMs of `n1-standard-8` machine type. Ensure that there is enough quota for + CPU, Memory and IP Addresses for the GCP Region you intend to use. + + +- A [Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts) + in the project that satisfies **one** of the following requirements and its + **[key file downloaded](/anthos-bm-gcp-terraform/docs/create_sa_key.md)** to the workstation: + - The Service Account has `Owner` and `Apigee Organization Administrator` permissions + - The Service Account has both `Editor`, `Project IAM Admin` and `Apigee Organization Administrator` permissions + +- The following list of **Organizational Policy Constraints** enabled on the Google Cloud Organization your GCP Project is in: + + | Policy Name | Constraint Name | Effective Polciy | + | ------------------------------------------- | ------------------------------------------------- | ---------------- | + | Disable service account creation | constraints/iam.disableServiceAccountCreation | Not Enforced | + | Disable service account key creation | constraints/iam.disableServiceAccountKeyCreation | Not enforced | + | Restrict VM IP Forwarding | constraints/compute.vmCanIpForward. | Allowed All | + | Define allowed external IPs for VM instances | constraints/compute.vmExternalIpAccess | Allowed All | + | Shielded VMs | constraints/compute.requireShieldedVm | Not Enforced | + | Require OS Login | constraints/compute.requireOsLogin. | Not Enforced | + | Skip default network creation | constraints/compute.skipDefaultNetworkCreation | Not Enforced | +--- + +### Anthos on bare metal with Apigee on GCE VMs + +The infrastructure for the Anthos on bare metal cluster is created using the +[anthos-bm-gcp-terraform](/anthos-bm-gcp-terraform) sample. The sample here +refers to the [anthos-bm-gcp-terraform](/anthos-bm-gcp-terraform) script as a +terraform module and provisions the GCE based infrastructure first. Then, it +executes additional steps that are specific to the Apigee installtion. + +Once you complete this [quickstart guide](docs/quickstart.md) you will have the +following infrastructure setup in Google Cloud using Compute Engine VMs with +Anthos on bare metal running and Apigee installed. The diagram assumes that +none of the default values for the [variables](variables.tf) were changed other +than the ones mentioned in this guide. + +![Bare metal infrastructure on Google Cloud using Compute Engine VMs](docs/images/abm_gcp_infra.png) + +--- +## Getting started + +- [Terraform Module Information _(includes variables definitions)_](docs/variables.md) +- [Quickstart guide](docs/quickstart.md): + - The terraform script sets up the GCE VM environment. The output of the + script prints out the commands to follow to install Anthos on bare metal + in the provisioned GCE VM and to **configure Apigee** in the new Anthos on + bare metal cluster. diff --git a/anthos-bm-apigee/docs/images/abm_gcp_infra.png b/anthos-bm-apigee/docs/images/abm_gcp_infra.png new file mode 100644 index 0000000000000000000000000000000000000000..689289a182a51349cb14e4592caca287ce5a82e1 GIT binary patch literal 52140 zcmeFZc|6o@|2G^$Au6P@RZ4c1ExQzoP}UGC*|+SBWk^zllPuZykv;ovL@2^o$6(05 z8_ZY-b01UZbzNt5Uf1t=Uia&M-S_=GKY#QZqxsHpe2&lh{=ARR>w9WS$EeOy9XfRA z*qz(AG!7jiYdCa>l;sF1c&A+U9^auuzK8DIx}oK6w3PVTfL?E?0xr9h7`syL2{VU` zCdIBKd0buz!oRGk{MN$xtse6#zf!Og!gezp!rB+QHbmvp0x8u>SC*B`-4}^1JLSh;>k>#kx{sQ?JcjTjxR)mdE@J4>Nu;_r7do2;O`;uSn#o zN?b3k^NjS8b)ML}?!SKCf5UgP8eIU}-F#!M^~Kc0$7`n-DM;9evYGE1iwq;^qIX3S ztMv9U!|$t_$t_P*d{@?UgXdEG&hSx`BKwgBJ2?&*SaFeTTep<2theeJwDZI&K6<6= za%rW=_l16>AUXE+(WR6+Z|}|sbC)~0%FqKvnrU@|z1~;DlQ0(PwVc#4g3vL3yYGf0 z_knn@?`SRT;Wb&cxVIa7y~s@2Fs}XS;g})M>?F*agbx?vg9qySnw9=@Q~vsLv>9}Grln~F77O3VtILaf~Z+?T)+~A-Vr6;|6t7dk-4wHjAYqs&yo~{ocjx+_* z?MQWZcRS5|J?f5_O;PUb?3|Gm6%kQTP$&vWmh!mvND*x5+|%nodk)iTk}S_Vl#kWu zv8|P?W@C9(Xg{D`bHoZe*<1gZ>H!SpM;AMBO(d9a>z@FUT=~SL0#|jl}DDnD@1JDhu0M_OqoX z@YPfAN7tFw#cbU1c*!>2FxED_y*zcH`OJ({qBNQJ5!T8}S?bBK<-2NXcGlL^2}Xv7 zs&}M4)~5yr1{&s#kMNT0ua4h@P%)(N^Yi=lb|p$G^@`aJee$8Pl~YnsI7*+JlQU<` zO@CSKDU%@=x$wT``70@IOM_P(r*7ko+<}pv^1Ais&%r;kHVHKJ_e&9eQk29r}vtpp0`CG-&9kY8ZnoS*X zA}a6ATY%)0!q^hy$z!j z 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 literal 0 HcmV?d00001 diff --git a/anthos-bm-apigee/docs/images/apigee-ui.png b/anthos-bm-apigee/docs/images/apigee-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..17617811c8227eb4d112de95e6bc456c09806c43 GIT binary patch literal 42173 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 literal 0 HcmV?d00001 diff --git a/anthos-bm-apigee/docs/quickstart.md b/anthos-bm-apigee/docs/quickstart.md new file mode 100644 index 00000000..b281acbb --- /dev/null +++ b/anthos-bm-apigee/docs/quickstart.md @@ -0,0 +1,307 @@ +## Quickstart guide + +- [Setup the bare metal infrastructure](#setup-the-bare-metal-infrastructure) +- [Deploy an Anthos cluster and Install Apigee](#deploy-an-anthos-cluster-and-install-apigee) +- [Verify Apigee Installation](#verify-apigee-installation) +- [Access with UI via the GCP console](#access-with-ui-via-the-gcp-console) +- [Cleanup](#cleanup) + +--- +### Setup the bare metal infrastructure + +1. Clone this repo into the workstation from where the rest of this guide will + be followed and move into the `anthos-bm-apigee` sample directory: + + ```sh + git clone https://github.com/GoogleCloudPlatform/anthos-sample + cd anthos-bm-apigee + ``` + +1. Update the `terraform.tfvars.sample` file to include variables specific to + your environment: + + ```sh + project_id = "" + region = "" + zone = "" + credentials_file = "" + #gcp_login_accounts = ["", , ] + username = tfadmin + ``` + + Uncomment the `gce_vm_service_account` if you want to login to your cluster + using the Google email account that is associated with your GCP Project. You + can add multiple GCP accounts to enable access to multiple users. + + An example of these configuration looks like this below: + + ```sh + project_id = "anthos-bm-example1" + region = "us-central1" + zone = "us-central1-a" + credentials_file = "/usr/home/keyfiles/anthos-bm-owner.json" + gcp_login_accounts = ["alex@gmail.com"] + username = tfadmin + ``` + +1. Rename the `variables` file to the default name used by Terraform: + > **Note:** You can skip this step if you run `terraform apply` with the `-var-file` flag + + ```sh + mv terraform.tfvars.sample terraform.tfvars + ``` + +1. Initialize the Terraform against the script ([main.tf](/anthos-bm-apigee/main.tf)) + for this sample: + + ```sh + terraform init + ``` + +1. Create a _Terraform_ execution plan: + + ```sh + terraform plan + ``` + +1. Apply the changes described in the _Terraform_ script: + + ```sh + terraform apply + ``` + + > **Note:** When prompted to confirm the Terraform plan, type 'Yes' and enter + + ***The `apply` command sets up the Compute Engine VM based bare metal infrastructure. This can take a few minutes (approx. 3-5 mins) for the entire bare-metal cluster to be setup.*** + + Upon a successfull run you will see an output similar the one below: + + ```sh + admin_vm_ssh = < gcloud compute ssh tfadmin@apigee-cluster-abm-ws0-001 --project=shabir-abm-apigee --zone=us-east1-b + + # ------------------------------------------------------------------------------ + # You must be SSH'ed into the admin host apigee-cluster-abm-ws0-001 as tfadmin user now + # ------------------------------------------------------------------------------ + > export GOOGLE_APPLICATION_CREDENTIALS=/home/tfadmin/terraform-sa.json && \ + sudo -E ./run_initialization_checks.sh && \ + sudo -E bmctl create config -c apigee-cluster && \ + sudo -E cp ~/apigee-cluster.yaml bmctl-workspace/apigee-cluster && \ + sudo -E bmctl create cluster -c apigee-cluster + + ################################################################################ + + ################################################################################ + # Setup APIGEE with the new Anthos on bare metal cluster # + ################################################################################ + > ./install_apigee.sh + + EOT + ``` + +--- +### Deploy an Anthos cluster and Install Apigee + +After the Terraform execution completes you are ready to deploy an Anthos on +bare metal cluster into the provisioned VMs. + +1. SSH into the admin host _(you can this command printed as part of the Terraform output)_ + + ```sh + gcloud compute ssh tfadmin@apigee-cluster-abm-ws0-001 --project= --zone= + ``` + +2. Install the Anthos on bare metal cluster + + ```sh + export GOOGLE_APPLICATION_CREDENTIALS=/home/tfadmin/terraform-sa.json && \ + sudo -E ./run_initialization_checks.sh && \ + sudo -E bmctl create config -c apigee-cluster && \ + sudo -E cp ~/apigee-cluster.yaml bmctl-workspace/apigee-cluster && \ + sudo -E bmctl create cluster -c apigee-cluster + ``` + +3. Install Apigee into the cluster + + ```sh + ./install_apigee.sh + ``` + + > **Note:** You may see continuous errors printed on screen such as + > `ERROR: gcloud crashed (KeyError): 'organizations'` during the + > installation. These indicate a continuous check being run on a loop until + > a certain condition is being met. Please don't cancel the installation and + > wait for the checks to eventually reconcile and proceed. +--- + +Running the commands from the Terraform output starts setting up a new Anthos +cluster. This includes checking the initialization state of the nodes, creating +the admin and user clusters and also registering the cluster with Google Cloud +using [Connect](https://cloud.google.com/anthos/multicluster-management/connect/overview). +Once, the cluster has been created successfully, the [install_apigee.sh](../resources/install_apigee.sh) +script will trigger the Apigee installation. The whole setup can take up to 30 +minutes. You see the following output as the cluster is being created: + +> **Note:** The logs for checks on node initialization has been left out. +> They appear before the following logs from Anthos setup + +```sh +... +Waiting for cluster to become ready OK +Writing kubeconfig file +kubeconfig of created cluster is at bmctl-workspace/apigee-cluster/apigee-cluster-kubeconfig, please run +kubectl --kubeconfig bmctl-workspace/apigee-cluster/apigee-cluster-kubeconfig get nodes +to get cluster node status. +Please restrict access to this file as it contains authentication credentials of your cluster. +Waiting for node pools to become ready OK +Moving admin cluster resources to the created admin cluster +Flushing logs... OK +Deleting bootstrap cluster... OK +... +... +Operation "operations/acat.p2-739559844142-7d29aafc-49d2-47c6-9dd4-4342352c04bd" finished successfully. +Operation "operations/acat.p2-739559844142-79d3808d-6a03-4cbf-ba17-6e8208ecd321" finished successfully. +... +- Processing resources for Istio core. +✔ Istio core installed +- Processing resources for Istiod. +- Processing resources for Istiod. Waiting for Deployment/istio-system/istiod-asm-1106-2 +✔ Istiod installed +... +apigeectl_1.7.0-390442d_linux_64/templates/3_apigee-environments.yaml +apigeectl_1.7.0-390442d_linux_64/templates/4_apigee-telemetries.yaml +apigeectl_1.7.0-390442d_linux_64/templates/virtualhosts.yaml +apigeectl_1.7.0-390442d_linux_64/tools/apigee-pull-push.sh +apigeectl_1.7.0-390442d_linux_64/tools/common.sh +apigeectl_1.7.0-390442d_linux_64/tools/create-service-account +apigeectl_1.7.0-390442d_linux_64/tools/dump_kubernetes.sh +apigeectl_1.7.0-390442d_linux_64/apigeectl +/home/tfadmin/apigee_workspace/apigeectl +... +... +Checking Apigee Containers ... +Checking Apigee Containers ... +Checking Apigee Containers ... +Checking Apigee Containers ... +Checking Apigee Containers ... +Apigee is Ready +``` + +--- +### Verify Apigee Installation + +You can find your cluster's `kubeconfig` file on the admin machine in the +`bmctl-workspace` directory. To verify your deployment, complete the following +steps. + +1. SSH into the admin host _(if you are not already inside it)_: + + ```sh + # You can copy the command from the output of Terraform run from the previous step + gcloud compute ssh tfadmin@apigee-cluster-abm-ws0-001 --project= --zone= + ``` + +1. Set the `KUBECONFIG` environment variable to run `kubectl` commands on the + cluster. + + ```sh + export CLUSTER_ID=apigee-cluster + export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig + kubectl get nodes + ``` + + You should see the nodes of the cluster printed, _similar_ to the output below: + + ```sh + NAME STATUS ROLES AGE VERSION + apigee-cluster-abm-cp1-001 Ready master 17m v1.18.6-gke.6600 + apigee-cluster-abm-w1-001 Ready 14m v1.18.6-gke.6600 + apigee-cluster-abm-w2-001 Ready 14m v1.18.6-gke.6600 + apigee-cluster-abm-w3-001 Ready 14m v1.18.6-gke.6600 + ``` + +1. You can get the istio ingress gateway IP by running the following command: + + ```sh + kubectl get svc -n istio-system + ``` + ```sh + NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE + istio-ingressgateway LoadBalancer 172.26.232.85 10.200.0.51 15021:30217/TCP,80:32733/TCP,443:32307/TCP 13m + istiod ClusterIP 172.26.232.33 15010/TCP,15012/TCP,443/TCP,15014/TCP 13m + istiod-asm-1129-3 ClusterIP 172.26.232.186 15010/TCP,15012/TCP,443/TCP,15014/TCP 13m + ``` + + `EXTERNAL_IP` of istio-ingressgateway is the endpoint for API proxies + deployed on Apigee. For example, if a mockservice with resource path of + `/mockservice` is deployed on Apigee, it can be accessed via + `https://$EXTERNAL_IP.nip.io/mockservice`. The `EXTERNAL_IP` here will be an + IP on the VxLAN network that creates the L2-network between the GCE VMs. + +--- +### Access with UI via the GCP console + +During the setup process, an Apigee Organization is created and you can access +the [Apigee UI](https://cloud.google.com/apigee/docs/api-platform/fundamentals/ui-overview) +by logging into [apigee.google.com](https://apigee.google.com) with your GCP +Credentials. + +

+ + +
+ (click image to enlarge) +
+

+ +--- +### Cleanup + +#### 1. Cleanup resources. You can cleanup the cluster setup in two ways: + +- (1) Delete the entire Google Cloud project [from the console]((https://console.cloud.google.com/cloud-resource-manager)) + +- (2) Using Terraform + - First deregister the cluster before deleting all the resources created by Terraform + + ```sh + # SSH into the admin host + gcloud compute ssh tfadmin@apigee-cluster-abm-ws0-001 --project= --zone= + + # Reset the cluster + export CLUSTER_ID=apigee-cluster + export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig + + sudo bmctl reset --cluster $CLUSTER_ID + + # logout of the admin host + exit + ``` + + - Then, use Terraform to delete all resources. + + ```sh + # to be run from the root directory of this repo + terraform destroy --auto-approve + ``` + + - Deregister cluster from the Cloud hub membership. + +#### 2. Delete Apigee Organization + + ```sh + gcloud alpha apigee organizations delete + ``` + +#### 3. Clean Temporary files + +```sh +rm -fr ./resources/.temp +rm -fr terraform.tfstate +``` diff --git a/anthos-bm-apigee/docs/variables.md b/anthos-bm-apigee/docs/variables.md new file mode 100644 index 00000000..c49e977e --- /dev/null +++ b/anthos-bm-apigee/docs/variables.md @@ -0,0 +1,56 @@ +## Terraform Variables + +The following information is generated using the +[`terraform-docs`](https://github.com/terraform-docs/terraform-docs) +CLI tool. Use the commands below to re-generate this information during a +release or when you update the variables file. + +```sh +export VARIABLES_TF_FILE= +export VARIABLES_MD_FILE= +export TF_DOCS_CONFIG=/.github/terraform-docs/main.yaml + +terraform-docs markdown table \ + --config ${TF_DOCS_CONFIG} \ + --output-file ${VARIABLES_MD_FILE} \ + --output-mode inject \ + ${VARIABLES_TF_FILE} +``` + + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= v0.15.5, < 1.2 | +| [google](#requirement\_google) | >= 3.68.0 | +| [google-beta](#requirement\_google-beta) | >= 3.68.0 | + +## Modules + +| Name | Source | Version | +|------|--------|---------| +| [install\_abm\_on\_gce](#module\_install\_abm\_on\_gce) | ../anthos-bm-gcp-terraform | n/a | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [credentials\_file](#input\_credentials\_file) | Path to the Google Cloud Service Account key file.
This is the key that will be used to authenticate the provider with the Cloud APIs | `string` | n/a | yes | +| [gce\_vm\_service\_account](#input\_gce\_vm\_service\_account) | Service Account to use for GCE instances | `string` | `""` | no | +| [gcp\_login\_accounts](#input\_gcp\_login\_accounts) | GCP account email addresses that must be allowed to login to the cluster using Google Cloud Identity. | `list(string)` | `[]` | no | +| [mode](#input\_mode) | Indication of the execution mode. By default the terraform execution will end
after setting up the GCE VMs where the Anthos bare metal clusters can be deployed.

**setup:** create and initialize the GCE VMs required to install Anthos bare metal.

**install:** everything up to 'setup' mode plus automatically run Anthos bare metal installation steps as well.

**manuallb:** similar to 'install' mode but Anthos on bare metal is installed with ManualLB mode. | `string` | `"setup"` | no | +| [project\_id](#input\_project\_id) | Unique identifer of the Google Cloud Project that is to be used | `string` | n/a | yes | +| [region](#input\_region) | Google Cloud Region in which the Compute Engine VMs should be provisioned | `string` | `"us-central1"` | no | +| [username](#input\_username) | The name of the user to be created on each Compute Engine VM to execute the init script | `string` | `"tfadmin"` | no | +| [zone](#input\_zone) | Zone within the selected Google Cloud Region that is to be used | `string` | `"us-central1-a"` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| [admin\_vm\_ssh](#output\_admin\_vm\_ssh) | Run the following command to provision the anthos cluster. | +| [controlplane\_ip](#output\_controlplane\_ip) | You may access the control plane nodes of the Anthos on bare metal cluster
by accessing this IP address. You need to copy the kubeconfig file for the
cluster from the admin workstation to access using the kubectl CLI. | +| [ingress\_ip](#output\_ingress\_ip) | You may access the application deployed in the Anthos on bare metal cluster
by accessing this IP address | +| [installation\_check](#output\_installation\_check) | Run the following command to check the Anthos bare metal installation status. | + diff --git a/anthos-bm-apigee/main.tf b/anthos-bm-apigee/main.tf new file mode 100644 index 00000000..881f101d --- /dev/null +++ b/anthos-bm-apigee/main.tf @@ -0,0 +1,96 @@ +/** + * 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. + */ + +locals { + abm_on_gce_module_path = "../anthos-bm-gcp-terraform" + apigee_resources = "./resources" + abm_on_gce_resources = "${local.abm_on_gce_module_path}/resources" + apigee_script = "${local.apigee_resources}/install_apigee.sh" + gce_home_dir = "/home/${var.username}" +} + +module "install_abm_on_gce" { + source = "../anthos-bm-gcp-terraform" + project_id = var.project_id + credentials_file = var.credentials_file + region = var.region + zone = var.zone + gcp_login_accounts = var.gcp_login_accounts + gce_vm_service_account = var.gce_vm_service_account + username = var.username + mode = var.mode + resources_path = local.abm_on_gce_resources + as_sub_module = true + abm_cluster_id = "apigee-cluster" + machine_type = "n1-standard-8" + instance_count = { + "controlplane" : 1 + "worker" : 3 + } + secondary_apis = [ + "anthos.googleapis.com", + "anthosaudit.googleapis.com", + "anthosgke.googleapis.com", + "apigee.googleapis.com", + "apigeeconnect.googleapis.com", + "cloudtrace.googleapis.com", + "compute.googleapis.com", + "container.googleapis.com", + "dns.googleapis.com", + "file.googleapis.com", + "gkeconnect.googleapis.com", + "gkehub.googleapis.com", + "iam.googleapis.com", + "iamcredentials.googleapis.com", + "logging.googleapis.com", + "meshca.googleapis.com", + "meshconfig.googleapis.com", + "meshtelemetry.googleapis.com", + "monitoring.googleapis.com", + "opsconfigmonitoring.googleapis.com", + "pubsub.googleapis.com", + "serviceusage.googleapis.com", + "stackdriver.googleapis.com", + "sts.googleapis.com" + ] +} + +resource "null_resource" "exec_init_script" { + connection { + type = "ssh" + user = var.username + host = module.install_abm_on_gce.admin_workstation_ip + private_key = file(module.install_abm_on_gce.admin_workstation_ssh_key) + } + + provisioner "file" { + source = local.apigee_script + destination = "${local.gce_home_dir}/install_apigee.sh" + } + + provisioner "file" { + source = var.credentials_file + destination = "${local.gce_home_dir}/apigee-sa.json" + } + + provisioner "remote-exec" { + inline = ["gcloud auth activate-service-account --key-file ${local.gce_home_dir}/apigee-sa.json"] + } + + provisioner "remote-exec" { + inline = ["chmod 0550 ${local.gce_home_dir}/install_apigee.sh"] + } +} diff --git a/anthos-bm-apigee/outputs.tf b/anthos-bm-apigee/outputs.tf new file mode 100644 index 00000000..7441e513 --- /dev/null +++ b/anthos-bm-apigee/outputs.tf @@ -0,0 +1,59 @@ +/** + * 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. + */ + +locals { + install_apigee_instructions = join("\n", [ + "", + "################################################################################", + "# Setup APIGEE with the new Anthos on bare metal cluster #", + "################################################################################", + "> ./install_apigee.sh", + "", + ]) +} + +output "admin_vm_ssh" { + description = "Run the following command to provision the anthos cluster." + value = var.mode != "setup" ? null : join("\n", [ + module.install_abm_on_gce.admin_vm_ssh, + local.install_apigee_instructions + ]) +} + +output "installation_check" { + description = "Run the following command to check the Anthos bare metal installation status." + value = var.mode == "setup" ? null : join("\n", [ + module.install_abm_on_gce.installation_check, + local.install_apigee_instructions + ]) +} + +output "controlplane_ip" { + description = <>~/.bashrc + echo "export KUBECONFIG=$KUBECONFIG" >>/home/tfadmin/.bashrc + mkdir apigee_workspace + cd apigee_workspace || exit + export APIGEE_WORKSPACE=$PWD +} + +install_cert_manager() { + kubectl apply \ + --validate=false \ + -f https://github.com/jetstack/cert-manager/releases/download/v1.7.2/cert-manager.yaml +} + +download_asm() { + cd "$APIGEE_WORKSPACE" || exit + curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.12 >asmcli + chmod +x asmcli + +} + +install_asm() { + cd "$APIGEE_WORKSPACE" || exit + fleet_id=$(gcloud config get-value project) + echo "$KUBECONFIG" + echo "$fleet_id" + ./asmcli install \ + --fleet_id "${fleet_id}" \ + --kubeconfig "$KUBECONFIG" \ + --output_dir . \ + --custom_overlay overlay.yaml \ + --platform multicloud \ + --enable_all \ + --option legacy-default-ingressgateway +} + +create_overlay_asm() { + cd "$APIGEE_WORKSPACE" || exit + cat <overlay.yaml +apiVersion: install.istio.io/v1alpha1 +kind: IstioOperator +spec: + components: + ingressGateways: + - name: istio-ingressgateway + enabled: true + k8s: + nodeSelector: + # default node selector, if different or not using node selectors, change accordingly. + #cloud.google.com/gke-nodepool: apigee-runtime + resources: + requests: + cpu: 1000m + service: + type: LoadBalancer + ports: + - name: http-status-port + port: 15021 + - name: http2 + port: 80 + targetPort: 8080 + - name: https + port: 443 + targetPort: 8443 + meshConfig: + accessLogFormat: + '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' +EOF + +} + +install_apigee_ctl() { + cd "$APIGEE_WORKSPACE" || exit + VERSION=$(curl -s \ + https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1) + export VERSION + #Pinning down to previous version because 1.7 has some issues + export VERSION="1.7.3" + curl -LO \ + https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz + + tar -xvf apigeectl_linux_64.tar.gz + mv apigeectl_$VERSION-* apigeectl + +} + +setup_project_directory() { + cd "$APIGEE_WORKSPACE/apigeectl" || exit + export APIGEECTL_HOME=$PWD + echo "$APIGEECTL_HOME" + + cd "$APIGEE_WORKSPACE" || exit + mkdir hybrid-files + cd hybrid-files || exit + mkdir overrides + mkdir certs + ln -s "$APIGEECTL_HOME/tools" tools + ln -s "$APIGEECTL_HOME/config" config + ln -s "$APIGEECTL_HOME/templates" templates + ln -s "$APIGEECTL_HOME/plugins" plugins + #Lets do cleaup first + PROJECT_ID=$(gcloud config get-value project) + export PROJECT_ID + #gcloud iam service-accounts delete apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com --quiet + echo 'y' | ./tools/create-service-account --env non-prod --dir ./service-accounts + #gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-non-prod.json --iam-account=apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com --quiet + INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + export INGRESS_HOST + export DOMAIN=$INGRESS_HOST".nip.io" + # shellcheck disable=SC2086 + openssl req -nodes -new -x509 \ + -keyout ./certs/keystore.key \ + -out ./certs/keystore.pem -subj '/CN='$DOMAIN'' \ + -days 3650 + +} + +setup_org_env() { + cd "$APIGEE_WORKSPACE" || exit + TOKEN=$(gcloud auth print-access-token) + PROJECT_ID=$(gcloud config get-value project) + export PROJECT_ID + export ORG_NAME=$PROJECT_ID + ORG_DISPLAY_NAME="demo-org" + ORGANIZATION_DESCRIPTION="demo-org" + export ANALYTICS_REGION=us-central1 + export RUNTIMETYPE=HYBRID + curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ + -d '{ + "name":"'"$ORG_NAME"'", + "displayName":"'"$ORG_DISPLAY_NAME"'", + "description":"'"$ORGANIZATION_DESCRIPTION"'", + "runtimeType":"'"$RUNTIMETYPE"'", + "analyticsRegion":"'"$ANALYTICS_REGION"'" + }' -o org.json \ + "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" + + echo "Waiting for initial 60 seconds ...." + sleep 60 + + # shellcheck disable=SC2002 + operations_id=$(cat org.json | jq -r .name | awk -F "/" '{print $NF}') + wait_for_active "$operations_id" + + export ENV_NAME=test + ENV_DISPLAY_NAME="test" + ENV_DESCRIPTION="test" + curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" -d '{ + "name": "'"$ENV_NAME"'", + "displayName": "'"$ENV_DISPLAY_NAME"'", + "description": "'"$ENV_DESCRIPTION"'" + }' -o env.json "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/environments" + + # shellcheck disable=SC2002 + operations_id=$(cat env.json | jq -r .name | awk -F "/" '{print $NF}') + wait_for_active "$operations_id" + + export ENV_GROUP=default-test + INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + export INGRESS_HOST + export DOMAIN=$INGRESS_HOST".nip.io" + + curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ + -d '{ + "name": "'"$ENV_GROUP"'", + "hostnames":["'"$DOMAIN"'"] + }' -o envgroup.json \ + "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups" + # shellcheck disable=SC2002 + operations_id=$(cat envgroup.json | jq -r .name | awk -F "/" '{print $NF}') + wait_for_active "$operations_id" + + curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \ + -d '{ + "environment": "'"$ENV_NAME"'", + }' -o envattach.json \ + "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/envgroups/$ENV_GROUP/attachments" +} + +patch_standard_storageclass() { + kubectl patch storageclass local-shared \ + -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' +} + +prepare_overrides_files() { + cd "$APIGEE_WORKSPACE" || exit + PROJECT_ID=$(gcloud config get-value project) + export PROJECT_ID + wget https://github.com/mikefarah/yq/releases/download/v4.24.2/yq_linux_amd64 + chmod +x yq_linux_amd64 + sudo mv yq_linux_amd64 /usr/local/bin/yq + cp apigeectl/examples/overrides-small.yaml hybrid-files/overrides/overrides.yaml + cd hybrid-files/overrides/ || exit + sed -i '/hostNetwork: false/a \ \ replicaCount: 3' overrides.yaml + yq -i '.gcp.projectID = env(PROJECT_ID)' overrides.yaml + yq -i '.org = env(PROJECT_ID)' overrides.yaml + yq -i '.k8sCluster.name = "apigee-hybrid"' overrides.yaml + yq -i '.k8sCluster.region = "us-central1-a"' overrides.yaml + yq -i '.instanceID = "apigee-hybrid-demo"' overrides.yaml + yq -i '.cassandra.hostNetwork = true' overrides.yaml + yq -i 'del(.virtualhosts.[].sslSecret)' overrides.yaml + yq -i '.virtualhosts.[].name = "default-test"' overrides.yaml + yq -i '.virtualhosts.[].sslCertPath = "./certs/keystore.pem"' overrides.yaml + yq -i '.virtualhosts.[].sslKeyPath = "./certs/keystore.key"' overrides.yaml + + export SVC_ACCOUNT="./service-accounts/${PROJECT_ID}-apigee-non-prod.json" + echo "$SVC_ACCOUNT" + yq -i '.envs.[].serviceAccountPaths.synchronizer = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.envs.[].serviceAccountPaths.udca = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.envs.[].serviceAccountPaths.runtime = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.mart.serviceAccountPath = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.metrics.serviceAccountPath = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.connectAgent.serviceAccountPath = env(SVC_ACCOUNT)' overrides.yaml + yq -i '.watcher.serviceAccountPath = env(SVC_ACCOUNT)' overrides.yaml + yq e '{"udca" : {"serviceAccountPath" : env(SVC_ACCOUNT)}}' overrides.yaml > tempfile && cat tempfile >> overrides.yaml + yq e '{"logger" : {"serviceAccountPath" : env(SVC_ACCOUNT)}}' overrides.yaml > tempfile && cat tempfile >> overrides.yaml + +} + +enable_synchronizer() { + cd "$APIGEE_WORKSPACE" || exit + TOKEN=$(gcloud auth print-access-token) + PROJECT_ID=$(gcloud config get-value project) + export PROJECT_ID + export ORG_NAME=$PROJECT_ID + curl -X POST -H "Authorization: Bearer ${TOKEN}" \ + -H "Content-Type:application/json" \ + "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \ + -d '{"identities":["'"serviceAccount:apigee-non-prod@${ORG_NAME}.iam.gserviceaccount.com"'"]}' + +} + +wait_for_apigee_ready() { + export APIGEECTL_HOME=$APIGEE_WORKSPACE/apigeectl + cd "$APIGEE_WORKSPACE/hybrid-files/" || exit + + echo "Checking Apigee Containers ..." + status=$("$APIGEECTL_HOME/apigeectl" check-ready -f overrides/overrides.yaml 2>&1) + apigee_ready=$(echo "$status" | grep 'All containers are ready.') + #apigee_ready="" + + while [ "$apigee_ready" == "" ]; do + sleep 30 + echo "Checking Apigee Containers ..." + status=$("$APIGEECTL_HOME/apigeectl" check-ready -f overrides/overrides.yaml 2>&1) + apigee_ready=$(echo "$status" | grep 'All containers are ready.') + done + echo "Apigee is Ready" +} + +install_runtime() { + cd "$APIGEE_WORKSPACE/apigeectl" || exit + export APIGEECTL_HOME=$PWD + echo "$APIGEECTL_HOME" + cd "../hybrid-files/" || exit + kubectl create namespace apigee + kubectl create namespace apigee-system + "${APIGEECTL_HOME}/apigeectl" init -f overrides/overrides.yaml + wait_for_apigee_ready + "${APIGEECTL_HOME}/apigeectl" apply -f overrides/overrides.yaml + wait_for_apigee_ready + +} + +export GOOGLE_APPLICATION_CREDENTIALS=/home/tfadmin/apigee-sa.json +create_workspace +install_cert_manager +download_asm +create_overlay_asm +install_asm +install_apigee_ctl +setup_project_directory +setup_org_env +patch_standard_storageclass +prepare_overrides_files +enable_synchronizer +install_runtime diff --git a/anthos-bm-apigee/resources/run_prerequisite.sh b/anthos-bm-apigee/resources/run_prerequisite.sh new file mode 100755 index 00000000..e1ab83ef --- /dev/null +++ b/anthos-bm-apigee/resources/run_prerequisite.sh @@ -0,0 +1,128 @@ +#!/bin/bash +# 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. + +project=$(gcloud config get-value project) +export project + +enable_services() { + echo "Enabling Google Cloud APIs..." + gcloud services enable \ + cloudresourcemanager.googleapis.com \ + compute.googleapis.com \ + apigee.googleapis.com \ + iam.googleapis.com +} + +apply_constraints() { + echo "Applying organization policies to ${project}..." + gcloud beta resource-manager org-policies disable-enforce compute.requireShieldedVm --project="${project}" + gcloud beta resource-manager org-policies disable-enforce compute.requireOsLogin --project="${project}" + gcloud beta resource-manager org-policies disable-enforce iam.disableServiceAccountCreation --project="${project}" + gcloud beta resource-manager org-policies disable-enforce iam.disableServiceAccountKeyCreation --project="${project}" + gcloud beta resource-manager org-policies disable-enforce compute.skipDefaultNetworkCreation --project="${project}" + + declare -a policies=("constraints/compute.trustedImageProjects" + "constraints/compute.vmExternalIpAccess" + "constraints/compute.restrictSharedVpcSubnetworks" + "constraints/compute.restrictSharedVpcHostProjects" + "constraints/compute.restrictVpcPeering" + "constraints/compute.vmCanIpForward" + ) + + for policy in "${policies[@]}"; do + cat <new_policy.yaml +constraint: $policy +listPolicy: + allValues: ALLOW +EOF + gcloud resource-manager org-policies set-policy new_policy.yaml --project="${project}" + done + echo "Allow upto 30 seconds to Propagate the policy changes" + sleep 30 + echo "Policy Changes done" +} + +create_network() { + EXISTS=$(gcloud compute networks list \ + --filter="name=default" \ + --format="value(name)" \ + --project="${project}") + + if [[ -z "${EXISTS}" ]]; then + echo "Creating default network..." + gcloud compute networks create default --project="${project}" --subnet-mode=auto --mtu=1460 --bgp-routing-mode=regional + echo "Successfully created default network." + fi +} + +set_firewall_exists() { + EXISTS=$(gcloud compute firewall-rules list \ + --filter="name=$1 AND network=default" \ + --format="value(name, disabled)" \ + --project="${project}") +} + +apply_firewall_policies() { + echo "Creating default firewall rules on the default network..." + set_firewall_exists default-allow-ssh + if [[ -z "${EXISTS}" ]]; then + gcloud compute firewall-rules create default-allow-ssh --network default --allow tcp:22 --source-ranges 0.0.0.0/0 + fi + + set_firewall_exists default-allow-rdp + if [[ -z "${EXISTS}" ]]; then + gcloud compute firewall-rules create default-allow-rdp --network default --allow tcp:3389 --source-ranges 0.0.0.0/0 + fi + + set_firewall_exists default-allow-icmp + if [[ -z "${EXISTS}" ]]; then + gcloud compute firewall-rules create default-allow-icmp --network default --allow icmp --source-ranges 0.0.0.0/0 + fi + + set_firewall_exists default-allow-internal + if [[ -z "${EXISTS}" ]]; then + gcloud compute firewall-rules create default-allow-internal --network default --allow tcp:0-65535,udp:0-65535,icmp --source-ranges 10.128.0.0/9 + fi + + set_firewall_exists default-allow-out + if [[ -z "${EXISTS}" ]]; then + gcloud compute firewall-rules create default-allow-out --direction egress --priority 0 --network default --allow tcp,udp --destination-ranges 0.0.0.0/0 + fi +} + +create_owner_service_account() { + EXISTS=$(gcloud iam service-accounts list \ + --filter="email=baremetal-owner@${project}.iam.gserviceaccount.com" \ + --format="value(name, disabled)" \ + --project="${project}") + + if [[ -z "${EXISTS}" ]]; then + echo "Creating Service Account with Owner and Apigee.Admin roles..." + gcloud iam service-accounts create baremetal-owner + gcloud projects add-iam-policy-binding "${project}" --member=serviceAccount:baremetal-owner@"${project}".iam.gserviceaccount.com --role=roles/owner + gcloud projects add-iam-policy-binding "${project}" --member=serviceAccount:baremetal-owner@"${project}".iam.gserviceaccount.com --role=roles/apigee.admin + fi + + if [ ! -f "anthos-bm-owner.json" ]; then + gcloud iam service-accounts keys create anthos-bm-owner.json --iam-account=baremetal-owner@"${project}".iam.gserviceaccount.com + gcloud auth activate-service-account --key-file anthos-bm-owner.json + fi +} + +enable_services +apply_constraints +create_network +apply_firewall_policies +create_owner_service_account diff --git a/anthos-bm-apigee/terraform.tfvars.sample b/anthos-bm-apigee/terraform.tfvars.sample new file mode 100644 index 00000000..a7c0d388 --- /dev/null +++ b/anthos-bm-apigee/terraform.tfvars.sample @@ -0,0 +1,6 @@ +project_id = "" +region = "" +zone = "" +credentials_file = "" +#gcp_login_accounts = ["", , ] +username = "tfadmin" diff --git a/anthos-bm-apigee/variables.tf b/anthos-bm-apigee/variables.tf new file mode 100644 index 00000000..c3a4f141 --- /dev/null +++ b/anthos-bm-apigee/variables.tf @@ -0,0 +1,80 @@ +/** + * 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. + */ + + +variable "project_id" { + description = "Unique identifer of the Google Cloud Project that is to be used" + type = string +} + +variable "credentials_file" { + description = <