From ef0b497511e636c8b17b38eb422bb74c9cb7d896 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 14:10:29 -0700 Subject: [PATCH 1/9] feat(terraform): Apigee Hybrid Terraform Scripts First Version --- tools/apigee-hybrid-terraform/.gitignore | 42 ++ tools/apigee-hybrid-terraform/LICENSE | 201 +++++++++ tools/apigee-hybrid-terraform/README.md | 244 +++++++++++ .../apigee-hybrid-core/.gitignore | 27 ++ .../apigee-hybrid-core/README.md | 123 ++++++ .../apigee-service-template.yaml | 21 + .../apigee-hybrid-core/main.tf | 395 ++++++++++++++++++ .../apigee-hybrid-core/outputs.tf | 49 +++ .../overrides-templates.yaml | 105 +++++ .../apigee-hybrid-core/setup_apigee.sh | 383 +++++++++++++++++ .../apigee-hybrid-core/variables.tf | 169 ++++++++ .../apigee-on-aks/.gitignore | 26 ++ .../apigee-on-aks/README.md | 280 +++++++++++++ .../apigee-on-aks/clean_up.sh | 3 + .../images/apigee_hybrid_aks.png | Bin 0 -> 138844 bytes .../apigee-on-aks/images/azure-config.png | Bin 0 -> 176480 bytes .../apigee-on-aks/main.tf | 283 +++++++++++++ .../apigee-on-aks/outputs.tf | 60 +++ .../apigee-on-aks/terraform.tfvars | 53 +++ .../apigee-on-aks/terraform.tfvars.sample | 44 ++ .../apigee-on-aks/variables.tf | 183 ++++++++ .../apigee-on-eks/Images/aws-config.png | Bin 0 -> 99566 bytes .../apigee-on-eks/Images/aws-objects.png | Bin 0 -> 230985 bytes .../apigee-on-eks/Images/placeholder.text | 1 + .../apigee-on-eks/Images/tf-plan.png | Bin 0 -> 99587 bytes .../apigee-on-eks/README.md | 227 ++++++++++ .../apigee-on-eks/clean_up.sh | 3 + .../apigee-on-eks/main.tf | 243 +++++++++++ .../apigee-on-eks/outputs.tf | 77 ++++ .../apigee-on-eks/terraform.tf | 36 ++ .../apigee-on-eks/terraform.tfvars | 62 +++ .../apigee-on-eks/terraform.tfvars.sample | 49 +++ .../apigee-on-eks/variables.tf | 199 +++++++++ .../apigee-on-gke/README.md | 251 +++++++++++ .../apigee-on-gke/clean_up.sh | 3 + .../apigee-on-gke/main.tf | 313 ++++++++++++++ .../apigee-on-gke/outputs.tf | 44 ++ .../apigee-on-gke/terraform.tfvars | 48 +++ .../apigee-on-gke/terraform.tfvars.sample | 46 ++ .../apigee-on-gke/variables.tf | 135 ++++++ .../apigee-on-others/README.md | 195 +++++++++ .../apigee-on-others/clean_up.sh | 3 + .../apigee-on-others/main.tf | 67 +++ .../apigee-on-others/outputs.tf | 19 + .../apigee-on-others/terraform.tfvars | 58 +++ .../apigee-on-others/terraform.tfvars.sample | 56 +++ .../apigee-on-others/variables.tf | 140 +++++++ .../apply_org_policies.sh | 38 ++ .../diagram/aks_draw.py | 58 +++ .../diagram/apigee_hybrid_aks.png | Bin 0 -> 138844 bytes .../diagram/apigee_hybrid_gke.png | Bin 0 -> 142676 bytes .../diagram/gke_draw.py | 57 +++ tools/apigee-hybrid-terraform/pipeline.sh | 16 + 53 files changed, 5135 insertions(+) create mode 100644 tools/apigee-hybrid-terraform/.gitignore create mode 100644 tools/apigee-hybrid-terraform/LICENSE create mode 100644 tools/apigee-hybrid-terraform/README.md create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/.gitignore create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/README.md create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml create mode 100755 tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh create mode 100644 tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/.gitignore create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/README.md create mode 100755 tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/images/apigee_hybrid_aks.png create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/images/azure-config.png create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/main.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample create mode 100644 tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-config.png create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-objects.png create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/Images/placeholder.text create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/Images/tf-plan.png create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/README.md create mode 100755 tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/main.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample create mode 100644 tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/README.md create mode 100755 tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/main.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample create mode 100644 tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/README.md create mode 100755 tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/main.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample create mode 100644 tools/apigee-hybrid-terraform/apigee-on-others/variables.tf create mode 100755 tools/apigee-hybrid-terraform/apply_org_policies.sh create mode 100644 tools/apigee-hybrid-terraform/diagram/aks_draw.py create mode 100644 tools/apigee-hybrid-terraform/diagram/apigee_hybrid_aks.png create mode 100644 tools/apigee-hybrid-terraform/diagram/apigee_hybrid_gke.png create mode 100644 tools/apigee-hybrid-terraform/diagram/gke_draw.py create mode 100644 tools/apigee-hybrid-terraform/pipeline.sh diff --git a/tools/apigee-hybrid-terraform/.gitignore b/tools/apigee-hybrid-terraform/.gitignore new file mode 100644 index 000000000..342cb0046 --- /dev/null +++ b/tools/apigee-hybrid-terraform/.gitignore @@ -0,0 +1,42 @@ +# Local .terraform directories +.terraform/ +.terraform.lock.hcl + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +#*.tfvars +#*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Ignore transient lock info files created by terraform apply +.terraform.tfstate.lock.info + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc +new_policy.yaml +output +kubeconfig +net_policy.yaml \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/LICENSE b/tools/apigee-hybrid-terraform/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/tools/apigee-hybrid-terraform/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/tools/apigee-hybrid-terraform/README.md b/tools/apigee-hybrid-terraform/README.md new file mode 100644 index 000000000..dd491e81f --- /dev/null +++ b/tools/apigee-hybrid-terraform/README.md @@ -0,0 +1,244 @@ +# Apigee Hybrid Terraform + +This repository contains Terraform configurations for deploying and managing Apigee Hybrid. The project supports deployment on multiple Kubernetes platforms including Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS), Elastic Kubernetes Service (EKS), and other supported Kubernetes platforms. This setup is ideal for creating an evaluation Apigee instance to test features and functionality. + +## Project Structure + +``` +├── apigee-hybrid-core/ # Core Apigee Hybrid infrastructure components +├── apigee-on-aks/ # AKS-specific deployment configurations +├── apigee-on-gke/ # GKE-specific deployment configurations +├── apigee-on-eks/ # EKS-specific deployment configurations +├── apigee-on-others/ # Install Apigee on other Kubernetes Provider/ +``` + +## Prerequisites + +### Required Tools +- Terraform >= 1.0.0 +- Google Cloud SDK (gcloud CLI) >= 400.0.0 +- kubectl >= 1.24.0 +- Helm >= 3.15.0 + +### GCP Project Setup +- A GCP project with billing enabled +- Appropriate IAM permissions (Owner/Editor role) +- Required APIs enabled (handled automatically by Terraform): + - Compute Engine API + - Container (GKE) API + - Cloud Resource Manager API + - Apigee API + - Apigee Connect API + - Cloud KMS API + - Service Networking API + - Cloud Monitoring API + - Cloud Logging API + - Cloud Storage API + - Cloud SQL Admin API + +### Organization Policies +The following organization policies should use Google's default settings: +- `disableServiceAccountKeyCreation` +- `requireOsLogin` +- `requireShieldedVm` +- `vmExternalIpAccess` + +To apply these policies, run: +```bash +./apply_org_policies.sh +``` + +## Quick Start + +1. Clone this repository: + ```bash + git clone https://github.com/your-username/apigee-hybrid-terraform.git + cd apigee-hybrid-terraform + ``` + +2. Choose your deployment target: + - For GKE deployment: Navigate to `apigee-on-gke/` + - For AKS deployment: Navigate to `apigee-on-aks/` + - For EKS deployment: Navigate to `apigee-on-eks/` + - For other Kubernetes Provider deployment: Navigate to `apigee-on-others/` + +3. Initialize Terraform: + ```bash + terraform init + ``` + +4. Configure your variables: + - Edit `terraform.tfvars` with required values. You can refer `terraform.tfvars.sample` + - Update the variables with your specific values + +5. Apply the configuration: + ```bash + terraform plan + terraform apply + ``` + +6. Verify the deployment: + ```bash + kubectl get pods -n apigee + ``` + +## Components + +### Core Infrastructure (`apigee-hybrid-core/`) + +The core module provides the fundamental infrastructure components required for Apigee Hybrid, including: +- IAM configurations +- Service accounts +- Core GCP resources + +### GKE Deployment ([`apigee-on-gke/`](apigee-on-gke/)) + +Specific configurations for deploying Apigee Hybrid on Google Kubernetes Engine, including: +- GKE cluster configuration +- Apigee runtime components +- Network configurations +- Load balancer setup + +### AKS Deployment ([`apigee-on-aks/`](apigee-on-aks/)) + +Configurations for deploying Apigee Hybrid on Azure Kubernetes Service, including: +- AKS cluster setup +- Network configurations +- Load balancer setup +- Apigee Runtime Installation + + +### EKS Deployment ([`apigee-on-eks/`](apigee-on-eks/)) + +Configurations for deploying Apigee Hybrid on AWS Kubernetes Service, including: +- EKS cluster setup +- Network configurations +- Load balancer setup +- Apigee Runtime Installation + +### Other K8s Deployment ([`apigee-on-others/`](apigee-on-others/)) + +Configurations for deploying Apigee Hybrid on other Kubernetes Service, including: + +- Apigee Runtime Installation + +## Maintenance + +### Upgrading + +1. Review the release notes for the target version +2. Update the Apigee runtime version in your configuration +3. Apply the changes using Terraform: + ```bash + terraform plan + terraform apply + ``` +4. Verify the upgrade: + ```bash + kubectl get pods -n apigee + ``` + +### Backup and Recovery + +- Regular backups of the Apigee runtime data +- Terraform state backup +- Configuration version control +- Disaster recovery procedures + +### Health Checks + +Regular health checks should be performed: +```bash +kubectl get pods -n apigee +kubectl get services -n apigee +kubectl describe pods -n apigee +``` + +## Known Issues and Solutions + +### Terraform Provider Warnings + +1. **Deprecated `local_file` Resource** + ``` + Warning: Attribute Deprecated + Use the `local_sensitive_file` resource instead + ``` + - **Solution**: Update the code to use `local_sensitive_file` instead of `local_file` for sensitive content + - **Location**: `apigee-hybrid-core/main.tf` + +2. **Deprecated `inline_policy` in AWS IAM Role** + ``` + Warning: Argument is deprecated + inline_policy is deprecated. Use the aws_iam_role_policy resource instead + ``` + - **Solution**: Replace `inline_policy` with separate `aws_iam_role_policy` resources + - **Location**: EKS module configuration + +### Provider Inconsistencies + +1. **Google Service Account Inconsistency** + ``` + Error: Provider produced inconsistent result after apply + When applying changes to module.apigee_hybrid.google_service_account.apigee_non_prod_sa + ``` + - **Solution**: + 1. Remove the service account from GCP Project + 2. Reapply the terraform configuration 'terraform apply' + +### Common Issues + +1. **Cluster Creation Fails** + - Check IAM permissions + - Verify quota availability + - Review network configurations + - Check resource limits + +2. **Apigee Runtime Issues** + - Check pod status: `kubectl get pods -n apigee` + - Review logs: `kubectl logs -n apigee` + - Verify connectivity to Apigee control plane + - Check resource constraints + +3. **Network Connectivity Issues** + - Verify VPC configurations + - Check firewall rules + - Validate DNS settings + - Review load balancer configuration + +## Contributing + +1. Fork the repository +2. Create a feature branch +3. Commit your changes +4. Push to the branch +5. Create a Pull Request + +### Development Guidelines +- Follow Terraform best practices +- Include documentation for new features +- Add tests for new functionality +- Update version numbers appropriately + +## License + +This project is licensed under the terms of the license included in the repository. + +## Support + +For issues and feature requests, please create an issue in the GitHub repository. + +### Getting Help +- Check the [FAQ](docs/FAQ.md) +- Review the [troubleshooting guide](docs/TROUBLESHOOTING.md) +- Join the community Slack channel +- Contact the maintainers + +## Additional Resources + +- [Apigee Hybrid Documentation](https://cloud.google.com/apigee/docs/hybrid) +- [Terraform Documentation](https://www.terraform.io/docs) +- [GKE Documentation](https://cloud.google.com/kubernetes-engine/docs) +- [AKS Documentation](https://docs.microsoft.com/azure/aks) +- [EKS Documentation](https://docs.aws.amazon.com/eks) +- [Kubernetes Documentation](https://kubernetes.io/docs) +- [Helm Documentation](https://helm.sh/docs) diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/.gitignore b/tools/apigee-hybrid-terraform/apigee-hybrid-core/.gitignore new file mode 100644 index 000000000..6665869f8 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/.gitignore @@ -0,0 +1,27 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* +*.tfplan + +# Crash log files +crash.log + +# Exclude all .tfvars files, which are likely to contain sentitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Ignore CLI configuration files +.terraformrc +terraform.rc diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/README.md b/tools/apigee-hybrid-terraform/apigee-hybrid-core/README.md new file mode 100644 index 000000000..d348ea4cf --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/README.md @@ -0,0 +1,123 @@ + +## Apigee Hybrid Setup Script + +The `setup_apigee.sh` script automates the installation and configuration of Apigee Hybrid. It handles the deployment of all necessary components including the operator, datastore, telemetry, and ingress configurations. + +### Prerequisites + +Before running the script, ensure you have: + +1. Access to a running Kubernetes cluster +2. Required files: + - `overrides.yaml`: Apigee configuration overrides + - `service.yaml`: Service template configuration + - Service account key JSON file + - TLS certificate and private key for environment group +3. Required tools: + - `kubectl` configured to access your Kubernetes cluster + - `helm` (version 3.10+) + - `gcloud` CLI configured with appropriate permissions + +### Script Parameters + +The script accepts the following parameters: + +| Parameter | Short | Required | Default | Description | +|-----------|-------|----------|---------|-------------| +| `--version` | `-v` | No | 1.14.2-hotfix.1 | Apigee version to install | +| `--namespace` | `-n` | No | apigee | Kubernetes namespace for Apigee components | +| `--kubeconfig` | `-f` | No | - | Kubernetes Config File | +| `--sa_email` | `-a` | Yes | - | Service Account email | +| `--overrides` | `-o` | Yes | - | Path to overrides.yaml file | +| `--service` | `-s` | Yes | - | Path to service template file | +| `--key` | `-k` | Yes | - | Path to service account key JSON file | +| `--cert` | `-c` | Yes | - | Path to environment group certificate file | +| `--private-key` | `-p` | Yes | - | Path to environment group private key file | +| `--help` | `-h` | No | - | Display help message | + +### Sample Usage + + +1. **Custom Version and Namespace**: + ```bash + ./setup_apigee.sh \ + --version "1.14.2-hotfix.1" \ + --namespace "apigee-prod" \ + --kubeconfig "/path/to/kubeconfig" \ + --sa_email "apigee-svc-tf@project.gserviceaccount.com" \ + --overrides "/path/to/overrides.yaml" \ + --service "/path/to/service.yaml" \ + --key "/path/to/sa-key.json" \ + --cert "/path/to/cert.pem" \ + --private-key "/path/to/key.pem" + ``` + +2. **Using Short Options**: + ```bash + ./setup_apigee.sh \ + -v "1.14.2-hotfix.1" \ + -n "apigee" \ + -f "/path/to/kubeconfig" \ + -a "apigee-svc-tf@project.gserviceaccount.com" \ + -o "/path/to/overrides.yaml" \ + -s "/path/to/service.yaml" \ + -k "/path/to/sa-key.json" \ + -c "/path/to/cert.pem" \ + -p "/path/to/key.pem" + ``` + +### What the Script Does + +1. **Setup Phase**: + - Creates necessary directories + - Pulls required Helm charts + - Copies configuration files to appropriate locations + +2. **Installation Phase**: + - Creates Kubernetes namespace + - Enables control plane access + - Installs CRDs + - Installs cert-manager + - Installs Apigee operator + - Installs datastore + - Installs telemetry + - Installs Redis + - Installs ingress manager + - Installs organization + - Installs environment + - Installs environment group + - Sets up ingress + +### Troubleshooting + +If you encounter issues: + +1. **Check Prerequisites**: + ```bash + # Verify kubectl access + kubectl cluster-info + + # Verify helm version + helm version + + # Verify gcloud configuration + gcloud config list + ``` + +2. **Check Logs**: + ```bash + # Check operator logs + kubectl logs -n apigee -l app=apigee-controller + + # Check datastore logs + kubectl logs -n apigee -l app=apigee-datastore + ``` + +3. **Verify Installation**: + ```bash + # Check all pods + kubectl get pods -n apigee + + # Check services + kubectl get services -n apigee + ``` \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml new file mode 100644 index 000000000..bb725e695 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: Service +metadata: + name: ${service_name} + namespace: ${apigee_namespace} +spec: + ports: + - name: status-port + port: 15021 + protocol: TCP + targetPort: 15021 + - name: https + port: 443 + protocol: TCP + targetPort: 8443 + selector: + app: apigee-ingressgateway #required + ingress_name: ${ingress_name} + org: ${org_name} + type: LoadBalancer + loadBalancerIP: ${apigee_lb_ip} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf new file mode 100644 index 000000000..a93d2ee36 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf @@ -0,0 +1,395 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "~> 6.30.0" # Consider pinning to a specific minor like "~> 4.80" + } + local = { + source = "hashicorp/local" + version = "~> 2.4.0" + } + tls = { + source = "hashicorp/tls" + version = "~> 4.0" + } + random = { + source = "hashicorp/random" + version = "~> 3.5" + } + } +} + +# Generate random string for resource names +resource "random_string" "suffix" { + length = 6 # Shortened to avoid hitting length limits on some Azure resources + special = false + upper = false +} + +locals { + random_suffix = substr(random_string.suffix.result, 0, 6) + apigee_org_constructed_id = "organizations/${var.project_id}" # Apigee Org ID is the Project ID + service_account_id_short = "${var.apigee_service_account_name}" #"apigee-non-prod-${local.random_suffix}" # Or make this configurable + service_account_email = "${local.service_account_id_short}@${var.project_id}.iam.gserviceaccount.com" + + effective_org_id = var.create_org ? ( + google_apigee_organization.apigee_org[0].id + ) : local.apigee_org_constructed_id + + effective_env_name = var.apigee_env_name + effective_instance_name = var.apigee_instance_name + effective_envgroup_hostnames = var.apigee_envgroup_hostnames + effective_envgroup_name = var.apigee_envgroup_name + + effective_envgroup_id = var.create_org ? ( + google_apigee_envgroup.hybrid_envgroup[0].id + ) : (local.effective_org_id != null ? "${local.effective_org_id}/envgroups/${var.apigee_envgroup_name}" : null) + + apigee_non_prod_sa_roles = [ + "roles/storage.objectAdmin", + "roles/logging.logWriter", + "roles/apigeeconnect.Agent", + "roles/monitoring.metricWriter", + "roles/apigee.synchronizerManager", + "roles/apigee.analyticsAgent", + "roles/apigee.runtimeAgent", + ] + + primary_hostname_for_cert = length(var.apigee_envgroup_hostnames) > 0 ? var.apigee_envgroup_hostnames[0] : "default-apigee-host.example.com" + cert_filename_prefix = replace(local.primary_hostname_for_cert, ".", "-") + + output_dir = "output/${var.project_id}" # Centralize output directory path + + sa_key_filename_for_overrides = basename(local_file.apigee_non_prod_sa_key_file.filename) + cert_file_path_for_overrides = basename(local_file.apigee_envgroup_cert_file.filename) + private_key_file_path_for_overrides = basename(local_file.apigee_envgroup_private_key_file.filename) + + ingress_svc_annotations_yaml = length(var.ingress_svc_annotations) > 0 ? yamlencode(var.ingress_svc_annotations) : "" + + # Use module path for templates if specific paths aren't provided + final_overrides_template_path = var.overrides_template_path != "" ? var.overrides_template_path : "${path.module}/overrides-templates.yaml" + final_service_template_path = var.service_template_path != "" ? var.service_template_path : "${path.module}/apigee-service-template.yaml" + + # Determine the org name for overrides.yaml. Default to project_id if var.apigee_org_name is not set. + # Apigee Hybrid org ID is typically the GCP project ID. + org_name_for_overrides = var.apigee_org_name != "" ? var.apigee_org_name : var.project_id +} + +# ------------------------------------------------------------------------------ +# Enable Google Cloud Services +# ------------------------------------------------------------------------------ +resource "google_project_service" "iam" { + project = var.project_id + service = "iam.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false # Set to true if you want to disable on destroy +} +resource "google_project_service" "apigee" { + project = var.project_id + service = "apigee.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +resource "google_project_service" "compute" { + project = var.project_id + service = "compute.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +resource "google_project_service" "apigeeconnect" { + project = var.project_id + service = "apigeeconnect.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +resource "google_project_service" "container" { # Often needed for GKE, even if using AKS for runtime, Apigee might interact + project = var.project_id + service = "container.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +# Add other services like storage, logging, monitoring if not already enabled +resource "google_project_service" "storage" { + project = var.project_id + service = "storage.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +resource "google_project_service" "logging" { + project = var.project_id + service = "logging.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +resource "google_project_service" "monitoring" { + project = var.project_id + service = "monitoring.googleapis.com" + disable_dependent_services = false + disable_on_destroy = false +} +# ------------------------------------------------------------------------------ +# Create Apigee Non-Prod Service Account +# ------------------------------------------------------------------------------ +resource "google_service_account" "apigee_non_prod_sa" { + project = var.project_id + account_id = local.service_account_id_short + display_name = "Apigee Hybrid Non-Prod SA" + description = "Service account for Apigee Hybrid non-production workloads" + + depends_on = [ + google_project_service.iam, # Ensure IAM API is enabled + ] +} + +resource "google_project_iam_member" "apigee_non_prod_sa_bindings" { + for_each = toset(local.apigee_non_prod_sa_roles) + project = var.project_id + role = each.value + member = "serviceAccount:${google_service_account.apigee_non_prod_sa.email}" + depends_on = [ + google_service_account.apigee_non_prod_sa, + # Add dependencies on the specific services if roles grant permissions on them + google_project_service.apigee, + google_project_service.apigeeconnect, + google_project_service.storage, + google_project_service.logging, + google_project_service.monitoring, + ] +} + +resource "google_service_account_key" "apigee_non_prod_sa_key" { + service_account_id = google_service_account.apigee_non_prod_sa.name +} + +# Ensure the output directory exists +resource "null_resource" "create_output_dir" { + triggers = { + output_dir_path = local.output_dir + } + provisioner "local-exec" { + command = "mkdir -p ${local.output_dir}" + } +} + +# Save the service account key to a local file +resource "local_file" "apigee_non_prod_sa_key_file" { + sensitive_content = base64decode(google_service_account_key.apigee_non_prod_sa_key.private_key) + filename = "${local.output_dir}/${local.service_account_id_short}-sa-key.json" + file_permission = "0600" + depends_on = [ + null_resource.create_output_dir, + google_service_account_key.apigee_non_prod_sa_key, + ] +} + +# ------------------------------------------------------------------------------ +# Self-Signed TLS Certificate for Apigee Environment Group Hostnames +# ------------------------------------------------------------------------------ +resource "tls_private_key" "apigee_envgroup_key" { + count = var.tls_apigee_self_signed ? 1 : 0 + algorithm = "RSA" + rsa_bits = 2048 +} + +resource "tls_self_signed_cert" "apigee_envgroup_cert" { + count = var.tls_apigee_self_signed ? 1 : 0 + private_key_pem = tls_private_key.apigee_envgroup_key[0].private_key_pem + dns_names = var.apigee_envgroup_hostnames + + subject { + common_name = local.primary_hostname_for_cert + organization = "Apigee Hybrid Self-Signed Cert" + } + + validity_period_hours = 8760 # 1 year + early_renewal_hours = 720 # 30 days + + allowed_uses = [ + "key_encipherment", + "digital_signature", + "server_auth", + ] +} + +resource "local_file" "apigee_envgroup_private_key_file" { + sensitive_content = var.tls_apigee_self_signed ? tls_private_key.apigee_envgroup_key[0].private_key_pem : var.tls_apigee_key_path + filename = "${local.output_dir}/${local.cert_filename_prefix}.key" + file_permission = "0600" + depends_on = [ + null_resource.create_output_dir, + tls_private_key.apigee_envgroup_key, + ] +} + +resource "local_file" "apigee_envgroup_cert_file" { + content = var.tls_apigee_self_signed ? tls_self_signed_cert.apigee_envgroup_cert[0].cert_pem : var.tls_apigee_cert_path + filename = "${local.output_dir}/${local.cert_filename_prefix}.crt" + file_permission = "0644" + depends_on = [ + null_resource.create_output_dir, + tls_self_signed_cert.apigee_envgroup_cert, + ] +} + +# ------------------------------------------------------------------------------ +# Apigee Organization, Environment, EnvGroup, Attachment +# ------------------------------------------------------------------------------ +resource "google_apigee_organization" "apigee_org" { + count = var.create_org ? 1 : 0 + + project_id = var.project_id # The GCP project that will host the Apigee org + display_name = var.apigee_org_display_name != "" ? var.apigee_org_display_name : "Apigee Org for ${var.project_id}" + description = "Apigee Hybrid Organization managed by Terraform" + analytics_region = var.region + runtime_type = "HYBRID" + billing_type = var.billing_type + + depends_on = [ + google_project_service.apigee, + google_project_service.compute, + google_project_service.container, # Apigee may require container API for its operations + local_file.apigee_non_prod_sa_key_file, # Ensure SA Key is created before org + + ] +} + +resource "google_apigee_environment" "hybrid_env" { + count = var.create_org ? 1 : 0 + + name = local.effective_env_name + display_name = var.apigee_env_display_name + description = "Hybrid Environment for ${local.effective_env_name}" + org_id = local.effective_org_id +} + +resource "google_apigee_envgroup" "hybrid_envgroup" { + count = var.create_org ? 1 : 0 + + name = local.effective_envgroup_name + hostnames = local.effective_envgroup_hostnames + org_id = local.effective_org_id + + depends_on = [ + google_apigee_organization.apigee_org, + google_project_service.apigee, + ] +} + +resource "google_apigee_envgroup_attachment" "env_to_group_attachment" { + count = var.create_org ? 1 : 0 + + envgroup_id = google_apigee_envgroup.hybrid_envgroup[0].id + environment = google_apigee_environment.hybrid_env[0].name + + depends_on = [ + google_apigee_environment.hybrid_env, + google_apigee_envgroup.hybrid_envgroup, + ] +} +# ------------------------------------------------------------------------------ +# Generate overrides.yaml and apigee-service.yaml +# ------------------------------------------------------------------------------ + +resource "local_file" "apigee_overrides" { + content = templatefile(local.final_overrides_template_path, { + # K8S_CLUSTER_RUNNING_APIGEE_RUNTIME + instance_id = var.apigee_instance_name # This is the Apigee Instance name (google_apigee_instance.name) + apigee_namespace = var.apigee_namespace + # GCP_PROJECT_ID used for Apigee Organization + project_id = var.project_id + analytics_region = var.region + # K8S_CLUSTER_NAME where Apigee is installed + cluster_name = var.cluster_name + cluster_location = var.region # Assuming K8s cluster region is same as Apigee region for simplicity + # APIGEE_ORGANIZATION_ID + org_name = local.org_name_for_overrides # This should be the Apigee Org ID (typically project_id) + environment_name = var.apigee_env_name + cassandra_replica_count = var.apigee_cassandra_replica_count + # File paths for SA key and certs are basenames, script will handle full paths for secrets + non_prod_service_account_filepath = local.sa_key_filename_for_overrides + ingress_name = var.ingress_name + environment_group_name = var.apigee_envgroup_name + ssl_cert_path = local.cert_file_path_for_overrides + ssl_key_path = local.private_key_file_path_for_overrides + ingress_svc_annotations_yaml = local.ingress_svc_annotations_yaml # Pass the generated YAML snippet + # Add any other variables your template needs + }) + filename = "${local.output_dir}/overrides.yaml" + file_permission = "0644" + depends_on = [ + null_resource.create_output_dir, + local_file.apigee_non_prod_sa_key_file, # Ensure SA key file is written + local_file.apigee_envgroup_cert_file, # Ensure cert file is written + local_file.apigee_envgroup_private_key_file, # Ensure key file is written + ] +} + +resource "local_file" "apigee_service" { + content = templatefile(local.final_service_template_path, { + apigee_namespace = var.apigee_namespace + # APIGEE_ORGANIZATION_ID + org_name = local.org_name_for_overrides # This should be the Apigee Org ID + ingress_name = var.ingress_name + # SERVICE_NAME often maps to envgroup name or a specific service identifier + service_name = var.apigee_envgroup_name # Or another appropriate variable + apigee_lb_ip = var.apigee_lb_ip + # Add any other variables your template needs + }) + filename = "${local.output_dir}/apigee-service.yaml" + file_permission = "0644" + depends_on = [null_resource.create_output_dir] +} + +# ------------------------------------------------------------------------------ +# Execute Apigee Setup Script +# ------------------------------------------------------------------------------ +resource "null_resource" "apigee_setup_execution" { + count = var.apigee_install ? 1 : 0 + + triggers = { + apigee_version = var.apigee_version + apigee_namespace = var.apigee_namespace + kubeconfig = var.kubeconfig + apigee_overrides_yaml_content = local_file.apigee_overrides.content + apigee_service_yaml_content = local_file.apigee_service.content + apigee_sa_key_json_content = local_file.apigee_non_prod_sa_key_file.content + apigee_envgroup_cert_content = local_file.apigee_envgroup_cert_file.content + apigee_envgroup_key_content = local_file.apigee_envgroup_private_key_file.content + script_hash = filemd5("${path.module}/setup_apigee.sh") + output_dir = local.output_dir + } + + provisioner "local-exec" { + when = destroy + #command = "kubectl delete -f ${self.triggers.output_dir}/apigee-service.yaml" + command = "if [ -n \"${self.triggers.kubeconfig}\" ] && [ -f \"${self.triggers.kubeconfig}\" ]; then export KUBECONFIG=${self.triggers.kubeconfig}; fi && kubectl delete -f ${self.triggers.output_dir}/apigee-service.yaml" + on_failure = continue + } + + provisioner "local-exec" { + command = <<-EOT + bash ${path.module}/setup_apigee.sh \ + --version "${var.apigee_version}" \ + --namespace "${var.apigee_namespace}" \ + --kubeconfig "${var.kubeconfig}" \ + --sa_email "${local.service_account_email}" \ + --overrides "${abspath(local_file.apigee_overrides.filename)}" \ + --service "${abspath(local_file.apigee_service.filename)}" \ + --key "${abspath(local_file.apigee_non_prod_sa_key_file.filename)}" \ + --cert "${abspath(local_file.apigee_envgroup_cert_file.filename)}" \ + --private-key "${abspath(local_file.apigee_envgroup_private_key_file.filename)}" + EOT + } + + depends_on = [ + google_apigee_envgroup_attachment.env_to_group_attachment, + local_file.apigee_overrides, + local_file.apigee_service, + local_file.apigee_non_prod_sa_key_file, + local_file.apigee_envgroup_cert_file, + local_file.apigee_envgroup_private_key_file, + ] +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf new file mode 100644 index 000000000..d20f0e75e --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf @@ -0,0 +1,49 @@ +output "apigee_non_prod_sa_email" { + description = "Email of the Apigee Non-Prod service account." + value = google_service_account.apigee_non_prod_sa.email +} + +output "apigee_non_prod_sa_key_path" { + description = "Path to the saved Apigee Non-Prod service account key file." + value = local_file.apigee_non_prod_sa_key_file.filename +} + +output "apigee_overrides_yaml_path" { + description = "Path to the generated Apigee Hybrid overrides.yaml file." + value = local_file.apigee_overrides.filename +} + +output "apigee_service_yaml_path" { + description = "Path to the generated Apigee Hybrid apigee-service.yaml file." + value = local_file.apigee_service.filename +} + +output "apigee_envgroup_private_key_file_path" { + description = "Path to the self-signed private key file for the Apigee envgroup hostname(s)." + value = local_file.apigee_envgroup_private_key_file.filename +} + +output "apigee_envgroup_cert_file_path" { + description = "Path to the self-signed certificate file for the Apigee envgroup hostname(s)." + value = local_file.apigee_envgroup_cert_file.filename +} + +output "apigee_setup_script_executed_trigger" { + description = "Indicates if the Apigee setup script was triggered. This output changes if the script's triggers change." + value = var.apigee_install ? null_resource.apigee_setup_execution[0].id : "Apigee setup script was skipped (apigee_install=false)." +} + +output "apigee_organization_id" { + description = "The ID of the Apigee organization." + value = local.effective_org_id +} + +output "apigee_environment_name" { + description = "The name of the Apigee environment." + value = local.effective_env_name +} + +output "apigee_envgroup_id" { + description = "The ID of the Apigee environment group." + value = local.effective_envgroup_id +} diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml new file mode 100644 index 000000000..a2f29fa82 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml @@ -0,0 +1,105 @@ +instanceID: "${instance_id}" +namespace: ${apigee_namespace} # Usually "apigee" + +gcp: + projectID: ${project_id} + region: ${analytics_region} + +k8sCluster: + name: ${cluster_name} + region: ${cluster_location} # Must be the closest Google Cloud region to your cluster. + +org: ${org_name} + +# Required for Enhanced per-environment proxy limits: +enhanceProxyLimits: true + +# Required if using data residency with hybrid: + +# Required for data residency with hybrid and Enhanced per-environment proxy limits: +newDataPipeline: + debugSession: true + analytics: true + +envs: +- name: ${environment_name} + serviceAccountPaths: + # Provide the path relative to the apigee-env chart directory. + synchronizer: ${non_prod_service_account_filepath} + # For example: "PROJECT_ID-apigee-non-prod.json" + runtime: ${non_prod_service_account_filepath} + # For example: "PROJECT_ID-apigee-non-prod.json" + udca: ${non_prod_service_account_filepath} + # For example: "PROJECT_ID-apigee-non-prod.json" + +cassandra: + hostNetwork: false + # Set to false for single region installations and multi-region installations + # with connectivity between pods in different clusters, for example GKE installations. + # Set to true for multi-region installations with no communication between + # pods in different clusters, for example Google Distributed Cloud on VMware or bare metal, GKE on AWS, + # AKS, EKS, and OpenShift installations. + # See Multi-region deployment: Prerequisites + replicaCount: ${cassandra_replica_count} + # Use 1 for non-prod or "demo" installations and multiples of 3 for production. + # See Configure Cassandra for production for guidelines. + + +nodeSelector: + requiredForScheduling: false + apigeeRuntime: + key: "cloud.google.com/gke-nodepool" + value: "apigee-runtime" + apigeeData: + key: "cloud.google.com/gke-nodepool" + value: "apigee-data" + + +ingressGateways: +- name: ${ingress_name} # maximum 17 characters. + replicaCountMin: 2 + replicaCountMax: 10 + svcType: ClusterIP + + +virtualhosts: +- name: ${environment_group_name} + selector: + app: apigee-ingressgateway + ingress_name: ${ingress_name} + sslCertPath: certs/${ssl_cert_path} + sslKeyPath: certs/${ssl_key_path} + +mart: + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" + +connectAgent: + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the apigee-org chart directory. + # Use the same service account for mart and connectAgent + # For example: "PROJECT_ID-apigee-non-prod.json" + +logger: + enabled: true + # enabled by default + # See apigee-logger in Service accounts and roles used by hybrid components. + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the apigee-telemetry chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" + +metrics: + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the apigee-telemetry chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" + +udca: + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the apigee-org chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" + +watcher: + serviceAccountPath: ${non_prod_service_account_filepath} + # Provide the path relative to the apigee-org chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh new file mode 100755 index 000000000..3c2f74d08 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh @@ -0,0 +1,383 @@ +#!/bin/bash + +# Default values +APIGEE_VERSION="1.14.2-hotfix.1" +APIGEE_NAMESPACE="apigee" + +# Function to display usage +usage() { + echo "Usage: $0 [options]" + echo "Options:" + echo " -v, --version VERSION Apigee version (default: $APIGEE_VERSION)" + echo " -n, --namespace NAMESPACE Apigee namespace (default: $APIGEE_NAMESPACE)" + echo " -f, --kubeconfig KUBECONFIG Path to kubeconfig file (default: $KUBECONFIG)" + echo " -o, --overrides PATH Path to overrides.yaml file (required)" + echo " -s, --service PATH Path to apigee service template file (required)" + echo " -a, --sa_email SA_EMAIL Path to apigee service accounts template file (required)" + echo " -k, --key PATH Path to service account key JSON file (required)" + echo " -c, --cert PATH Path to environment group certificate file (required)" + echo " -p, --private-key PATH Path to environment group private key file (required)" + echo " -h, --help Display this help message" + exit 1 +} + +# Parse command line arguments +while [[ $# -gt 0 ]]; do + case $1 in + -v|--version) + APIGEE_VERSION="$2" + shift 2 + ;; + -n|--namespace) + APIGEE_NAMESPACE="$2" + shift 2 + ;; + -f|--kubeconfig) + KUBECONFIG_FILE="$2" + shift 2 + ;; + -o|--overrides) + OVERRIDES_YAML_PATH="$2" + shift 2 + ;; + -s|--service) + SERVICE_TEMPLATE_PATH="$2" + shift 2 + ;; + -a|--sa_email) + SA_EMAIL="$2" + shift 2 + ;; + -k|--key) + SA_KEY_JSON_PATH="$2" + shift 2 + ;; + -c|--cert) + ENVGROUP_CERT_PATH="$2" + shift 2 + ;; + -p|--private-key) + ENVGROUP_PRIVATE_KEY_PATH="$2" + shift 2 + ;; + -h|--help) + usage + ;; + *) + echo "Unknown option: $1" + usage + ;; + esac +done + + +# Validate required parameters +if [ -z "$OVERRIDES_YAML_PATH" ] || [ -z "$SERVICE_TEMPLATE_PATH" ] || [ -z "$SA_EMAIL" ] || \ + [ -z "$SA_KEY_JSON_PATH" ] || [ -z "$ENVGROUP_CERT_PATH" ] || \ + [ -z "$ENVGROUP_PRIVATE_KEY_PATH" ]; then + echo "Error: Missing required parameters" + usage +fi + +setup_apigee() { + if [ -z "$APIGEE_NAMESPACE" ]; then + echo "Apigee namespace is required" + exit 1 + fi + + if [ -z "$OVERRIDES_YAML_PATH" ]; then + echo "Apigee overrides YAML is required" + exit 1 + fi + + if [ -z "$SA_KEY_JSON_PATH" ]; then + echo "Apigee SA key JSON is required" + exit 1 + fi + + if [ -z "$ENVGROUP_CERT_PATH" ]; then + echo "Apigee envgroup cert file is required" + exit 1 + fi + + if [ -z "$ENVGROUP_PRIVATE_KEY_PATH" ]; then + echo "Apigee envgroup private key file is required" + exit 1 + fi + + if [ -z "$SERVICE_TEMPLATE_PATH" ]; then + echo "Apigee service template path is required" + exit 1 + fi + + export org_name=$(grep -A 1 'org:' "$OVERRIDES_YAML_PATH" | grep 'org:' | awk '{print $2}') + + # Set up base directories + export APIGEE_HYBRID_BASE=output/$org_name/apigee-hybrid + export APIGEE_HELM_CHARTS_BASE=helm-charts + + mkdir -p $APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE + + # Pull Apigee Helm charts + cd $APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE + export APIGEE_HELM_CHARTS_HOME=$PWD + + # Set chart repository and version + export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts + export CHART_VERSION=${APIGEE_VERSION} + + # Remove all files in the home directory + rm -rf $APIGEE_HELM_CHARTS_HOME/* + + # Pull all required Helm charts + helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar + helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar + + # Get the filename from the path + local apigee_overrides_yaml_filename=$(basename $OVERRIDES_YAML_PATH) + local apigee_service_template_filename=$(basename $SERVICE_TEMPLATE_PATH) + local apigee_sa_key_json_filename=$(basename $SA_KEY_JSON_PATH) + local apigee_envgroup_cert_file_filename=$(basename $ENVGROUP_CERT_PATH) + local apigee_envgroup_private_key_file_filename=$(basename $ENVGROUP_PRIVATE_KEY_PATH) + + echo "apigee_overrides_yaml_filename: $apigee_overrides_yaml_filename" + echo "apigee_sa_key_json_filename: $apigee_sa_key_json_filename" + echo "apigee_envgroup_cert_file_filename: $apigee_envgroup_cert_file_filename" + echo "apigee_envgroup_private_key_file_filename: $apigee_envgroup_private_key_file_filename" + + # Copy the overrides.yaml file + cp $OVERRIDES_YAML_PATH $APIGEE_HELM_CHARTS_HOME/$apigee_overrides_yaml_filename + cp $SERVICE_TEMPLATE_PATH $APIGEE_HELM_CHARTS_HOME/$apigee_service_template_filename + + # Copy the sa-key.json file + cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-datastore/$apigee_sa_key_json_filename + cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/$apigee_sa_key_json_filename + cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-org/$apigee_sa_key_json_filename + cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-env/$apigee_sa_key_json_filename + + mkdir -p $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/ + + # Copy the cert files + cp -fr $ENVGROUP_CERT_PATH $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_cert_file_filename + cp -fr $ENVGROUP_PRIVATE_KEY_PATH $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_private_key_file_filename +} + +create_namespace() { + local apigee_namespace=$1 + if ! kubectl get namespace $apigee_namespace &>/dev/null; then + kubectl create namespace $apigee_namespace + fi +} + +enable_control_plane_access() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + local org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + + export TOKEN=$(gcloud auth application-default print-access-token) + + curl -X PATCH -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type:application/json" \ + "https://apigee.googleapis.com/v1/organizations/$org_name/controlPlaneAccess?update_mask=synchronizer_identities" \ + -d "{\"synchronizer_identities\": [\"serviceAccount:$SA_EMAIL\"]}" + + sleep 5 + + curl -X PATCH -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type:application/json" \ + "https://apigee.googleapis.com/v1/organizations/$org_name/controlPlaneAccess?update_mask=analytics_publisher_identities" \ + -d "{\"analytics_publisher_identities\": [\"serviceAccount:$SA_EMAIL\"]}" + +} + +install_crd() { + kubectl apply -k $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ \ + --server-side \ + --force-conflicts \ + --validate=false +} + +install_cert_manager() { + kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.3/cert-manager.yaml + + #Wait for cert-manager to be ready + kubectl wait --for=condition=ready pod -l app=cert-manager -n cert-manager --timeout=120s +} + +install_operator() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade operator apigee-operator/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path + + #Wait for operator to be ready + kubectl wait --for=condition=ready pod -l app=apigee-controller -n $apigee_namespace --timeout=120s +} + +install_datastore() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade datastore apigee-datastore/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path +} + +install_telemetry() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade telemetry apigee-telemetry/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path +} + +install_redis() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade redis apigee-redis/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path +} + +install_ingress_manager() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade ingress-manager apigee-ingress-manager/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path +} + +install_org() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + local org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + + + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade $org_name apigee-org/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + -f $apigee_overrides_yaml_path +} + +install_env() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + #read the env_name from the overrides.yaml file + local apigee_env_name=$(grep -A 1 'envs:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') + + + local env_release_name="env-release-$apigee_env_name" + cd $APIGEE_HELM_CHARTS_HOME + + helm upgrade $env_release_name apigee-env/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + --set env=$apigee_env_name \ + -f $apigee_overrides_yaml_path + +} + +install_envgroup() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + #read the env_group_name from the overrides.yaml file + local apigee_env_group_name=$(grep -A 1 'virtualhosts:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') + local env_group_release_name="env-group-release-$apigee_env_group_name" + + helm upgrade $env_group_release_name apigee-virtualhost/ \ + --install \ + --namespace $apigee_namespace \ + --atomic \ + --set envgroup=$apigee_env_group_name \ + -f $apigee_overrides_yaml_path + +} + +setup_ingress() { + local apigee_namespace=$1 + local apigee_overrides_yaml_path=$2 + + cd $APIGEE_HELM_CHARTS_HOME + + #apply the apigee-service.yaml file + kubectl apply -f $APIGEE_HELM_CHARTS_HOME/apigee-service.yaml + +} + +setup_kubeconfig() { + + if [ -z "$KUBECONFIG_FILE" ]; then + echo "KUBECONFIG_FILE is not set. Will use default kubeconfig" + else + if [ -f "$KUBECONFIG_FILE" ]; then + export KUBECONFIG=$KUBECONFIG_FILE + else + echo "KUBECONFIG_FILE does not exist" + fi + fi + echo "Checking if kubectl is configured correctly" + kubectl get nodes + if [ $? -ne 0 ]; then + echo "Failed to get nodes" + exit 1 + fi +} + +# Main function +main() { + setup_apigee + setup_kubeconfig + create_namespace $APIGEE_NAMESPACE + enable_control_plane_access $APIGEE_NAMESPACE "overrides.yaml" + install_crd + install_cert_manager + install_operator $APIGEE_NAMESPACE "overrides.yaml" + install_datastore $APIGEE_NAMESPACE "overrides.yaml" + install_telemetry $APIGEE_NAMESPACE "overrides.yaml" + install_redis $APIGEE_NAMESPACE "overrides.yaml" + install_ingress_manager $APIGEE_NAMESPACE "overrides.yaml" + install_org $APIGEE_NAMESPACE "overrides.yaml" + install_env $APIGEE_NAMESPACE "overrides.yaml" + install_envgroup $APIGEE_NAMESPACE "overrides.yaml" + setup_ingress $APIGEE_NAMESPACE "overrides.yaml" +} + +# Run main function +main diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf new file mode 100644 index 000000000..9085073f9 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf @@ -0,0 +1,169 @@ +####################################### +#### GCP/Apigee Specific variables #### +####################################### + +variable "project_id" { + description = "The GCP project ID where Apigee Hybrid will be set up." + type = string +} + +variable "region" { + description = "The GCP region for Apigee resources like analytics and runtime instance location." + type = string + default = "us-central1" +} + +variable "apigee_org_display_name" { + description = "Display name for the Apigee Organization. If create_org is true, this will be used." + type = string + default = "Apigee Hybrid Organization" # Generic default +} + +variable "apigee_env_name" { + description = "Name for the Apigee Environment (e.g., dev, test, prod)." + type = string + default = "dev" +} + +variable "kubeconfig" { + description = "Path to the Kubernetes configuration file." + type = string + default = "" +} + + +variable "apigee_env_display_name" { + description = "Display name for the Apigee Environment." + type = string + default = "Development Environment" +} + +variable "apigee_instance_name" { + description = "Name for the Apigee Runtime Instance (representing your K8s cluster)." + type = string + default = "hybrid-instance-1" +} + +variable "apigee_envgroup_name" { + description = "Name for the Apigee Environment Group." + type = string + default = "api-proxy-group" +} + +variable "apigee_envgroup_hostnames" { + description = "List of hostnames for the Environment Group." + type = list(string) + # Example: default = ["api.example.com"] # Must be provided by calling module +} + +variable "apigee_cassandra_replica_count" { + description = "Cassandra Replica Count." + type = number + default = 1 # For non-prod; adjust for prod +} + +variable "apigee_install" { + description = "Indicates whether to run the Apigee setup script. Set to true to install Apigee, false otherwise." + type = bool + default = true +} + +variable "create_org" { + description = "Indicates whether to create the Apigee organization. Set to true to create, false if it already exists." + type = bool + default = false # Safer default; often org exists or is managed separately +} + +variable "billing_type" { + description = "Billing type for the Apigee organization (EVALUATION or PAID). Only used if create_org is true." + type = string + default = "EVALUATION" + validation { + condition = contains(["EVALUATION", "PAID", "SUBSCRIPTION"], var.billing_type) + error_message = "Billing type must be EVALUATION, PAID or SUBSCRIPTION." + } +} + +variable "overrides_template_path" { + description = "Path to the overrides template file (e.g., overrides-templates.yaml)." + type = string + default = "" # Will be set to path.module in main.tf if not overridden +} + +variable "apigee_service_account_name" { + description = "The name of the service account" + type = string + default = "apigee-svc-tf" # Will be set to path.module in main.tf if not overridden +} + +variable "service_template_path" { + description = "Path to the Apigee service template file (e.g., apigee-service-template.yaml)." + type = string + default = "" # Will be set to path.module in main.tf if not overridden +} + +variable "apigee_namespace" { + description = "The Kubernetes namespace where Apigee components will be deployed." + type = string + default = "apigee" +} + +variable "ingress_name" { + description = "Name for the ingress gateway (max 17 characters)." + type = string + default = "apigee-ingress" + validation { + condition = length(var.ingress_name) <= 17 + error_message = "Ingress name must be 17 characters or less." + } +} + +variable "ingress_svc_annotations" { + description = "A map of annotations to apply to the ingress gateway service. Example: { \"service.beta.kubernetes.io/azure-load-balancer-internal\": \"true\" }" + type = map(string) + default = {} +} + +variable "apigee_version" { + description = "Version of Apigee Hybrid to install." + type = string + # Example: default = "1.14.2-hotfix.1" # Must be provided by calling module +} + +variable "cluster_name" { + description = "Name of the Kubernetes cluster where Apigee Hybrid will be deployed. Used in overrides.yaml." + type = string + # Example: "aks-apigee-cluster" # Must be provided by calling module +} + +variable "apigee_org_name" { + description = "Name of the Apigee organization. Typically the GCP Project ID. Used in overrides.yaml." + type = string + # If not provided, project_id will be used. + default = "" +} + +variable "tls_apigee_self_signed" { + description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." + type = bool + default = true +} + +variable "tls_apigee_cert_path" { + description = "The TLS certificate for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" +} + +variable "tls_apigee_key_path" { + description = "The TLS private key for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" + sensitive = true +} + +variable "apigee_lb_ip" { + type = string + description = "IP address for the Apigee Load Balancer." + default = "" +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/.gitignore b/tools/apigee-hybrid-terraform/apigee-on-aks/.gitignore new file mode 100644 index 000000000..9d6911563 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/.gitignore @@ -0,0 +1,26 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* +*.tfplan + +# Crash log files +crash.log + +# Exclude all .tfvars files, which are likely to contain sentitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Ignore CLI configuration files +.terraformrc +terraform.rc diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/README.md b/tools/apigee-hybrid-terraform/apigee-on-aks/README.md new file mode 100644 index 000000000..2f343f3a2 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/README.md @@ -0,0 +1,280 @@ +## Disclaimer +This tool is open-source software. It is not an officially supported Google product. It is not a part of Apigee, or any other officially supported Google Product. + +## Architecture + +The following diagram illustrates the architecture of Apigee Hybrid on Azure AKS: + +![Apigee Hybrid on Azure AKS Architecture](../diagram/apigee_hybrid_aks.png) + +The architecture consists of: + +1. **Client Layer**: + - Web/Mobile clients making API calls to the AKS cluster + +2. **Azure Infrastructure**: + - Network Load Balancer for distributing incoming traffic + - AKS Cluster with: + - Runtime Pool for Apigee runtime components + - Data Pool for Apigee data components + - NAT Gateway for outbound connectivity + +3. **Google Cloud Platform**: + - Apigee Organization for API management + - Cloud Logging for log collection + - Cloud Monitoring for metrics and observability + + +## How to Setup Apigee hybrid on Azure AKS Clusters using Terraform + +The Terraform configuration defines a new Virtual Network (VNet) in which to provision the Azure Kubernetes Service (AKS) cluster. It uses the `azurerm` provider to create the required Azure resources, including the AKS cluster, node pools (with auto-scaling capabilities), Network Security Groups (NSGs), and necessary Azure RBAC configurations (e.g., using Managed Identities or Service Principals). + +Open the `main.tf` file to review the resource configuration. The `azurerm_kubernetes_cluster` resource configures the cluster, including a default system node pool. Additional user node pools can be defined using `azurerm_kubernetes_cluster_node_pool` resources, for example, to have different VM sizes or capabilities for specific workloads (like Apigee runtime components). + +Once the terraform provisions the aks infrastructure, it proceeds to create Apigee Organization, Environment and Environment Group and installs Apigee Hybrid. + + +## Getting Started + +1. **Setup an Azure Account/Subscription** if you don't have one. You can start with a free account [here](https://azure.microsoft.com/en-us/free/). +2. **Create an Azure Service Principal or use your User Account**: + * For automation and CI/CD, it's recommended to create a Service Principal with the necessary permissions (e.g., "Contributor" on the subscription or a specific resource group). Follow instructions [here](https://learn.microsoft.com/en-us/azure/developer/terraform/authenticate-to-azure?tabs=bash#create-a-service-principal). + * Alternatively, you can authenticate as a user via Azure CLI. + +3. **Download and install Terraform** to your local terminal as described [here](https://developer.hashicorp.com/terraform/install). +4. **Download and install the Azure CLI (az)** to your local terminal from where Terraform would be run, as described [here](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli). +5. **Download and install Helm** (version 3.15+ recommended, check Apigee docs for specific version compatibility). +6. **Install Google Cloud SDK**: + ```bash + # Check if gcloud is installed + gcloud version + + # If not installed, follow instructions at: + # https://cloud.google.com/sdk/docs/install + # Ensure you have the latest version + ``` +7. **Install kubectl**: + ```bash + # Check if kubectl is installed + kubectl version --client + + # If not installed, follow instructions at: + # https://kubernetes.io/docs/tasks/tools/install-kubectl/ + # Ensure version 1.29 or higher + ``` +8. Run `terraform init` to initialize Terraform and download necessary providers. + +## Setup Steps + +1. **Authenticate with Azure**: + * **Interactive Login (User Account)**: Run `az login`. This command will open a browser for authentication. The Azure CLI will then store your credentials locally. + ![Azure Config](images/azure-config.png "Azure Config") + * **Service Principal**: If you created a Service Principal, ensure your environment variables are set for Terraform to authenticate, or configure them in the Azure provider block: + ```bash + export ARM_CLIENT_ID="your-sp-app-id" + export ARM_CLIENT_SECRET="your-sp-password" + export ARM_SUBSCRIPTION_ID="your-subscription-id" + export ARM_TENANT_ID="your-tenant-id" + ``` +2. **Configure Google Cloud Authentication**: + There are two ways to authenticate with Google Cloud: + + a) **User Account Authentication**: + * Ensure you have the Google Cloud SDK (gcloud) installed and configured + * Run `gcloud auth application-default login` to authenticate + * Set your project: `gcloud config set project ` + + b) **Service Account Authentication**: + * Create a service account with appropriate permissions (Owner/Editor) + * Download the service account key JSON file + * Set the environment variable: `export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-key.json"` + * Run `gcloud auth activate-service-account --key-file="path/to/your/service-account-key.json"` + * Set your project: `gcloud config set project ` + * Alternatively, you can specify the credentials file path in your Terraform provider configuration: + ```hcl + provider "google" { + credentials = file("path/to/your/service-account-key.json") + project = "" + } + ``` + + Note: + * Ensure that Organization Policy is not disabled to create service account and associated Service Account Key + * Ensure that the user or service account performing terraform has the permissions to access Google Cloud resources. While not recommended but roles like `roles/editor` or `roles/owner` should ensure all tasks completes successfully + + +3. **Customize the Terraform configuration files**: + * Review `main.tf` (and any module files) to adjust Azure resource definitions like VNet address spaces, AKS cluster version, node pool configurations (VM sizes, count, taints, labels for Apigee workloads). + * Update `terraform.tfvars` file (or create one, e.g., `terraform.tfvars`) with your specific values (e.g., Azure region and Apigee Organization etc). + +#### **terraform.tfvars Variable Reference** + +**Descriptions for each variable** listed below the table for more detail. + +| Variable | Description | Example/Default | +|----------|-------------|----------------| +| `azure_location` | Azure region for resources | `"eastus"` | +| `gcp_project_id` | GCP Project ID for Apigee | `"apigee-aks-example1"` | +| `gcp_region` | GCP region for Apigee resources | `"us-central1"` | +| `apigee_org_name` | Apigee organization name (usually same as GCP project) | `"apigee-aks-example1"` | +| `apigee_org_display_name` | Display name for Apigee org | `"Apigee on AKS Example"` | +| `apigee_env_name` | Apigee environment name | `"dev"` | +| `apigee_envgroup_name` | Apigee environment group name | `"dev-group"` | +| `apigee_namespace` | Kubernetes namespace for Apigee | `"apigee"` | +| `apigee_version` | Apigee Hybrid version | `"1.14.2-hotfix.1"` | +| `apigee_cassandra_replica_count` | Cassandra replica count | `1` | +| `hostnames` | List of hostnames for Apigee env group | `["api.example.com", "api-dev.example.com"]` | +| `tls_apigee_self_signed` | Use self-signed TLS certs (`true`/`false`) | `true` | +| `tls_apigee_cert_path` | Path to TLS cert (if not self-signed) | `"path/to/your/tls.crt"` | +| `tls_apigee_key_path` | Path to TLS key (if not self-signed) | `"path/to/your/tls.key"` | +| `apigee_lb_ip` | (Optional) Static IP for LB | `"4.156.46.192"` | +| `create_org` | Create Apigee org (`true`/`false`) | `true` | +| `apigee_install` | Install Apigee Hybrid (`true`/`false`) | `true` | +| `ingress_name` | Name for ingress resource | `"apigee-ing"` | +| `ingress_svc_annotations` | Service annotations for LB (cloud-specific) | `{}` | + + +4. **Run `terraform plan`**: + Validate the list of Azure resources to be created. The exact count will vary based on your configuration. Review the plan carefully to ensure it matches your expectations. + +5. **Run `terraform apply`**: + This will provision the Azure resources and create the AKS cluster. Confirm the apply when prompted. This process can take several minutes. + +## What Happens During Terraform Apply + +When you run `terraform apply`, the following resources are created in sequence: + +1. **Azure Infrastructure Setup**: + - Creates a new Resource Group with a random suffix + - Sets up a Virtual Network (VNet) with address space 10.0.0.0/16 + - Creates a subnet for AKS nodes (10.0.1.0/24) + - Provisions a NAT Gateway with a public IP for outbound connectivity + - Associates the NAT Gateway with the AKS subnet + +2. **AKS Cluster Creation**: + - Creates the main AKS cluster with a system node pool + - Configures network plugin and policy as "azure" + - Sets up service CIDR (10.1.0.0/16) and DNS service IP (10.1.0.10) + - Enables system-assigned managed identity + +3. **Additional Node Pools**: + - Creates "apigeerun" node pool for Apigee runtime components + - Creates "apigeedata" node pool for Apigee data components + - Both pools support auto-scaling if enabled + - Configures appropriate VM sizes and disk sizes for each workload + +4. **GCP/Apigee Setup** (if `create_org=true`): + - Enables required Google Cloud APIs (Apigee, IAM, Compute, etc.) + - Creates an Apigee organization in your GCP project + - Sets up an Apigee environment (e.g., "dev") + - Creates an environment group with specified hostnames + - Attaches the environment to the environment group + +5. **Service Account and Certificate Setup**: + - Creates a GCP service account for Apigee Hybrid + - Generates a service account key + - Creates self-signed TLS certificates for the environment group hostnames + - Saves all credentials and certificates to the `output/` directory + +6. **Apigee Hybrid Installation** (if `apigee_install=true`): + - Creates the Apigee namespace in the EKS cluster + - Enables control plane access for the service account + - Installs required Kubernetes components: + - Custom Resource Definitions (CRDs) + - cert-manager + - Apigee operator + - Deploys Apigee components in sequence: + - Datastore (Cassandra) + - Telemetry + - Redis + - Ingress Manager + - Organization + - Environment + - Environment Group + - Sets up the ingress gateway with the specified configuration + + +The entire process typically takes 15-30 minutes to complete, depending on the size of your cluster and the number of resources being created. + + +## Accessing the Cluster + +Terraform generates kubeconfig specific to the output directory and it can be found at output//apiigee-kubeconfig. + +To access the cluster, configure your `kubectl` to use the generated kubeconfig file: +```bash +export KUBECONFIG=output//apigee-kubeconfig +``` + +```bash +kubectl get pods -A +``` + + +## Accessing Apigee Endpoint + +* Get the ingress IP/DNS to access Apigee +```bash +kubectl get pods -n apigee +kubectl get svc dev-group -n apigee -o jsonpath='{.status.loadBalancer.ingress[0].ip}' +``` +* Add the ingress IP/DNS to Apigee Environment Group Hostnames through Apigee UI + +* Access the healthz endpoint +```bash +curl -H 'User-Agent: GoogleHC' https://api.example.com/healthz/ingress -k \ + --resolve "api.example.com:443:your-ingress-ip>" +``` + +## Cleanup + +When you're done with the Apigee hybrid setup and want to remove all created resources, follow these steps: + +1. **Remove Apigee Hybrid Components**: + ```bash + # Delete Apigee hybrid components from the cluster + helm uninstall <> -n apigee + ``` + +2. **Destroy Terraform Resources**: + ```bash + # Remove all Azure resources created by Terraform + terraform destroy + ``` + This will remove: + - The AKS cluster and all node pools + - Virtual Network and subnets + - NAT Gateway and associated resources + - Resource Group + - All other Azure resources created by the Terraform configuration + - Apigee Organization, Environment and Environment Group + +3. **Clean Up Local Files**: + ```bash + # Remove generated certificates and keys + rm -rf output/${PROJECT_ID}/ + + # Remove Terraform state files + rm -f terraform.tfstate* + ``` + +4. **Optional: Remove GCP Resources**: + + Terraform destroy should clean this up but in case of failure, you can + delete the GCP resources individually + + If you created GCP resources (like Apigee organization, environment, etc.), you may want to remove them as well: + ```bash + # Delete Apigee environment group + gcloud apigee envgroups delete ${ENVGROUP_NAME} --organization=${PROJECT_ID} + + # Delete Apigee environment + gcloud apigee environments delete ${ENV_NAME} --organization=${PROJECT_ID} + + # Delete Apigee organization (if created) + gcloud apigee organizations delete ${PROJECT_ID} + ``` + +Note: The `terraform destroy` command will prompt for confirmation before proceeding. Make sure you have backups of any important data before running the cleanup commands. + + diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh new file mode 100755 index 000000000..0f50438fc --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh @@ -0,0 +1,3 @@ +rm -fr .terraform* +rm -fr terraform.tfstate* +rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/images/apigee_hybrid_aks.png b/tools/apigee-hybrid-terraform/apigee-on-aks/images/apigee_hybrid_aks.png new file mode 100644 index 0000000000000000000000000000000000000000..615f41e6ba5f8ebebd9c08515bb8c4d36ca3b79c GIT binary patch literal 138844 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%0DwxCv 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

6f~u-M&~Kqrf>n5oXLuB@Cd>k?B6)+e89 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 z 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 bO>jZo)LrVzRZ;l~_n*=d^5O;0-+KKIY+Aqu literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/images/azure-config.png b/tools/apigee-hybrid-terraform/apigee-on-aks/images/azure-config.png new file mode 100644 index 0000000000000000000000000000000000000000..b43cdcd4544e79d6f36d89d1b1fc378196e0c757 GIT binary patch literal 176480 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 z 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 Dq}(lR literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf new file mode 100644 index 000000000..c43fd117d --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf @@ -0,0 +1,283 @@ +terraform { + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "~> 3.0" # Consider pinning to a specific minor like "~> 3.75" + } + google = { + source = "hashicorp/google" + version = "~> 6.30.0" + } + random = { # Added for random_string + source = "hashicorp/random" + version = "~> 3.5" + } + local = { # Added for local_file kubeconfig + source = "hashicorp/local" + version = "~> 2.4.0" + } + } +} + +provider "azurerm" { + features {} +} + +# Generate random string for resource names +resource "random_string" "suffix" { + length = 6 # Shortened to avoid hitting length limits on some Azure resources + special = false + upper = false + keepers = { + # This key can be anything, e.g., "static_suffix_trigger" + # As long as the value "1" (or any static value) doesn't change, + # the random string will only be generated once and then stored. + # If you ever need to force a new suffix, change this value. + _ = "1" + } +} + +locals { + name_suffix = random_string.suffix.result + cluster_name = "aks-apigee-${local.name_suffix}" + resource_group_name = "rg-apigee-${local.name_suffix}" + output_dir = "${path.module}/output" # Define output directory for kubeconfig etc. +} + +# Ensure the output directory exists for kubeconfig +resource "null_resource" "create_output_dir" { + triggers = { + output_dir_path = local.output_dir + } + provisioner "local-exec" { + command = "mkdir -p ${local.output_dir}" + } +} + +# Create Resource Group +resource "azurerm_resource_group" "rg" { + name = local.resource_group_name # Use the generated name + location = var.azure_location +} + +# Create Virtual Network +resource "azurerm_virtual_network" "vnet" { + name = "vnet-apigee-${local.name_suffix}" + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + address_space = ["10.0.0.0/16"] +} + +# Create Subnet for AKS +resource "azurerm_subnet" "aks" { + name = "snet-aks-${local.name_suffix}" + resource_group_name = azurerm_resource_group.rg.name + virtual_network_name = azurerm_virtual_network.vnet.name + address_prefixes = ["10.0.1.0/24"] +} + +# Create NAT Gateway (Optional, but good for outbound internet from AKS) +resource "azurerm_public_ip" "nat" { + name = "pip-nat-${local.name_suffix}" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + allocation_method = "Static" + sku = "Standard" +} + +resource "azurerm_nat_gateway" "nat" { + name = "nat-${local.name_suffix}" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + sku_name = "Standard" +} + +resource "azurerm_subnet_nat_gateway_association" "aks" { + subnet_id = azurerm_subnet.aks.id + nat_gateway_id = azurerm_nat_gateway.nat.id +} + +resource "azurerm_nat_gateway_public_ip_association" "aks_nat_gateway_association" { + nat_gateway_id = azurerm_nat_gateway.nat.id + public_ip_address_id = azurerm_public_ip.nat.id +} + +# Create AKS Cluster +resource "azurerm_kubernetes_cluster" "aks" { + name = local.cluster_name + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + dns_prefix = "apigee-${local.name_suffix}" + + default_node_pool { + name = "system" + node_count = 1 # Min 1 for system + vm_size = "Standard_D4s_v3" # Adjust as needed + vnet_subnet_id = azurerm_subnet.aks.id + enable_auto_scaling = false + } + + network_profile { + network_plugin = "azure" + network_policy = "azure" # Or "calico" + service_cidr = "10.1.0.0/16" + dns_service_ip = "10.1.0.10" + outbound_type = "userAssignedNATGateway" # Using our NAT Gateway + } + + identity { + type = "SystemAssigned" + } + + depends_on = [azurerm_subnet_nat_gateway_association.aks] +} + +# User Node Pool "apigee-runtime" +resource "azurerm_kubernetes_cluster_node_pool" "runtime" { + name = "apigeerun" + kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id + vm_size = "Standard_D4s_v3" + min_count = var.runtime_pool_enable_autoscaling ? var.runtime_pool_min_count : null + max_count = var.runtime_pool_enable_autoscaling ? var.runtime_pool_max_count : null + enable_auto_scaling = var.runtime_pool_enable_autoscaling + node_count = var.runtime_pool_enable_autoscaling ? null : var.runtime_pool_node_count # Set node_count to null if autoscaling is enabled + + vnet_subnet_id = azurerm_subnet.aks.id + os_disk_size_gb = 128 + os_type = "Linux" + mode = "User" + zones = ["1", "2"] + + node_labels = { + "nodepool-purpose" = "apigee-runtime" + "cloud.google.com/gke-nodepool" = "apigee-runtime" + } + # Add tags to the node pool + tags = { + "nodepool-purpose" = "apigee-runtime" + } +} + +# User Node Pool "apigee-data" +resource "azurerm_kubernetes_cluster_node_pool" "data" { + name = "apigeedata" + kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id + vm_size = "Standard_D4s_v3" + min_count = var.data_pool_enable_autoscaling ? var.data_pool_min_count : null + max_count = var.data_pool_enable_autoscaling ? var.data_pool_max_count : null + enable_auto_scaling = var.data_pool_enable_autoscaling + node_count = var.data_pool_enable_autoscaling ? null : var.data_pool_node_count + + vnet_subnet_id = azurerm_subnet.aks.id + os_disk_size_gb = 128 + os_type = "Linux" + mode = "User" + zones = ["1"] + + node_labels = { + "nodepool-purpose" = "apigee-data" + "cloud.google.com/gke-nodepool" = "apigee-data" + } + + tags = { + "nodepool-purpose" = "apigee-data" + } +} + +# Data source to retrieve the built-in "Network Contributor" role definition +data "azurerm_role_definition" "network_contributor" { + name = "Network Contributor" +} + +# Assign the "Network Contributor" role to the AKS cluster's SystemAssigned Managed Identity +# on the subnet scope. This grants the AKS identity permission to join the subnet. +resource "azurerm_role_assignment" "aks_subnet_join_permission" { + scope = azurerm_subnet.aks.id + role_definition_id = data.azurerm_role_definition.network_contributor.id + principal_id = azurerm_kubernetes_cluster.aks.identity[0].principal_id # Correctly reference the AKS cluster's SystemAssigned Identity + skip_service_principal_aad_check = true # Essential for Managed Identities +} + + +# Generate kubeconfig for AKS +resource "local_file" "kubeconfig" { + content = azurerm_kubernetes_cluster.aks.kube_config_raw # Use the raw kubeconfig directly + filename = "${path.module}/output/${var.gcp_project_id}/apigee-kubeconfig" + file_permission = "0600" + + depends_on = [ + null_resource.create_output_dir, # Ensure directory exists + azurerm_kubernetes_cluster.aks + ] +} + +resource "null_resource" "cluster_setup" { + triggers = { + timestamp = timestamp() + } + + # Use local-exec provisioner to run a script to configure kubectl + provisioner "local-exec" { + command = "export KUBECONFIG=${abspath("${path.module}/output/${var.gcp_project_id}/apigee-kubeconfig")} && az aks get-credentials --resource-group ${local.resource_group_name} --name ${local.cluster_name} --overwrite-existing" + } + + depends_on = [ + azurerm_kubernetes_cluster_node_pool.runtime, + azurerm_kubernetes_cluster_node_pool.data, + azurerm_kubernetes_cluster.aks, + azurerm_role_assignment.aks_subnet_join_permission # Add dependency here + ] +} + + +# Call the apigee-hybrid-core module +# This module will now handle the setup script execution if var.apigee_install is true +module "apigee_hybrid" { + source = "../apigee-hybrid-core" # Adjust path as needed + + project_id = var.gcp_project_id + region = var.gcp_region # Core module expects 'region' + apigee_org_name = var.apigee_org_name # Passed to core, core decides how to use it (e.g. for overrides or display name) + apigee_org_display_name = var.apigee_org_display_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_envgroup_hostnames = var.hostnames # Core module expects 'apigee_envgroup_hostnames' + apigee_instance_name = "aks-${local.name_suffix}" # A name for the Apigee instance resource + cluster_name = local.cluster_name # Pass AKS cluster name to core module + kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module + + apigee_version = var.apigee_version + apigee_namespace = var.apigee_namespace + apigee_cassandra_replica_count = var.apigee_cassandra_replica_count + + + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + + apigee_lb_ip = var.apigee_lb_ip + #TLS related variables + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path + + create_org = var.create_org # Set to true if you want this module to create the Apigee Org + apigee_install = var.apigee_install # Set to true to run the setup_apigee.sh script from core module + + # Template paths can be omitted if using defaults in core module (${path.module}/) + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example + + # Pass annotations if needed for Azure internal load balancer for ingress + # ingress_svc_annotations = { + # "service.beta.kubernetes.io/azure-load-balancer-internal": "true" + # # "service.beta.kubernetes.io/azure-load-balancer-internal-subnet": "snet-aks-${local.name_suffix}" # If specific subnet + # } + + depends_on = [ + azurerm_kubernetes_cluster.aks, # Ensure AKS is ready before Apigee core module attempts anything K8s related + azurerm_kubernetes_cluster_node_pool.runtime, + azurerm_kubernetes_cluster_node_pool.data, + local_file.kubeconfig, # Ensure kubeconfig is generated before Apigee tries to use it + null_resource.cluster_setup + ] +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf new file mode 100644 index 000000000..e00af264f --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf @@ -0,0 +1,60 @@ +output "apigee_hybrid_non_prod_sa_email" { + description = "Email of the Apigee Non-Prod service account from the core module." + value = module.apigee_hybrid.apigee_non_prod_sa_email +} + +output "apigee_hybrid_non_prod_sa_key_path" { + description = "Path to the saved Apigee Non-Prod service account key file from the core module." + value = module.apigee_hybrid.apigee_non_prod_sa_key_path +} + +output "apigee_hybrid_overrides_yaml_path" { + description = "Path to the generated Apigee Hybrid overrides.yaml file from the core module." + value = module.apigee_hybrid.apigee_overrides_yaml_path +} + +output "apigee_hybrid_service_yaml_path" { + description = "Path to the generated Apigee Hybrid apigee-service.yaml file from the core module." + value = module.apigee_hybrid.apigee_service_yaml_path +} + +output "apigee_hybrid_envgroup_private_key_file_path" { + description = "Path to the self-signed private key file for the Apigee envgroup from the core module." + value = module.apigee_hybrid.apigee_envgroup_private_key_file_path +} + +output "apigee_hybrid_envgroup_cert_file_path" { + description = "Path to the self-signed certificate file for the Apigee envgroup from the core module." + value = module.apigee_hybrid.apigee_envgroup_cert_file_path +} + +output "apigee_hybrid_setup_script_executed_trigger" { + description = "Indicates if the Apigee setup script was triggered from the core module." + value = module.apigee_hybrid.apigee_setup_script_executed_trigger +} + +output "apigee_hybrid_organization_id" { + description = "The ID of the Apigee organization from the core module." + value = module.apigee_hybrid.apigee_organization_id +} + +output "apigee_hybrid_environment_name" { + description = "The name of the Apigee environment from the core module." + value = module.apigee_hybrid.apigee_environment_name +} + +output "apigee_hybrid_envgroup_id" { + description = "The ID of the Apigee environment group from the core module." + value = module.apigee_hybrid.apigee_envgroup_id +} + +# You can also have outputs specific to the apigee-on-aks module, like the kubeconfig path +output "aks_kubeconfig_path" { + description = "Path to the generated kubeconfig file for the AKS cluster." + value = local_file.kubeconfig.filename +} + +output "aks_cluster_name" { + description = "Name of the deployed AKS cluster." + value = azurerm_kubernetes_cluster.aks.name +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars new file mode 100644 index 000000000..2ddd24215 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars @@ -0,0 +1,53 @@ +# Azure Configuration +azure_location = "eastus" # Using eastus2 for better availability + +# GCP Configuration +gcp_project_id = "apigee-aks-example1" +gcp_region = "us-central1" + +# Apigee Configuration +apigee_org_name = "apigee-aks-example1" # Same as gcp_project_id +apigee_org_display_name = "Apigee on AKS Example" +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" +apigee_cassandra_replica_count = 1 + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="4.156.46.192" + + +#Installation Options +create_org=true +apigee_install=true + + + +# Ingress Configuration +ingress_name = "apigee-ing" +ingress_svc_annotations = { + # Uncomment and modify these based on your cloud provider + # For AWS: + # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" + + # For GCP: + # "cloud.google.com/neg" = "{\"ingress\": true}" + # "cloud.google.com/load-balancer-type" = "internal" + + # For Azure: + # "service.beta.kubernetes.io/azure-load-balancer-internal" = "true" + # "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" = "your-subnet-name" +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample new file mode 100644 index 000000000..07cb4eae1 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample @@ -0,0 +1,44 @@ +# Azure Configuration +azure_location = "eastus" + +# GCP Configuration +gcp_project_id = "your-gcp-project-id" +gcp_region = "us-central1" + +# Apigee Configuration + +apigee_org_name = "your-org-name" +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "My Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 1 + + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + + +create_org=true +apigee_install=true + + +# Optional: Ingress Service Annotations for Azure Internal Load Balancer +# ingress_svc_annotations = { +# "service.beta.kubernetes.io/azure-load-balancer-internal" = "true" +# "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" = "snet-aks-${name_suffix}" +# } diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf new file mode 100644 index 000000000..e435c18fa --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf @@ -0,0 +1,183 @@ +variable "azure_location" { + description = "The Azure region to deploy resources" + type = string + default = "eastus" +} + +variable "gcp_project_id" { + description = "The GCP project ID" + type = string +} + +variable "gcp_region" { + description = "The GCP region for Apigee control plane resources" + type = string + default = "us-central1" +} + +variable "apigee_org_name" { + description = "The name of the Apigee organization (typically the GCP Project ID)." + type = string + # This will be used as the org_name in overrides.yaml if provided, + # otherwise the core module defaults to using var.gcp_project_id. +} + +variable "apigee_env_name" { + description = "The name of the Apigee environment" + type = string + default = "dev" +} + +variable "apigee_envgroup_name" { + description = "The name of the Apigee environment group" + type = string + default = "dev-group" # Changed default to avoid conflict with env_name if both are 'dev' +} + +variable "apigee_namespace" { + description = "The Kubernetes namespace for Apigee" + type = string + default = "apigee" +} + +variable "apigee_version" { + description = "The version of Apigee Hybrid to install" + type = string + # e.g., default = "1.14.2-hotfix.1" - It's better to define this in one place, perhaps here. +} + +variable "hostnames" { + description = "The list of hostnames for the Apigee environment group" + type = list(string) + # e.g., default = ["myapi.example.com"] +} + +# System Node Pool Variables +variable "system_pool_node_count" { + description = "The number of nodes for the system node pool." + type = number + default = 1 +} + + +variable "runtime_pool_enable_autoscaling" { + description = "Whether to enable autoscaling for the Apigee Runtime node pool." + type = bool + default = false +} + +variable "runtime_pool_node_count" { + description = "Node count in case autoscaling is false." + type = number + default = 2 +} + +# Apigee Runtime Node Pool Variables +variable "runtime_pool_min_count" { + description = "Minimum number of nodes for the Apigee Runtime node pool." + type = number + default = 2 +} + +variable "runtime_pool_max_count" { + description = "Maximum number of nodes for the Apigee Runtime node pool." + type = number + default = 2 +} + +variable "data_pool_enable_autoscaling" { + description = "Whether to enable autoscaling for the Apigee Data node pool." + type = bool + default = false +} + +variable "data_pool_node_count" { + description = "Number of nodes for the Apigee Data node pool in case autoscale is false" + type = number + default = 1 +} + +# Apigee Data Node Pool Variables +variable "data_pool_min_count" { + description = "Minimum number of nodes for the Apigee Data node pool." + type = number + default = 1 +} + +variable "data_pool_max_count" { + description = "Maximum number of nodes for the Apigee Data node pool." + type = number + default = 1 +} + +#Add variable for svcAnnotations +variable "ingress_svc_annotations" { + description = "Service Annotations for Apigee Services" + type = map(string) + default = {} +} + +variable "ingress_name" { + description = "The name of the ingress resource for Apigee" + type = string + default = "apigee-ingress" +} + +variable "apigee_org_display_name" { + description = "The display name for the Apigee organization" + type = string + default = "" +} + +variable "apigee_cassandra_replica_count" { + description = "Number of Cassandra replicas for Apigee" + type = number + default = 3 +} + +variable "create_org" { + description = "Whether to create a new Apigee organization" + type = bool + default = true +} + +variable "apigee_install" { + description = "Whether to run the Apigee installation script" + type = bool + default = true +} + +variable "billing_type" { + description = "The billing type for the Apigee organization (EVALUATION or PAID)" + type = string + default = "EVALUATION" + validation { + condition = contains(["EVALUATION", "PAID"], var.billing_type) + error_message = "Billing type must be either EVALUATION or PAID." + } +} + +variable "tls_apigee_self_signed" { + description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." + type = bool + default = true +} + +variable "tls_apigee_cert_path" { + description = "The TLS certificate for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" +} + +variable "tls_apigee_key_path" { + description = "The TLS private key for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" + sensitive = true +} + +variable "apigee_lb_ip" { + type = string + description = "IP address for the Apigee Load Balancer." + default = "" +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-config.png b/tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-config.png new file mode 100644 index 0000000000000000000000000000000000000000..b87c8b7a4926a4252b97dc76116b2b9bb176a6dd GIT binary patch literal 99566 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

x*dn3B@ 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�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 H{eb@uqkZD9 literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-objects.png b/tools/apigee-hybrid-terraform/apigee-on-eks/Images/aws-objects.png new file mode 100644 index 0000000000000000000000000000000000000000..58968b0f43420f2e6a6f853e7ba015060f056249 GIT binary patch literal 230985 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%0A8WCMk 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%0DwxCv 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

6f~u-M&~Kqrf>n5oXLuB@Cd>k?B6)+e89 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 z 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 bO>jZo)LrVzRZ;l~_n*=d^5O;0-+KKIY+Aqu literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/diagram/apigee_hybrid_gke.png b/tools/apigee-hybrid-terraform/diagram/apigee_hybrid_gke.png new file mode 100644 index 0000000000000000000000000000000000000000..e8f7ae252fa5241fddaaa63094cd2668202cfdbf GIT binary patch literal 142676 zcmeFZXH-*L)HaI8b}Znr0Mb=Zq+94!MbS`1dIzOL=n#-lZJ?r{0i^d%2uKMfA)q24 z9SI>oDAEa`Luesz7nXD0aesW{{<(MDAMbK796MvL?6uZx&wS?GdG+A_UB;vAM;RCx z7$Ns=Ycnt$KE=Rrz~S#h;FB4PTlL_-LzZfHZ!_%f{Y%B=L^3d(V}RVgsrxu_cF^as zuHH`LQb((G*M71BpVzG$@lVYj-0-P4^RuAjV=o|IGJA;_29=|UXcW@$W7t7mc=Y{X z-M`82xV8DOuh4j}AaIb_GiRG=RC)R1>&c$;>qAGz&!@;t#U|d*(E$(tJr=Q=ZOMgy zt{50TrG=h5`R`@$zMB{Ry1 zc=z|e7oURv_d(z={`ctiG~)j|W%$&BKM1tEeZ;K{3A z4!;#Nc>lMSmJ6<~t_Rou*1c``((*#x#1v(WT*Aa28JY5Y{|)44JHvLG*EJ<$O6Ss_)qF@~3T;+X(~C{Wi611)B>jUN z--nxUM#C{>`(FS-1S$K?8OHoP=!4y;GY6^i7j{Pu|9-63ek=|WXHuSzsW#<}V9VTy zy{sA2J*X(*hxv;^`b@W!xc%o6g5yWI=xZK)=l{5hR5O;am_wPFmoJFwBYT{C)&~9p zv*xPh%@`OS#}B#?O9&hn!|n*wg|>{=E4}@*Mf&wPb=6tC0ZZu}iVmLn$3o7_kN;@K z5S(M*|NSGk0$#^5SBN5hiaP)N<)0}`VVbJi_ijJeFBr^>@0Zn#!8-#_#7Q{%+DD+) z9<1T`hlrGvoR&Y%i8FiaIOkYmfqvXKWR0Qy#$5$HQ#?PE`ig$;EBu2*KF*pFJI@?kn>>?;^WgDIr*O5ch>#& zo7eLVuTLgBMN2?;f@LsSfHe`Y`0&o3d)3^DarjEV}#?cXahG$r9=?Jbn=*PK( zp=CAim(m{i-Ib7(6qK?{;1kHxRH}fAiizo1DJx^0Z{4~zF^69x*5o9|;K{n}@ zFxAb>;r6?i&{G7ZRySF9bv~+-*j$r~j(t4d`na{dwG$Pzi{vBYB9shty{3{a>_kke z?{z3_=H}-MnkXzxE#$Q9c%a&Ar?q{JP$KQVn6>uH!mY&dT611VJar;bQn_oFx@vU- zN^NGIE59124o;*i_Oxb?9&s@DQ)(*9l)_Rq*#GL+XX{YHYa0X~u+2XKiPPJEd%OEO zpJCNOxf8T=@3S=aaYlQ8h-w-hwy4<&=12nit*8wW=Uddyrz}5!$@>i(q&?j@2~=9DZgd4DRlR0 zqDht4E1}zO!e0@7oNwfeivOiM!SgJf?AfCTZOxePHm&y#xakTa3-oV9aC6O9{Fw5E zTTUunl;{Y=ZuU5^`)wUC!r{!EXB;Ww3ym`HDXKvk7Gu1ApB9=7-(hCtOzd)|@;E2Q zZfc5bQCT6{w~F`%VZ-}pl-wSKNit7Nz<1}Q#HT1?Xaza7J>kszO<&cF^85Dk&Fh|8 z^8mbCb$*F9sk9XBwe*+BHq}l~Pk%bD(RQZFU^uGJ|DlqVuC8G&mkdeI+}u{W!a>o(*l(~<8=*@GyhHI;eAf}_J)-s2HGh#>~eum zvz0bpwr`K|LA3jO+6vEg=%}iBLlC2ySuyj z#EQZ-nvl0W<}@^#+nYOIXQ}DNrts(B z$==RpWC~D&*p!_7=A#v~%8YW`iY|P4Zdy%^+E_KUzXidEtfVS97%;Ok=NA_*rJ89X8d9itiIhZVlI%c`4-9<`k1u;P$j&@I;jKm= zQdFEvUYPOgwk{PA;?=0X^J1=?WM+mcLnY{$nGt3-lj`p@_a%#j)_qT-?Efj2AK&bX z#do*+db-C)R52kx4Fn)T>uXhmHMTxz+o0w5d=9-Y-?ImNdF4WtqYbQ>sYy?|ka}j8 zv-P5xw}?6s(1~Rm$C5tNMml{P)<+=DJXI5Q_4L*^*!mFtVR~XJxd(%W?nOC7x6oCH zftgRnAtvsE!}C=-h}F@Ag>RO{m9Sc1Yo$s%4?Jr&wO?#*0#8};*f($Y)6G5APVyV6 zcX?Y%+(JX6%4PHrUTZ1sdXI092huh+Y2-eae z_r0+@?XSbs+;E~IBJSAX5ExXPqO{=H=881tTwkIR9LCx^nTe)FxzlHfOO4#snzbSp z*;^r#4>uFUY$=VdHTt{b)>JY{Q;kLR!JRu*d=3*OS(us86>I8RPp#5MuY`)-P{wMR z2xh9sgb$L^7Kh9VW1V@ClcK9<^P(NMXi0Z&)$)x{EmbO%3 z%%Dq5pHt7q_1)AUb*zcGKGHT|F}Y^bvYhhl;7;I<>{3~AJe=rNvHKgm|M+Ixzp`SN zGxkG6SNb0i1wS#$d6c)5+hr4sB6nuJYrlRSieLJX;hd~FjK~k2#}b+Eef`=XATDnj zM|Q|ZAqlk>enw$|^gEh66dR&2c77Tw0gL3WS>TS2mT+Bz78~wuEIe@zzWSL>c41U4 zIw|`5KyO>0ITneej`N z2tYdMM}x*1(v(@I!Mk?j6LW63@CZ%&oQVa=LJK6>XCV7hf(G!+s_L^Mr7?Gm*vO8# zMMTZvpd2dHfYKK;{J`+>bH1iW709Nc@py&lk0gTiwI-JeWO=p<^Ms9K{|Z^y#41Cu zxy72g6JTp;H_V$eI0BE5EHptja>qW3y*b^R(`Hbr^u2by^(iAGqYe-`CsSzP){flf z)@ELlEk4n;2Eljmz@a=~PmUBviG@%ZN5>L!GL6T3rRkRyGK4CEkmaTv=u$|5sjE9x zym0`LW<28rvdlUrJw1c^O{YU3%|LslD*F9>2@KLtV_vF zce!w*e)MZQZ^OBeAu$(!mGePm$G^(x}on`Cdz~wF4hC z6sT6)O4C}IY9ox3<{vzGaH1la_gCO@%jE^Rs?_-0H+Nik_**DiBXFKcFDj-&M&-uC zRK(UQjJ`>8t6O$!BT7ZNjxIEE?nv9VHqre9?2AYD^h`GBIon+=2NBRx7i(ogS7Lza%b zqH&dGm#b9y?I>N$2w3uCbGSE6w zbx-hLL{G6!V4-{x9oK5spTw2S_E||>5;YIP!tw*-)-(77t3nQkH>t7Vr4;WG)|JatIj4MGOVqT?yPuYrCo)&X#Rw?%zh8a;@FI zh49*b#b5Ea${MV{7f+q%C~5|oTO9^n8~Vg-npRg~p@z86<^vD=$Gr#~4Xk~Wb!Ke0 zW_S{}UDTlzcQLdst%iQ6?C+E75-!_u@bxyLF0g@%$ASnOr8||w?oh}0nEiuT`N=1p zdwOpXxR%F9&crvAgBi=~E5uD!i+rD9|2DUFGaH+%c=tvW%~{HE^{m-$MUzW}-)<|v z^|d(h@z_Twsoqk52W91FB&+fq>`;bUQ8i}pA1#Dv_3TlDmz4%ZLy$tET_W}H-bDnr z!XCs4*@8Q_T=-3pe0u+E?@&53?rK8X)TDa4doF)c`qbGVb}p6ht~fip0bM(4em@6~ zcAA<#t?9CYx$3@D7|^@y;fcvvNPbX8OwKxQa{Wpl?xN^=^I(k`BB~p!nNWHyz~BE2 zGgroF`YjvV%qnKShQ@j*bmo$tfgUWE+Xpsbg*lpD^7dgOc{h4wN`>QMB}C$(aF>>MQcI|oTArP?i~*74s+kqHJkq#q&A18!BA z-MMqr-liN6Y_b#lUE!>?n>m9rSuqK-x`_48ch{^u%f?KYN7L3QIgFH^{BvSOEdecR zYJ^I=4~C|@st^>Q#DJ0I?pv!^e*IJW9!SJ+*Y|m88j-zimO2PT>Qp7hscIa zVR@#DM}Wp0aHA7$(wGV3!AB z5o^E8E+z88+ex!+-Z45l>TLMk#;+Ljg#onMegug- z!;2^i(N=ddjiIT`l`5I~a;Uvi)wWfElb-FI5JTz#pWAO_ni+YY1DSAXAxKlvr+!`4 z4VSz!M~uHlZKtm}fDrxE*YhIeStuvo_T^>RoDl|z$uAkCe3)gckifnUlk-A78_C$M zrW`$4RI{T(A4&9NRNLBFY%>`2#ywl&{+-y{C-v>IIwR)!jviaSD6z1QNT>mz;V2_xB;N$u^Mn!C-={7L zh}Os~l8OUNuyd0g3CJoX|EV>_XSh>-&`+Nx$EShQ%`eNG>vS%bWlq3y_|wVn^PVzKN0AQEDg_Gn~zWj&HFD~GLPA)0VsBYByW&y2|Y&YzguQiv%h z1l%kwy^fuOn*~JtI(r5$?mfjJe{k?=9-X+DgU`$1Ny;nH9#gLia5k>JZ{aVCY+Gr3 zW6yLcXk$_cXbY-5ZhdSWkqJoTB>$OS7qZ;BDw$Z?8dA)9xHRHNO-bpsGW*YB&OL+i zk9bv75j{KQsxLNC3z`*{WJ`ssD=F~FrMuQXp1bm;eFdb2r1L;-fP+w2`#~2J6N8op zsPyaOsQqe)c)Ki(t(8q0P6Z??+9`^K#J;$OMJEtwRY{2cnONZ85qxd*9XW}zlI^^@ zkxqk@ppxOO6XnZY+7RuBHy$9Tjx8@om5N|Ziu$70f3ssZrcMH7OE`7fkFp&m8qJsG zJXo-oR3kr#dA0?TkR|D+MYxT``DAz)C)3@87GZN5v9@V+BCDiCTVbb@?&xH1?;Z$% z=hh1(=k^hx!&Z;5=sDAI`?ENqI?g?!nO$8nsAeKR(qi;MlVP zw3p#zQlR##>uqEcp-a)3;>dIYrPO0ZDzUFloz5pSZS`~QmNmpx#-{Vtpeudf`wxI>Dy~^f#87Dof4luh2KLc`tNcP2s=9iKn|-L z&(>SMtJuQ_H6j7GvzNG^7!J}5vvUC$a9bw=d9H~1peOQFWc)Dp#j(Ke?W5@|Q^4tT zmzlUAJUh%^pbio~pKmKYR*_xK{joe-XyG?eAKY#gahqW}Sg5GV+~(rNE#LVQfXqA7B2>JUNk9P|!`-$)~t<29JNnEVSo^6px;QlS^t%GfoWos;RMvbixcw z3qC7{!(%q2o6Waf)n(R6tY?o^~#n}utaoNINyO&BYA)U#dN($bZg znK>UI-s%E<`sUNHRl=<1V4x_-P~)%7i7LpCxi}A%-IOwi#UVnE>piy4T=po3;u{!C zq$C8yg-v~0AE)w0m?FHIq78)Pgp|WrTMe2Dli>CZW{Av>i+>vle_(l{?{@E{3vSGu zDBMIRHFI1CjdG-r-EJCZYfu%s;233HA=MNpf|V7=bnAtX=k+s(RN&19Q}g zVLub3L1Cvvj9KcFCV`{Jk800^Pz42rJ72_@r*+uUE9yEZH!zD`LaU_a36SD?(W7JR zyWKOGfAHjLa1iq=akOK9aGG;@}pz6!mNJcn*Mo$QR5tgyz z@x6-OqxH&Qz^?L~c`5Qg0iC~hAed z-=jgYIo6Pvis_dH+tzQyF2_@%yRk*dwAx195@-&~&X#A`id~9d%}!v8v&h;gCA@~! z%sWdvggc|cJOHFTCehJxqDnzZS)A9^V=Q1voJ`o7czRwn4rjCEv0zePoDo3`bHyR~ zdEhttjM$8ez1+j5yhkp^P)1vdbZI+MlklCdyL zl3SO+o=mC7CFe=RWDqzLT&gq>t8J{MdIlyr8WbV~VL5hsbv;O3&&tXQc{9D6Q@rtO z!%V&1jwYa<3hitq6JTwOLHIkN58p{Ujb9#wPvPJzSyOsCCK(fI@zAxkwVo!cMu(ZC z^=4aW7vjaSGN@f~U^4C5r5$&K&^>wBz~i>fEj4DAaVW9fl6kg|=oW-o{u2bIIU_w6 zwyYT3&TM)QU8twdXXM7lioVq`E>Q!FR&=R|$)!@GMvj&HWvQR-EMU{-V1|dM zXVm)-*{_$cy$HQC9ea}Z3_HtEntT7Kmn^!p(h#KI0%H7k6>dExU^OkMGtu1>|KtgE zloS_hk*-}YgHGMA|5`7Y=VMW!+}j^N*k9sX>g_a~4c6dzWBDPV&V0z`Ol8flJ)9vL zdQF9vR5H@2?tNX49gE6lE+E7JD3&Q9WuHV7j zP+!#onx7)ZleW)941qz z5uSSMcQE^u_Gy+3N`Z$#S`!}GWUZ~Imu0)NVxHwI zLl}wAOLwNp9>0S+1NWCVx4|Pbfi_3FCS)5V2kGyb@l3SP8|M%vd@FylM63Rv>LRBC z;5>d@7AFrJ6JPGVx;2UHYgX0Nfi#KUQBi?DTz*L9i7K#);81?~r!aF@2AqYoYJEc^ zCA+Btjye8k+2>y?{Qs<+`C|f{(adZbZrT&PfJhlIqcv(8S!(?pKe*j``P4SgYj=jmj84#Te zWeEachbNl_1U}w5%Q-rxsucEZ}$(e6>& z(`Wm|EpNLXJh1T?Bm8suZZEHxv;qvKZEyc>W`;c)hcZkcq6`eJGvO!Bo(roVB?EET zv+k|qX=Kjctg1i|htAio^d~?%R$j0qybF;UQ0`39$0>Y>B$`f;S zp@@A9p`ty5`-7SCi;y}q@e+=Xxx|knkl$sbPtIv+PuQz}g%MJw1;xd<+cz zw?T1?>tThIKmh)d5l)@`syt*Ta41>y$j|3-+WPw!uqz5{)zs)`xei=TKz;vt{ApwgIitrtdp;A+!#J0)6LCI=*HrCzzX8GU>qjS&}(tb%xr0u8-~7qCL~Tg*~_uzgO`o1 zwU7d@2@D2PeHo#bq6m@Qj2g3%#IA3?H^Zt%$HiR)iR1R!%}q3Sa!+@+eO-v|!Gi}K zzP+=qXiyx;%(2NUE70Y=dpt6tDB^e7jq{16I&mb0{4r0)i9U@R@uf6L*=-+&(ImJ`s<%d5&qq2AX91?Q;!#c<;kQ07?!h}Qe+ z0+tt{>%Fd|%&!NiJe_yh$bH6Ff?n;d6jhGQLlN?adsGqa@++$>Q-I6!+GJ)elh!xa z%5(0MEAyT^gxi`ST}x=g{P^N&I_2rH?A0-NBERx+44nF!SkJm^M5nFm+(=DXUO7sg zi193Q>JuDCTsa5K35Y*4&yYb8C{ z^e1r{tZZg)pXwig)6+K0G!LM`F`Ntxd;q$C3XG1478DkLVCzXMJ-IIHIZAH6*U_`R z8AdvODn`^uz$8QC`*$r>wl0s5REyvg(b~~;eOg=GbpuT$Dq@GeaKdY7(+>MVFks{b zQO~qmEhiEFbRM@Zxw*AdbH>5R=}kC?f;N63DQ}`B2yYdkfFzpx^`QKgR#rfz1DEVO zX@gtqzwRRTcCXWhfk9SOUjE)in=D`$!ODk}P96&OmgZt2=r8EIeXJz~G$aMS7G?=6 zcY+uI@*3PzR(RZw0CgkVkT}>1d z9m*OVJq6Kr)3%E43yH{ zZN0Krn!abLa)F@?Sy*$QDMx4D4l2|Wb>zsAp5jJE;_C^dM9|JDGmoY!k@f{_0r~4I zD>>bWddv4kMMdm09M({$9nE?l&q<(s*oO%CfrI6JQlg^zyYL-%z^1e`Ha4OtzP?6Y zja-qimT@e#U2d0|-dYA$-N~PG)ANIh>ZnYSsv) z%y?1tBBNuYQY(fWhe%h2pb6amKX#*1EIQN6$0C&UbzEz!>UW}dH-DTCSlXHh+z8C3HzO0cz_1# zFTb@_HwgxYE4(Ke`Uz$H1*OI!Tr*PcU!);jPdCFDr`ANFvX2*U)YsR0+Yg{juIn0U z2>`WNT51beS&n~JGCsbKHkXnpf5R%AC#$pbpNb+G`%Z==zoEW-B$5~=R$V;2_LlK2 zW^(~w23DdGdqw{`Ph6p2jway=8Yi#j41JxILAaXsV~LiwQ5XsDOB5%^D+Q^tD&6$N8@$2?`4Kpo!*% ztmcnzo#;p`bRWC_eR-mmTqw6Ikbr7>K;tN?%|Sz@>|2*Iyc*bY%HToeDhb>hQ)7j+ zgsWrTM#5aQt)HruDlz02xbqNtZ6}49fkE@(o?_LJy;KqETmu}7nUM{9W@1udo12?! z2n@c^(=SFMN!r~M8Q@%g$+-_PG-{~zs93+KFSR}_Mh(%fw99FPLxK8VbB9#B-1id&0y9cNB+psshwDkiZ*a35xOr?Jd&f;|b=!-g4aH|dr7i9$M^)h8$CG!wl;LxuJ+q_Qc| z4+QW3L~0~4d$bLo=2Wc}gF2$&4zpxb$75uELDzV~g3}UovNcCy3Ja=&Mp^g{X+03A z^7uey3j0ACl$jJCu8&PkAx&Jd5Ku)uRs<}ormZ}sV@HK0?2dt103>YeQY0iu-tQ@& z!%)Wx31|NBVX(ILAqQfiHptA?5JI}!EzzuM2;eiO9cyjd4uKGS+2-3hJ$*gsNV*M( zpCMTgjZ2Xr#CSov@|mH>iChYB>xA=`%E}q@2}>{c+#n?K(o8!x`=1NH8~dcwuL9d( zdUxb>Bbl}^1rifha+g|1%qp!Un?FT9yN!OFzU>bi@{Kg+ybgK&`jvKVAcS3fdi|n0 zuDbdR7gyHPr?;Y`4RY-kpOBPBo}X5sbmQ-Le>tc|T_f?>FOS!<_v`BE=au9eD?I&+ zx;Zt>-oC)7u;M*Fw+_!}1YI_adB(MYk?9#3Wr2eLo}pwZ1=m+cLQ|?f$e;>xyUS-e z-*WktfCirBbzy3JH#P>o_V=|nq@Wv~4=Q~iy#Yz^eu#6=^_7tvw6jS#pMdY;jX3pe z`q1w>9Rp|kUOK_RCMkSJOY0>EtXl<64w+u94JA6i z0{~0}YHV7jgNRC$|449u_Sb$uOQW&b4Ua{?)waRQom;*GhX-u!0|jj`+!K41iv;}z zlo=S9qzal2F&usgns_#@-;d;@%LcuI8sWKbK9LP*r7oRrgdiq& zOM1}-sqPKYq+@^A2MX)w9t<-@5e_07$^2F3gtl+kfk{ z&dRcxX%VZ1x{C@5nhp)=gWfABt(@&erDC z3q8{&r{o z)-(bb7HFC)BkckX&pAXAsgJ^6@2D1rV5mI_){;IuDM67QxeSnV z?jcx&O&zCcJqbM1xOLmS^pa*+tCM44R&nw7&cN2Cw(C-M;6X!*L#jiiO4f#kxrkGz z%N~xL0@%k9gagxn^bB5c5as&jyhY5*((4~fnnbb)+nbxObxhHV>()gfH*fC4Y)(=x zLc|nzL%bIxMc@AdVGIm+|5^it*M6tb=kBVSEnUDGL9D!NvzY2q+dwcdOOF-`)UlnE z)JXP^3E{eKNZ+DH_gQyMia7LFx`zSMQM78@6jQ+7)s&0Zu$L784L~q3B@|vk)}XUE4C_OjsZ8z{g8au=3o$H^%9x4hoQD@&$$; z4{85#Y~Ccj4>3?m2&3%C^C!#8vhs?4kDz4&Qc@Oj9xG?gp3PMZIK|A)?$Jqc1Mwcj zVf`LSBa}X{8qJd@A32wciHPU~1mJ)(H~kDX01&OYuSS{V>A}p#R;U<&0N>ClV)fJN z-OdRcm))U99u^Y6_648Cz<{x@e|nHzLH>^W)%VGwS*40Ldo0x#LmX-bF9iwMy5w8N z1dQYPbLoqGU#kd;!op=F=tpB*cTo@zl`@<|YW!W14(1&kxr+OJ0k-?;=AHlTRR`zr zzis||y8r)&7Z;wyYXTLbp46}CLOBxBAJ>J;c4;Vl8fgIWGCDiGfP=@pk#`1Q} z3u1ZR_HEvwiAilG>RqulZ(noyZX9@ph%y*Ob`2^f%@5oAIKs-6^;{*Ny|h-v;V%Y(b+k%0Sq z%gE?hA_4IL6wHs{YjJJM%O&5$&fPFK*Vl~kytmiE^lSXMJO)}(we+*QlIrs>3q|6Z z_SoWxMe4fFJ^R=%R_PN9JU_@DOfq}h_%%51fHw@HBjfTwUF6{5!&(sUn`76tf()n9?iNn=L`{v!9az0>?Pq>qYs z6C6xbLIhh{nA!StUMY`_Qz&!flHh0U){;$)jcSUD=0}e(K3EufFDOPr&Cbc8cPfU@ zoMtVm%-oCMnlUr(Kabh46;Y(;F|}e}qo3nnEx+3&5jLgv`yqU~db*btV3Ga-D0WF< zhywh|*wJ2td-ka+AqR3lel(Sl+04%`=nOtDP+}Z0|1k-m#vdOd5A{n(R<)zbFG(DZ z;I=_{cpuEopP$}Q`Gw0qmVSI7!^U>>*h1RA{g&2}D`aS@1W2@si_<{svF=Q^X;z_8 z#y;gxZh{~GDe%72z$j(n!Q*#zc$>;La#R6JPEO0OdU{q-Vs{T z&nurAw~-KX#;X8SrWrGS@_z{LQGC3U>TsFXX9aq6)EP3_Be)JxZ`t!M>OdbmdzpyB zAb#TU0YE$c9(QA_ok=zboo9#Yzgb&q-cBvuBebuaQ^}IsO~KKQ7v(n(D+Vs;=$t=z z?-}27^V@K(n;#$6KMl8vYm~e$Yqj9a>9;VaB&l-vAa?o<;{(}y?}tvw?(51uBET=> ztR!~f{p0(H$batrHQWJnmzhVe_1EIQ{L>oHV=M>ylhU;=`xURhV{;~i*Rw|!hgiX@5hTrM@Hrp6fib7_ooK<9gBYdKKspm z@=RA&WPjN!=*+1TMxL9-5;3w&-@e`J?7EnMwj+w79eie;Sk?bE)lXVq%(T+J;QR3tNFXQjhG3+0fWrgUS$i$o^rElS=&qj;S00x8Xb@N zc`p#?>q^;gIVy5tNP9D{CEuBTbR?ksGf;h`GLL%WfR#4uw;WP8jf^Sman#{ zp}gNQb{?v}vpzuo2#6AE`WTOoxDi*HeN3ln9Mp5%9c$ww9S;Pfy91n!GM+}dkp?wmaN#fV0< z`xpxsF(-!`G@QOxvOk6oXLDeeaI92G^nc17uqxA*gne*Yaa%nIH{X1zpmHR>g_vK} z?f$X1=lwOlIWb{ve{8viS^LR7k17)E5PuXVbpW(q!|JYN4s#vgT(;mhnZAFVrS5Ov zA@%DI;hDzm8cZ-%<3&-HpG!|YxYxvXixh%VNmQ__QEh1!w{2x(m#(axY%|H_2})!W zzc*k}X2Bf+DC6R5$CYJde2q(Ollm((wPQq+tSby6cvMwYL57>Ak4m@k=|!S9>47$` zgN1{BYvjr?jF7Ofx?+kZvr7f1H`b~A(`Bpmd0hX;M;XE)dbkKm;kR$!jE6xB!-=() z^sN4mfu)I$+JpaDdPv{m%BiK#IV!BrLbtXk3tmlGtoblxbJ3lVnhVS^QJ2rBCCz## z=oc7fjMD4b6)g>)O?@6)vnR};1uyqzWoF){&VJWpvil)eh4Wj_D=Slf_3B6o$r-%y zk_9uO5c2iPFy53iS6DyS=*xMJHy_^^>2v*3SGT`C^mtay)2C+OTSOq>aPVt$GC;Cg zUS8IyT041{2ubImbViQyZ)C50&m1osFIA;+pQ5mOM=itWIyPAsU+-1wQrX=4=`-=V z7w`pg?*&CFrpHpa`t`JNMMP+Rp`yDa?`#(96hc*$|n?1PoE|s_^^Z7Y08IYzK+zbw&KMoJ)}b7 z=2VIqp|-M8w?lE|b>NP#7C{1-blqOR;MH%qCtAzkNIsb73BAK7w{h+ zJvuWveuBJ<4{qL}3B>o*xKj3POJ3Z0 zs>E?+xiIJcnnrEqh+)fX$UCa`b9xa`oeeGy$CY0*twWYybPvx(md_O*DpWmwsa5va7Z3&>P^5-!Wl{>dp?AvD##$UAxcd4D*7a+aFb>}XzdQ?cxFVv-GlY5h%-7Y<* zOPwQ`V0{+8v!?7Cw0tN!I=xWnMhU4M-Xo)u0=MqHmEJrM9bF~v*V7R%;h78yG^_o{ zj&E#}P7ikDodzoP5Z$%AOR)BgdP}V$bA_lRoU)9Z$Nv6dU%%=e)Nt;3<-@rq#CFE` zP-l|&^ecV~-Aa5OX`%8a2tL|3ciQurGf(V{K?1g$DuZd<{)T$n*M=_ zvdY;GGl0b?#CSL7j>OB_gk)&gw64?gM~Jcx~Y_aK0xfh6R+ zkD2Qsdr*83-usF-H#ZONm7&U=+6#}qdsej--?G0@Vd-nwGL6nI{jsPJGt+g5Aochg zgG^oG)^vtgR8(T_^>%4=13RC?fE*7nuIX?&*8<}?0SJGxv|+Y`<78{q*6d0VtbT%3 zsvmp!+AZ4oQLXeHp5I^`>sWYj+LPFsaIamI0=PqrpbK@|7v( z@J&dPyFRtEOfFG9w4PD(}JOMa+%*8(SlO^Zg+vbBQFJTbPlgjHUs3!=j?&eer;@Qu`K?!unrxr zxq!|advhDoyh}~28;|1*Xct8RmZ49ey2e_B`+sA@XAA4e@Kr(%zl&lY#((!ivIU~ zb7mO*LuGPLodigR3xUFaTKYkjeOA(USsbDr82DtqiZ+rO0LWdViUBx|lgSTF5omhy zC~nY2M_nDt%)-*Nuzpyf)ZOm03q;#Pb&)~jS_xb_I>CU=WnN75d!>(3!IGJ&%>?6& z#c2?fyyyD&7)lwLs`Ce5_4P%MSbMyydKF$6$YK#NbrZ2RJA_;xO2~D<+qIaDd;tCn z966kaX!dC2KIq7lm^K_4NlV#p7}=IkK10qiM?5+UpHA^XDu+g?Ad5r~Zbt8O*08&* za`#S?WpQq1nRqJd>JZ)VKT_<|)%@ye)9ZHa(F8{Vqm-#on8cM;+UUxz06)LxN|1SG zJSmp(x8e#YjyRBnc~VyL*OQ* z56ToSz1t#Y>*RP%OtIQ;mG#{;u;CU~3W{ObEm047)ZJ&0zbk*QOGmS|z(&o$@oN+R zbb7H>cZMAx4x`;W0@fAutsbyCF}1=IsRp`+nTL7&Z;2XIxl}KS0Z?br8OVq#5=9vs z6y6&6fK#xiZM{txU#CSUo~_(kd@xKmRQV6>Uv*q7*z~AsmT>AlXC}QikQ(rMJqD2J zmmFuh;NH?OBs?1yD48zOwgqkBCD!S{baR zJl|RPL~p5GQ4QVpwYClk+AUB=8LX9zF;~=InH1?BZ^G|2cL<$NGkY7Lv^lN@P~=-q zUqlyP2gz7F349K)A|V%K7naLh`8xu#P1s3UhCITlt45oKG}P#Nn(vnW`+;a zB~~j;*h!}o`W1nT_LU#X4_c?uw;pcuBQifLKP@th%#?H$lK)q&QE3pY&DL6xMp5!0Z1k1#_|juoOWV4@bD&BAN1mp`v+`qQ(>gv|o;yWVwIv^|L38-vJwL$JDL#|(GR z=*7tvYHAL`NyCn_#CKc5DmJkCynU>L ziJbHgyZ*mFN#b@K;9Ag4Vz37g`IE0?HU!R*_>rDd;d`}*Y>kwRV`B0-`OaevZJ4R~ zPzjIjSFhi^>FyT5qaQDM>;a0YBp>~^R_q~ZCa&}Z7u-ak!dmYNs6XmNCn7-iP-&U{ z_fvbg5+Kj~LC-;$0eQ;z7qTu` zK11hXkfxwzqSLuzsK^|LL0YL``q5A%%A^$S-6rcioSd<-A+5008=$I&^p%)QYgN|O z&4g2D3nieXs~Z^|d#DoGI?)Bfp@d(Ld{!3Pzqbg!Zx3c}tyU_x24r5~RW;+vhs6yMySMp|b8voqx*A+N?DiIHb02PT zn*yLA!5s&;cYXAJ4<0~?h4@dO>3bk4bh~|n@xM&9F|{c&r$t-?l>F40ax!{qc<&}< zf;4oxG4DF^;Hwi#9!2IsbIyCk6Fp+MQccA?cGsH?#;FcWL<&T9v1uxC`1=VZ^~jE? zy=YO0*#cd*FUa82Xgs-KhKGYABM7&do(x~U7$8A5+53Ya23_zV$((N9^?5bxZSssp zyd){9(xI^XQgO!`p%}N3^+C)61!Ql4mgDqhsQghe^ue|GT ztoA{;$hbH*F)mWm3TkjUi{7bmmKaUVwRD{ZeiX4lsB zqXrj+&|RsDZyT5@xOX5p<0auj{cTm7`F^E2SZdL;g}?N^aB4ecTF1jW%qV~B!2DBx zbx8h*Ma1`;=jEk2Px*eL6x9kvkWdLOpj9f=%sUj9@7&iF4YGYRtk==Xjw{Du)9=!m zxU_GVVwfY50^|FW`k@RPs=1?AjLo{?kG-bKVKE zK1~m%L_ZsdrY|k>S~E!Z|Ks+H9!)*?t)-3l^kCS8n=Ca{DKY2yb8kUWQNq_(DGn3O z5_<_fuHuOEtJuThcK^|QKVD)ddMIV?W40Pw%N%=ud-5AnpaHjeh-p6O@UFX^PR!%m zS5DaPbuj$OkQr{^-f;PatGqdz{Vn(9p@{dfv8g8%{dJUfq}3=Tk|4b6Cdt8c*ImrK z{D+4KN4Xz`%Q~W@owL7i*$#3goQ&wWfOqZg>xi z3|jA3tiAKXhNZ6n))88N+IwZiwtWum7+_vDFodDSXWwCSKAzQ} zf1>heOJ=LQPT;O9aXULL&gfBm#mCC`l5e_{V4l7oBIo#)m*#c5B|J8PV8OCP`3C_#_^dgbuH z%N9T5SF?{H+*sv$-$T%+_j4Fu_`6+sW&6_RHE5_WQ*ff0_!|_u6>=L9`!Hd`q_Y-fi=|RXnS}6zk0@1-tlr z2c6f7)%SyYvMnqOgD%njFWSDtt?6a!nsYohR6L@fQV&WI5RfJv1Ox=6_bwnU^e){7 zC`fP8dnbez0--4gNUtG62t}lY5?TnIZ=#-i@An71^E^==4axjw_UxHid#|-qf6v6D zHz0N9_gnsNW^%Ciwu;Fo*wgA_&LXMY@!o&?Tq9mvz)eP`E>_wO+q;Ko43y>5Nxsi; zG%$T>m|-DWTvF>q_Q{#JxuYx12=-ecqa3Yw!%>$VGhX)=qIo>kc;`!O_ZsCwQ>!qL z1B>5I`q4J&a@CjCW?iBsv&u0%7qIf#2;IP<+ZzHUnvIW3USz#gjmCOc8Y`}b3m zjJK1lwJe19!$LLu7n_2NjLz=AmYX$Rx}jv{6n@0D@>hoC2lhghFqf37jf=;*fBwg4 z$ZTuAy2Ja`wE;xJGPCyDL zB@^r5f5}-5_unb>T1VKfX1U1)Ut_I(o=6&=-|e4|Ieg*Pu)B{P?2Za*ia(VnU{+O3 z$SJPxx$(U$6N;&v* zf5N}tKsLDabfoO*+aZhpYlHaDH~#xmEjWs8l$0$PAElbr|DRy* z;M4ZU2cAj;@4T^oACWPfpF*_tFq$s1gKjn05Ciw(R2Ystag6B zmpXpVSHKhGj+2@&IXrS>W$U`J(tCogiSma{PS)Yk8bQ_8$8=sK2mN~QIIwB6Lpa@M zp%}S1W%RnXWuujL%U7Jneaav<@9g$X`|ocD?CG|9`PEQZ;^h6dy)_>C`g$MVAG0>3 zxDN<-6$czX?@Mobq*d5ExR@CL4P|Ur=p-x~*hAx5P8F*cd-ar*08wCS#Z7n>HK7MJ zEESr%RVdj>EccEUwmhJNn#Sd)I-l4#t=l`yb*K#9w)yZc{PHL_{4zhGGn<=*@x~pc zSd<0sZNJn0QHV9v^Xm%RQvfiNLPk#pGO+Og(el}*{<_j6{m_UY)qyVSAI^~Q^E}zN z>2ZQh?c#%43Tk#JVwqv+LVAq*PUfk99=P8W6I~@dcE<~qV?o%+V?>46y|RfL0to!Z zwKir&5HadWf{j^5Nfs(F_~_1^9G8FuQe2q`07$O0`WJu*U=DA=qu3f>&w}Q|lTOyF zzt3wg+n8GIAgft?z(&qFA}~*{;0>8F2S(F8&A0ZWTwV!V>;K$Wj)546W_x?SVbu${ zM;L&dvM7S!$L&FDeXc5fjvx^_FA$qSn|NcH6;T}rd%23FFd+uN=cn`T9!L~dd2^0{ zLg|?m1RRnJ227-h+B;Iw=YN(xw=|;0$}Z-o@D;yA@Fh(X)s0nhTTb`-A6|aUB+zW@ zMI(oMz4n5e&WfI?X?bky@Jm-^C8c?y-f1ccJupOi1V1dBzCQr7JTG3|3Zh8d+&ZeN zrV;Q4&Pko$vU6kvs@aW|wB~tSqWn(Z}k zFEs%eM2du8v!-S&s@et--2plPE~QsPGre0#wp;@bbye~ zIys`B*1bM(Z4J0pd|xfVr_IF&Ve zXrmm<5V+?QA!=0z=)@fnembOUE(m;-)RaA?6>^BtuGidr^s>$$Bw1`GaTyfP9qed7 zeo@D~904xy@$4g>_yELG%jw~hxsIliogHn7qrvJ4q^A*lf|^^u48|5vT0J1DlB>o@ zrG9wend-4ff2wZiTaw{-a!pSD@mm3@U%trp_I>$zSX;XtzhF+G(HVYmf}#0RMG6hJ z(D-;5TNQhd6|-qXPG*=jl&hv;XID(kV`}K>2;g|W%XgP*3u1SIU{ND?uS(=9F!;(7 zr%yk2m~Nczbg{*OwV!v1M^rCXI~oDuYpgUaedomu3(7jT>^Fyzhrix+1t?(P zQ6~;n8oJ(ur}kVKGm!B0K+UO%gX9DPFhOQTcJ{6?JFF7lWw7XAlaihrWQxOKRHZD6 zAYV5IWvv4ot8M#Mw>=1nll`9@;6r1a4*JIB4R1td-v2FFG=yMP(;sTtFqoA~7QcOO zYkcJO=SynaA78J70Jflehqz*kqy5BT9fQ)-rx$$H?Cg@ml$ErNHSc%_8+8)JR7o-X zsX*d<36*c9D=%=1FxLTMHBdQP=}*wX_kxA%V>g(LKOVCWZgTP=}C+7{T zm|3ru{&k~l(=~}u&w1uZu86ecGh~r(i;A8Au=k17fDtnSlj{j~YMTL5lYl-e!72BF z0K`2Bs4R4@*6w=Y#>RvBMe5OSodPON+q*AVSlDol+x?g87r0IMJvJHpM{F_!q5Sfh zl!Fik8Orh+%9r%NxnZK0Jms|q`S2KePwA{58u4~iiDWt z_vmu)@=Dv;C73@844lXHtVpw2B=EYOH$sU}&pIMv8CrXW!NT0v`72yDE{Fz>{UA$_=7CX$9S z_1G%pgrDX>a00Z6&CTxezoOq{@Qm{Q842Ru{L z(N-#|-#Z>;vy8>&0idk3`E+*Vr5QfbFMq7^{MBU`aBYUwqRPPYXtXqU7P}`!hDAn> z0y-PqVOi-4z32>Lv0Yoz*~m-vlRg*@O&J+X^pxFTRH$&(RpttiLp>R_Y)a@-{}brGEvliC~85e|#rPI>~d5&U`*bm3VUYeUwzFwi!TI zTtCOj!Lb$H*|b%n43K#cL7W3y=5)qqli9H^7c+Z6_&p)SDPRRSdx8GTqXXokHb!fOLWtUD)yW zuap=vt~Y%UT$v;{OUE8$)$)nb`|aiKI3<)s@rlA&;8k#wfr8F4xLu{W0x`HtoXLW8 zws}2zkZrqdX9Sm`M<*YgEE@DE8Tl}ad*&JGoG3Hy@GzYZ$K019sOGo3idq`FOKUZm zEqflavlMf%iz!B)HY)(GV|9E2T$*$cr1ust0x<2$K+s8$^uVRd?OC6XJ-dtVYO7aN zPY^(;$i!t<#IW&2alzB%g4kG1F8vC9l20FlO#`_hIzyBYzLq zAj!RWr-oy^j*TD%z38KA>wc}4z@}25jqB3LTx`}d_rpcBL<0Zn(0L>d1lvMS_dVd= z{+sh`AbG*KY1$qvDN>qNfogL0h^mOene)U_;;rBQMKpvdA3?y4X3STOS+XZ$t#LI| zRAJ#eE1f9S1f5ZT_fX+XZn__u+WJ>GuStYR8q5st2nvS2js4-Ke0@RGs#>Y7!RNIT zY=UDFwtd*JLx{cL*oz1`k@*C>JaReF>ddF1HB9Ehy?o0M%Gg-QnqG}_W|eL^7zph1 zYI?u$Itiz!TIYeGseoW56-O9|mD0s5u4D9yR8ng>#3zf_u?^jjD0;iTl9II@ zyXxSK3s__HN>3aL!Ejks()pR$lb+@g$iz`CK<+FR*LgXnB5%~F1JqeFYMmW2Qmdnt zJG<@NP@zh+W$ZdUU;;mGF&YL2THODSxLeCnN6y6H= zM8}wzQJ!U3`!^RLkp_>-RO3!qyJt9-n4EmKWmY>WLtxuv(%~M6>uD`<)pU6^!<-RlaQ&@YX$S;wOKYCG$A(_=h1Sq#^Ajt zk&hny7Z;iNXmv}o@UJLUoGw$U;Dca(mOc|_blKAe|C8?Oi)=jJOX23Z0}De;S`xJ0xi$@HPL- zSaTL8>(3SiuoL`lkp`|Yf$3wV#zW?xM-Y8ybpx6!e7`Odl$C3RcW}=O#}-EECWFPE zrVsW(x!-4GeNG?X=`*oG7jDyY6btXzI_p)+;Rnb^Cg|)@i6t#bx8~4i&lp3{6KWsd ziT)S(cxf3sVvQS}63h&*o3^q&0`{EvR|k9G$mp1fZj-3U(`vr8t-ly$LT-3)YK+8F zJ60{{`lzmX3!3I7>FL+=xym-H2tI!gVZ@J|J<~H4Z^qZ zFDd@P6@J40pP^%m2KL6T_Y{NkLpu6AAj5Y;jhQl>ZBvG~98x<5F6wD;*>FA7?w2f` zN?#Z)_)|FoUf6Ny@tG_M*hR#N|4;3f-=p-2w-7i?Hc#&!njglGTkIfHzM%zB*U`EX z{4)kvHtePtVIj(V;`(#Kcf8etAz`=X!5XLCqgkejW^@jsAlUveBV|R=d1d6=XYTgD zS#$n}z%uiZl6D!KSbC^tFEC^|V(msk-P5*Ecg?m_hg%~aN*uPhKnD<`w;nm&tH8m# zW+(J~_lP&J&6pf?;amGoQ~QVj(OLp7=d)GVd*-K)|M}lBsW4DU9~sEsE1C(VS?3ho zIk{gL)%E#XkIP_j*O)04HER=(txICBna;6p!Um~!ZcXO7BP~yG;>poXE znv(E-kN$r?^=ZYe;SDDzPvtER{dm1u!JT%Q(1+Bcjjwrb94cKow$c5_+Up6CZPvl; z>I;bVlqUsVK$jmYa6gXcIMcgol3@P5pC-fcR){E@FX@1j( z1F5`sM_k4$RYmuWRN~Lmnr);wLyNIw6ghd=kL~>%3pJcfyz+{Qyj7Teyw8lwgUiK! zu?lO3g8g2pA$cD!w6w0iax7qn_EfK|v`5NcIXo)R)*KR;oy8}|jxAz#`ae7{2~rCF zo_l5yW$^?XHyK8|t`kfg6oPw9990=!xMsxH-1f((Yrg`Ua6!MM=SuHg*G5^nREMr< z@O@a=OuG2fZq*Urt2Ec95DN7o4e`~MFp%JJkDW!A`s9$o)?;Y4Ag8S<^jM@p`Tl`N zv#eiO)cPr7YC#PjrhsTogY?p_|DO9g^!S>A+?D6y|dc*eu>eC1$eHx}y&A_rA zz2kF-9{9f3T9+3mby#J2(bG#MZBg5Gzmj-z;fk^a*~|lW4vvwKD?Un2Nkt#xYYMo3 zm8YPSr*2b6k6sQQr=O@{S5PffadjP1F`;(ResHy|KeZsQQ6{`&fI`cBxso<#U&U@+ zH1x9U!H6PN7&$*DTj4cVe}^7Ywoj%)0NU0@qq&b#&M_?8!2xh{qe>edQkPR_guF@9P80tOnvne zmi&2K%9tYcrJ&xQW9?E_c`F2&@2%?-tl%R8Op1&Q8H zgmY$hL)Exq3kl@!VM>P&xzYy_Ws$_| z%V%C6to7KZl-S(&^DU2a#owx7Ar#2@yXJ>Mb=Sl3=CGwq5mRH|u zXZBf-M46r5(45Zse(ZY?%m#PqYRy_p7qwp6rNwK*)|*Po1H|@0xZOH7!*_}O3a!7) zlL3(%?JO*Y2qxuC*G=5VvCRsppWGprRa|s*-lWM{z;xAyKvGHO`qCGKGG599v68%6 zSI6gwkloHw%-onG5nBRA2n_HrBhOK;uNS`f-NpqjGq|y`9ye->s)x{OKTujxq^@@~ z8y0OZBK+6^TLL$I@mSWet_LhJP_1&PLkq(Ttm+<=kq}F6r>fhI8 z=|Jd6pKybH=utRH1S=x1aWZ$f%FT+oFw}p5&CI_H^cj~nWDq5__m&dFq6_!LPsk>j zdL#!L9E6{2emmnE)aoaCxKk}V0W!M&=6%Sj%OgRk8rC|q5*G0u-G`p0bZdh95TJTG z6{U~vs?ud2I=7gao3}WwrKH8@d_Hq-FZ7k;-$0^8Hdk}eZry56r)^5DBANzKp?6M&NW^5zOo z>PcaSe~Q0kW?$syAbh^&eXTM%B5@9pI;5abOifFi#1+A!1$GF#a&AXkgv2q?5`!GI2z{cZiMBU-t zJ*7nUZ#r48)5Ta6foSwZMzspClt1QHr>c#%ZyuKghue1su zuliKm`?Hap!lz1h(K|{2vpo#&0T&KXE-ZoyT%w$hRZB&CtE|{Df|P*wWrqKq*{hZ&fy6zlDeJ<&7HdOE#NQ ztT+QA!)N)nN+y4k;q>0#3ki<_S<MmO!Ggh0Rm@17azXHc0t2VHukY-$V<;PTMsk+&AdE zA969xw*M}925QmG`BV$IuRoptF~3AuG`)J^(e&|vSocJQs_Z!+1I&%3J;wg@@m#>YB%xRA zaeObSyB%tD505)Lci&)o6W?3_-iReILbSs~7slmbB#c{Ja(po;K}&PsL3Z_r&;sNdb4` za7)4aTl*I%Uxm2nvy?LVbY&Ydr|MJz0v|aYIcdu7hyk5tMb}E#KOAAr`(f1Frnh#Q z?M_pre&xLT%Rs`UInJVNXo#|$M1->>`5FYBE-VCY?Q<+Kmbg?c6?o|U@0 zL6$kd7S+k67#0-)h2v+x6a414_jjflPfB}unvc+GB8o}IdkX2^yZcp`HP1-i^@1sjgF zINo27vPY%pq--pQBDbnaA!SVPfRv6F!IS8zHtTA3UM9tQACU>8IyIOFYcBfw?g>0BY%C(ENs*^_>KIdgliRjiyjgT%q#eEe+95XH84g*4q)Xxit}KaFObxi5A`dp71=0Bx z4~yolG!#!mKJ#4KnZ~z_1+|H)R0U%lS19(D&HK8s?^mrZTCy&Cz`yy>pAzkjUx0D5Als=sR$=sL-~}cTc;r%5%hZL zUOk>(r|ts#on0wS&l2TLd?Ir0&?XroY`b9Hy`tsOGk*&@kLC1kHa0e~D2j-Pa1(dg zk|s?BxbCV{FZ65oP=h)k%2)UI4~iAg47ee9X#aXp?Yi#15?E3sK*`ZyncqCY}7Mhc7ZgsRy14_kzXS zdrRq7f6PzR2!>Fa9%v|h>S|riBb#ATu}EDCQx55Ra9QH$hwMb9dxLTW)*M}E7EqGU znW*b~l$G@iE4A>4;_&KzHL#sD2+=q(?+bIpE#G|dOP2(9V=5=WnL@cQ48^&#h2c?- zU8e~^^e$AjoMm~a7|#sF)HQ!06icb0vfDzHjH?YCQ#J^H1qjauB)MMBwQYGf6O@Lr zeMr@3f7(f1%o=zR(}cU&PbcYasFSAMm8!0GFi#4B6qtr44Wav zUh7l&7<`MYiKv%GbwS?^O1hjM@yCX>kYr6wEsxJxmpo<$|A6W@BLc|wd1!&X&`M$6FBZdSQ&v$R!$%sd4PzeM`6-C!V`~5-tPUi zHg!nUg_&PzBkh%3CY9PzQpAt_j2^FEzj<9_h0#^nw+jP__|l6v(QIFY5tSbS<~Zh1PALr6+(o4Owro3A|DXs}I=$ohFCAR~Ku z@D^;E;$JZs1$@))D^`_b)y$y7;6SsJRMLyN%i$p>lcY2P>(NkN_k%n@$jT!B&0|I6 zaRCNyeN2;|SFp67lsQ7n(`?{B;KVanE-|0ka!--Mubp-P<6!DbOz-OX&BAt7WeUGu|@U}(gTD zKX;bvARvbNxVdN#i9kf1xUU6y^uLsDN7D${W}O6_x1DMQ46&7q zK@ka)oCA<$?~u9)zeT)*u2FE)uSHJwD8QWWWP*5wO!e-_!hKB-87)w+ zFu^FvX9pCvFavA>!>@KX&&UBz9Z z8J@;55qC!KXD7ctse~>|(M!7N`}ov{eRvn!zD1NqhnU|J@oe#0onq%HO-f-Cgt-W^ z{xs(K@hba<%cUkzLpeSD2HPQO7B~btD1T&fL#NtdRt65a4XxOCq=tAcH9ygpQZcC4 zr7&rRvEo%0+UZ&N@I}|)C6DZ2J_fbM7gUeO7yx3GeKP-9+<20C{ZxpOyY=@)k! zf3G!l#)Ou}e^WBS;oI&#u&{sI%S*sN{%$V~fs|{>##1hVKeZ|UCxx`GD>~l)TiM!e zYms!S!T_&OMRtX!-Mze%8Ep=+iTDbLAJWgxLjPrUEiZ)umy_Bbb)A0 z#!m{E5h&kfVyko^Q&*p1@x8LNs#eyxt_9tur1rr&WjB;~$>5p@nfL!>p(55M;!2LY z&ZBaC%I?qx`y$ih`qv*U>(?qq$`IdtF1bg}h%N2&Oo>mnPkbExF6F<}EwahPRHH1x z6`=Nlq$jtXDb(ef8@dqwt)1a?Ak7H?VPSSGtGV{b)$d#vPHkgTiu+jm7i{{_#p zG@n|>T`tTnyDnk~w@yujO_t2eoP#9aCS#2Hh6Tz~8m zdJy&BAsf9=Sbfh}%>SNN3-@?da5$QiuPWOR@j)*<@0O3xxcDT~%kKZ=ozEnuAMQfN zzRP7e&Bbdi-8Y1St9=Q%Jv~L?LkBE(T$eG%F*}39L%7C#xs_1?CZ#67S`8QVW9-3=BDMcytk<>AdT_w99@!9abIZD_>~^7i z&p%!Q)Co=VwcRzluyW3DI!K6drx z1S#|FcPnXkc-Z3tVs7K3HFoiah<92J4sRjOZ*<7m&H&)*cPpZs!*2{)R2LbH*uo(U zh2K89B=@ClUL3voKNG6iYaN&JMXp3AT$tsHLYD=L_+PlYzgEzrCUqb&*L%Iw^A4Ml z&+ea8qT~`-N>$c4a9x>SnTL{{o+ID58a@8S8bU@k8p7&&4Y?n3X@1RW+k=w~a{E_D zX5zgBIJJt;k9h99C;&rtdxRRRuZk;apvoYvgY zPw0V>wLi$zVS9%_xA-g>+r@uBEIu`}G`-8ugPC9J%9{XGrCi+|nuDHjvdx;LxJC7Y z&(|m7e2wjE88jcaxv&UC#`SeaNrT~d**(*e^%IRQywUcchDSo~a71hL)3maUN2EsE zKPNikCku;~IwRkn2}WGeb(2qgxF()Qm3p<*;OT3c;1D0A1o)7d_}@vP!dAlR!4pWE z!bm!)lG?sj6tk#0YyW3i5sN#2f|Pt1S3{)jN(Oy*SC39yM`ec7CGg9_EWiDL>cz-b z8R&GS!Twnv9F|x9${T-iFsj$6!wnqcTERk8Ua8IJ;E__}N)fpGmgMC)p6z=4+ETQ? z*xj0FT)8Sjw~s@!B>sI(hw>&>k?9)k%Esp1iS#NkYT*53o}`L2pk?)Ak{cD+s?>^X z4m-Apa33UnT5GG!(P+I+UhLI8_O)jrg&5MP-~@ipc)Hip(zSg0UUl@tYvhobwPi2$ zs{$0xS&0{~!1=9U;4&eBB~fwIZGPK1?mj4ZW5VutgZ6gOyNYuePUi_vw)g%P+<@CD zY%!=INZ976fv%bm_?wLEk-@G_Ubn`Q`pTCIav+L%Alu-@R_glvqp!!BI;3w)XC)!l zOZ{d#+Kf6pf8y8?Q>n*^b{Gv_+|_&bG6>!=(IjMGFLX5PhPB`YzjhZ68PYxpY(}Nz ziiZc8L08j^uP}TALAfGjAbm6;coiKh*d^+A^ik%_8(_Jh1L}*vX933y`aSw)8A5&Y z4kIi~w#CevXBZI|6qA&s635zDviGfnTkv|&$Kv`+NstYLfFFx`$N#vlg>d;U_o;zX zQzzv7`_eI|v1*)5q|Im_MW$}LP(I(f!%dxB~ASb*qt^S+aO=^ zpL3#4x?+ipY+-`BHzr{PG;-*`wDYIplQ zC$^!%^EBS<8Jf-P>DWMZpial}ZT8REN5BwT>3}+C*mI{hj*jB)*+*Ds6NwkWr zesgg2`1yk?kTm4Hr~d2=UP+3U@N|iU4;IeX_zeV_1a68P z48ZliI`G=B=AMq6zs^d9h8kBZ3Ssx_bjv2P)=e;+4@G70{yPzpht`nyn|u@uV;d`- zkckh$xXDU5ck{C>&5^5+UfEOB?Um~<|IG!^i!0DMFgaOH8V_ettQ?9-z+th-Ait9Y zB4Kth4plE}kLCA`?_Wa6jaYM!Iua$dpv0o^KaZQ@<1*)#AA+ZNDH;k8#-BfQuDd*m zZFJB%B*Jb2I$5Um{n63PMZ2%{XGZH~Ig@CBGRrV6V^0qRWixkLx>51B;xK8thlmon zSEWu(-<;po@OQ90#`mfHu&TzTs+sD}eRWYBhU=M@nWLk)co%5rTC^bt(gB+%mmp|S z#aMxZkXhu~i4EakkH=%S{+QF4DLHVaqSk3z=SW2GI4coq3_!(1&Ig~&-kjTYZ6MZt zyoZ?H%mh|`;4=opVH&D47`zoW2_K6tH0>;~O*BZM=99IO5lM0s4Q(Tiq{s54;QWPwyB8jhgbVZftb$U7sgD=V4)*be~<06M$OCi$6(h7 z8_z0pt{%?uu-bpQLcDp3^qy2s5w;4U3HfUowaB3D^6Vw1slkZo9F(402k9%I%wBkx zy|_#?Fr$KnmGOXml>AD6Bxx0%kicKiUiz{>6xBqSNGG{V*om8f`;+w;AOMR-t)jaeAj992!r8D1QrC_UNS!fN{_ zGgCCor;|*D0l?#Z@5F)E=mxefhVr{5*mFy@@t>vta6%oYMnxfShB4 z9VwyZ=@Z4y1N}H`Zf-B?!V8kiPZRxp93qSrUAt-5k=A~&QLRWLUZM8hPa%pvDUY)B z@~P%CgmP>zYc*d~=DmZac0uv&-CC+s$!+~a=B^$bODRe-hgHq(c>8%H$_0cXXi7exIb15deW_-TsB>^~YQ5aRXnjwzwo)?i@OE(UIlVnV zIvH>mO+Q#qHiY5j6a-_Lp{6ZzHoMD)-|Gpq z2v8@9MxjU}S6y+qTQJo_cbb6(r#VbXtpDyIflqnea?8n+4zYwcE+AC~6-BW2dYWef_f9AjBVBz&~k@h)IT{EJ79sh8A0CzTVBxTge@01~p2?tCb@f z&y!_&1qjYs%5`=u=k#!U*WaAZD|V`%b6T6Kmklw$;k+h7IK&IMAE+s*DQg%Tzb>cq zZ1UX|$^BBjK6>=PE{D1|nZ=pWnXo3M&Xj!x?zt_G6*!3GJ2a`>@mASir)9xU7k)`x<8+@bz-Oix+Y6E$?% zvXtG>Yafn#_tYCG(gl2bv0K~D>a%-f>Wu%Mo+PBC7$X{ptPws-!IbFENj^<*XKBvZ zsb)QXP`!6Rm2`RRjHT1P6Mr=HZbE7jj2)#h6D?i2$TNZRkkoSIAaLTdy+W2dmtL$)9(vt#0B!_Jbs^Kt=i)J-$uZq;&s zDok^F3S4B=(IV-pYm@aRH%p*4pxoie5-;)IgM0dGqF%$GCZ-3rFPHO(hF&V8 z7;djyELS>~KgHuAytDC*m;5sMFqK|}_EvL1iiA5dBWQ~kq%NU3=oraxXMUdun>Gfq zLd)3=&K%n($pJ{awVW=Na$t564;Id0J^Iv-D+8h&Omzj-9CAL9ol<(5nm!~QI+6Rx z9=PSAB#Xd%cFCZP*V4yIqagOVk6b$XV*(j~aC6@pz0a!}6Vb}Cdb$;Uei^*#50Os9 zbtkNXvxLca_o#CEoe?3tEvCOoNyD4PG2bw})y$HX*$X@h+K6Bgc+gjMWd-YrX zT{*#`UO%3^x0g6fV`_UKU^R@O@xey4+gzp)_KV)yb|cJ+IhUM%a`)I9{7i07!SHo( zv}<}fh4v)(nqCxGVT>Y5LZ*U16efPcKF~Bn^7d(MzqoxCL*UVEMLDKL5S1z8Ve>b3 zimr2+GQJ&>&3{0JN*l-D2lXsZYdl9fC~c&uZ~U;w5vQqwRMnJ+w(?uLfWuIR-O|8) zJKSB@fNTX~U#zU*Mi5Jf0gL5WLi^jO=REhK`+7=yo5`}8f5QxEyE3w`M@#)e$yWdn zQ%^;HaJXNh96GEgG%E1ZacBDbH=>$V+~Lk6jV0hND$XoaXnW`g3ko)oQrS1fAe>^D zsc2N^=NC9Y+2l|P`sk*tM!(p7Ws@$tgIwahFRLJz`_X*pKUG~Hc>wIQnip?{% z*&P7|9COZYTPIzh+}_^WY42pb5mZZBwh<$6p(#x|$`hj}wz39gx+;4!5+d}$xZ$P- zQIGW;igbhIt1~=7j;n?blx z)b)ECS~atP ztrH9LmO3$3NnzEscOVm{iVy7mmnRFbjnC~#5KN*9scd^s(@~@N@q^{m?*o;aD$j3) zJS;OY%5hprQ~`a`eUWVa={ARs@5ZMZRYFJ})8 zN-qeW^yyjgC7oEV`nX#cDd6)nfmm9z{f`t0v_KI!XR`|Hb$REQvO7!7k&~1J}4mL z&dMGGjzT>HEz+)zN$V0fXwi?S0}07|!z1&cDx$?W-cTT@oSVTnxYyb}A0oN$(ioU7 zr6-0s%}&Y)QVOMD01xr@i#2W-+7Ni+TC%%_%>^St8rqH)Ldt7dnQ#Q#aUoag!+TsT z24~JuxYaLC|MMta)Eo6ZczeDAQ+hG ztA?iZD-)3Ij>b3#0d=SsGCYkNNLJOfl2xgJ{i8yIYHC|hLyWDd^ZoTgNZUc*{Mdbi zs;644r+H>KPjs#OUY!XQu-Z~f;oE1kV(2Mbe#oN8Z`}(@(3V21R^vp@<0xt${u{3F z{R$3EdQ-k?bJKw;_?B(?O;4%Qb2#kcWvs}qG}ia{iDE1Wh}>0^DqUm<(neFXXg}oP z8NWpCG0P$=_#LO=gw_Y8=J$`nedp$H5?V*1dLY%sHh6x4y`xKT?|}?HKl;N#OW)b# zPS5QkPEb`An98|y?^h@MzE6t@?lyh#U?U>!^rMG1J5tJ|t*eBpyp$I^zc~F!F9KI$kbKPkIdTx{pN_5LQ@veQY>;a17Vj~#|bE1G>NB4%-b zs>GJ@;?dd!g1h|mpcI7U!!-snP?)OPD%PiahHarHnmI{9hb@djL*4WCKi1};>k^`* zf>HU_2LshR`-|6E6xT2a4Rsgw2;#x`Tj$X#9e2Q9kpr5PQ+FIEYjnJ)_A?Dr&k#tZ z2Ybo4_tsR}oQ`*N0svO_U@Bu6EB;aH=&yL^Zz#sf)LSk&$ncKG^ zbk}n?J$i9a?&G^I|)bg&n|E< z&u3+`pRdY?j5W#y2gu8H7RfGh&xgEYGqP=a;JGwvuqNhp=W&_zw7-O0XQVYQ!%yKR z$mD-sZGeIrDF6y_f~fD#$Avx7aMjP?H3u=rZaQav0{2_^lon2(PsZBf{-@~ z)Fz5gNLbTEH_OtpJhay|*4tRr&u_Aqb6@zeKs}J0kN}O37f2G}7{N%b#Kmd#G)5tV ze_e}#dAy{#cI|e4;F)yE3_fFsmfebsUGpW{auAfU7}O^&PJVI z7%V?OeSQbU3?N=S-Va5=0DaRd~v0ZC~*TQ%~sp#nP@GYlOCNE~6 zVO={_SQd(&I-lJ?>w8Qf3fPbNgR^XKsL&`u$QVlO3@W*%XHq`f#^ZWu9}yS&pLmM8 zWryTZk-TY8t}e{DyfMw#LDuK}@MDk!snaiNj7*Nr9ni0=VK#|)Kt%acD(=0yxgSABiCCHez zbK`#F(b3TkP*8(x5v7(_s}D=%!mYWF#W%kkAN+`e!JltxHXW|_klWwTT^32=GAW)+ zGfoeh8m9q~SH5X%`qb2mxd1>uGdr!{H}qVakOrEtBVu^}va;*rd>^`@CtteS#tMGB znwKM^KyE1@?`1r28alzi+t@LpiV!hd>24i_EB)cObceGJ1hx*9U zZ-gG>&CbH2VsmAQ6Da2$Q3M7C9!&SBm8zubDm{6J_C%YpC<6I6wc_K)3PQRr>RHeE zitQ|}pFJl~w38Nkm2s#6-&Dryjm=r$qU`Y}hWRS1sEqU`ZwvVE<%7DLlq{^QOJJ;) z`^B6}cBrd_>;Dt8BKxFxos#ChqT3B*hT2j&)Ckc7w45zFy;#Z*4-SeHWzu$6$MuRg z$6y!|Bp-Nu7+*J4ZF4iZFCkp>+~uXx1Wq({=JmQ~pDE9tJy)caw2Sf$)#Zu<;{IAk zBBG*7u^#`-Wnr3hy!xrRQrNk<3tC+{agLq4Sa6)c4Z~&MFZ%9s2cg)-|0k}OCSY!! zy+t5s_(J591w+i2j)|;Gos2f|zEToRwmOzQx{Bp8J$1evbS^A{Rw1!yo3I&!>Sp)%{2gv08H8~0_c=>A1SLv8AgX~o28D9$ zzJFo#*xQKF#GgNZUNLreO~thy;fPU{d;B&@EC>SeeLo-_6p0Av?59K%SFy0P$w{}) z1H{*_E^s@n=A{LmVaA|UbwfiWC`mM@sWOqT8F>>i8Ik(>gQYhE#{FM8zw!*~nW>Us$4{?p5)b@G-m=E#q3p*J z>M}AivVs39QNbj(qh((I>A5kJP3Z|(v)r5Y2GxHl4kO{T%Eo5ZB|rAoXeW-l<_IZ!~tm+%rNAwSOSyw>WzM+M_AW+E=#7^|MjQd}!o|f$Jj5 z={;vYF#-L*22jDm?puX&xV=%0((t563uNJg4`he~@aD@e6TX6F%pyk zeduUd1d4x8RQrKaPbnO!&@Bz6mcW3W^@dDaK=vm&NM#9|N8@L z&|7|Yed%Gt!FI?#D5fAkqp`1b`*y_EZY(A4(k{iL3J*LJZ>vIpCFoI*mNqB%!rdplgaK{vh*yv%bH^xDnA%%JKA2duaJ zPMSKX4*MB{Q3SsazWOSL1BELzCs0WB&copwNPZQFs;CVT?4#KK`n;`N_xn1rMX7p>TitDZ@47)DfqO0QK{lH0JM zfZdxE;OA2-68HSSkL_Hr(rG#hAhxjr*cs(J;v6=_?C7u0oxDGu8u;Pye;jrIZz27U zHX$MTuiQNe$)o>0>DToA??jx)(f`{-Je2wcdneg4^lXIeQN%*4q)lQnda(M)oc`Qm z|JX}8-;Bb?a!E2CBu&{izln>tNyzC(iq0+0$3^ut7!hv{r#=bX*bj8~1RB-NG~^=v zVo#^d@V6sB2#615mnQ7-%$T^iyeZYe?1*P+HigM5D`r8c40aukwZbL&@XtJJaM5qp z^!dQmp6FaWk@_l5o|)q39FrI4%gH90Fkf$BAEV@JNUxm>eHjcTrnkH1*5fy32njvxW?1-xL?Eex}A$q;q8Q(n*(in}Ulc zk6n@Rl(C#f7S9#k4v_TehqAZ<;A!R1CgJ|#4n=1mcs`-t7&RyzNrcU@?#ruzp(($)al5!r+a$or6m(FUrPz?{yfD(5To)T73UR%Z?^r7K_tP= z-P+ABz8#E|+tyRB=ApXQuP9-Z{=?Ca!;7YOh~ua_(H~Eg3y?6i@V4#A#xyQP@}8MxO_QfzYp(rFu;Q*( zz=3=bKk4zF-Tjjh6jlp=GZUBFF5L;J;ZB5=C2exmbXM`*2S3BzY$ry}lObJ&{45&$ z`O8GnjEg*pn4|^|3X%7)$`O;BniRhTfJ9xW5ZrrO=_d_1)BnUCPF2v3q)o2w$SQvH z>(cWlsqQbr(f%#{&w7ZX`Pme@fJkx$pD&f>H?%#>g`01ITK;bD!Sho)xh%cqkdp7fRaJgS>JWuMIp%TV@Hrp(_49Q)Wa@v+E# zk0R6f3^CTUDa1X#n+zftK#C)IB6tEDQ>P2gWjKcfLSENt@m5tkN-p+UQF=(4E|+3B zN@#0IS?(I&gGrBmggmsUnx#_yg)HAq2Lus-L^2PG+!Fsy)mQ&$3@PH>D#-FlxkE*i zlY7G_3s;je&xSU+Vjyd_=EW=G!3bi(Qt)}=%YJjHzuSYtYX0)CIgt4CvP2f|ftmkx zy#4R0vRf?!j)bQ_SMfDrw zam%{u_XliJ+*P=vS&>QTUzsG*eee9Z(?SyeQAjp+f(?A9Uq3rQ5>For*9z*T1pI5fOYB};z6~2D=20Lv`@{4PoO~#G7t)&fSH|*(` ziw7D>-nV1ps2vjfw?VshurQXg)CJ9ZRfGu?cQQ!@FmF2TBSx*?e{Z)k)=uZTQ^+O5eb?$ zo?0xz+oG}}4lc&)Xx1!-eUgi%u%u<2SU_6}c4+rK`+)o0(=%+*CzU^p*TQTUy7H7}2k$aHkPPU8%5Mn}ewKq{jNYpPUi3g9Y3Ftbp$+k3kL)F603%XdFGu-|W z5^7ZCnFq){aJRFUxEmSi7~m$xe%RHJwZRFdMx>D64(M+F?wn*R7SYeubI{yx(-m=r z`I{;I%ix70txAs{B2#KF07MBb>+koInE&PKn*K!c*$^rW?CI1;iU})*BlagJ_y`fOm|BUHkMG$58^FN zJDjy72p-tv<-@t8*-bF7Z{$r&`CgwXwRM8{ehEGBXl-oz$*lGVktrUg<5o(}6#vDfIY7DqRiMzcm7Th_A^ zzNhiu@CW>z2f{Av)iJsE^dF6IQNV?FC}n3#T)C?=zY$Uyz}qJg7LNY6t zpdg}~7LbbyUMVr$_5Ogo-N)dap1^CI4dA2XO^z=FD|}@z2X>sNbXer30wm__whR<-Qhax2y*%`rp0erl>$d>AwgEGfn25CXXqyi3 ztJ;g|iOH1>p|tCaiuITk5yRokZn8mc^3!EGIMHxD*9-LsZsr1QU2F&KWykhbkDZSV zb~!_DT?Wej#m(NI7G6P4Wa_QT+hc~aU=cVbWZxPH53=?jyhbg-25Fq0FE!_UH!(kp z*Fn~tC8vMHa%p+6tO(@e}wM zebj44N|I^v%Q-m$%{wDY5Xv)mj#AxJxS6wL$yjqwDVLsB)+!4p{rmAdb0&s)u@S9z zk+9`3mWTKMcC^S-R=kIJmbrOFA~@m2WQt$!T9i`ijR#IRwY|U*b3WHzzwJP`MAjeD zV}57uvAKVLi>$Is5Ul9(%1h{quIsUTQ}hV_(Nx$8Ef-UH5EUQF5gQwuLpa!(A5MSW z$GzX3@(ppb; z^2{q`@pLRlG1go;sj@9plj?h=4TCd zt)n}nKjm99XITcl|JJ{Ipm#KOqz^TWh306hU{mTIEIFGK`Q*uW=5MZyH-H}V zyKm_!LRh)Dm?1O0y9z&gzQy+o-(P#p1W!#poCqHwE6R&V5w*pv3cm~vhJd8X{>41@ zJcLSn$-WgqAX&sOpTFT<6DW`)QMH!){%wBpEuVVr813OqlK{f|b;X_}F(_c*_dv~- z`X=SEmkbOs#?#_l5YYAAohE7Gued;e9sN8wpvXLzBYxaJ+$YMgfF-E zmE}5P#>?4^$JEJOemH=1tFFk2fkSJx>ijXeiR=C6m47Z;+|Um34zUl3bFql|#!}%C zAQpAHhP59BtD(1&DPgu7P)MYPo#%0hw4E4~TC_$uhvUlXfv(ebZW7e*YuZnpra6u* zmg&7Bd`b2~&y~&bjZ&UQJAV^`8fLoqoWc~mJv~sDnVDGv|JpO09je_>7er^uqjXbSm#=MUh%9yVC z1Pp#4@A@XD|CDUFh?f?ae#U?=w+Z;r5ce&$8fL4F-340D;afd#g(~I*Se08)c}Y#< z`;SBC_)ORz@rox1d%#v@4vNMnTqQ41ogyhvKCy5_!q{Zf=?io1(#+y!w)6A3lB~bz z-%Jq8VDqV02*un~j?wEeN&o)+afI&|EuXt%lpZ=(~nrzkVgPhvruH+fX(3 z_Zmy03+~^nnYvGEFX6RRtRcOt3xLCVx|VU)K~jn_!n>W!#B*^NBz(N;=7tp2jIhaC zs zDZdcN8oU_b{lmgubANwi{@@!|J8Zk1CO9u?f(fL*xk9<}7|*fAZYaLGV`kU-;?>@Q zv5iu>NM#PQ*qSo9DqGw)&EK>uJ^4sBHB$~XBkL}m$cZFs=_X_no;;wkd*8wexQ7MH zCo@d)#Gb!BCZE8fX7W`hLF{pWcL2(|SWMW(=ig7D^Sb8UlO2}io=AcPL?@_htAkr5 zDg8r+#?sbU@^&~f%0OvMe0ceb4scv(P8p|u?03Z zUOOR?xZ8CSdsF=U6a>5a6X(V_^sUwfeU_tmOiZJp1wMROJ3r*-k+1$7Y3<5uhm*j@ z>LIRzCt`1pY1|(h2@2A_*XIQM6^_MAznMp@6V}5QpWu3S+LK-}2~@|YQ7t)zd9tVq zvu-(CaE@MEiUj`ph2P7L4GrVrM#pG637G3kPKSvW5Yr>xv2qW2sI1d;)n6o;+FzhQyPRYy zVAFgb8B>+39M&^q;Zs!}!V^t$4zowMU{W`@>(*C!ADRc}F4G@N--c@MEHILdU7i3_baG!XInmI4(_+Hkj zhy_m^lZHy9TO>G@+q3dMwAZd9nO^VI`bXNO% zNXDkdD526a1?fWvlYe;LrV>)cZngz$ z(brxTVs$p0JYA5S;sTMXf5LhcJqQ8KSbjx#OHUZN~<2Y1(q{kPBOoE2nf{ zf4-%%W9%>757V`G3^&~RLwAf(uzj#b@>d{ z@U2{<`zTy+`cjksY3Yds{gt?B6I<*8W4#r5rg_;nieZKs!(Z_@&6R-NnZ7E^Ep7&B zU)Fx))t*~%*m!9}D{P%9qP-?$zO_6zUJ@2zY>VCLzUKw%32mLQl7Q;>J4eYdn61ZC zWjjwMQUEpJOX1+IF?{yvf$ZriqbxyU<UU2A3o~zq#2NaCxrD3UMzva@~>JD0zwGH0wux6>sYQSc?uk&%Rodqei5wzcj;+H+LqFt|-cJET~v_ zG9e)!W@ndNW1Ds5oB43LPfW6cVwc%j>6(rG+?~XSG2OIG>?PxNcqAz*kVEb-`xoE8 z(6fn2FBrg#Y75se!5!;sid5v-=&bMm$b>)r*+vJbswd|5!`};B4|mnPWCvfcecX5H zGBpsTkuW?xdb6XbYux7G+AeH*5k0XX>ptm+yUoVMjUHhL5Ypo)UiznRQE0O*RTDPt zobIX$0oz1kwPZ=j1;(ItRZ>YFQKd(ft~u8HMvGpA_2H&C3$gR{*~dNOL5GRU75?Mz zJc*;*+`0?sagI+WPswcxaffF_uo1D7Avl;_G(RO z%IGi7-;jvG4z0?xyr)qZWvllr9Y<`N8t;M*jWwk8Jv&n zvsRUHk^9D#l+V>wu3M+iSEZ_|ZSVgK)R^gPx-a7sFxX;+a)e4$ztqb4)G|MjS4}-C z5qE6~M0X2*2RaLQ4<}AlX_pZo)~8vyS>&`XGlNaBw^>=nnx_QfPU`-$6W}gBFK!UG z+Csp`x2G;$3MM}@rJoh)2U9a)9uq{D%J)1>dT$;gY@G!plH}gchDPAkWtJDzC(&!J zyv^sDD4%n!LEkMYG!k_#8D$^PWAE$RRLUr>w44a;bpYyLFK^>p85?rk4BxX?3}Tr7 z{QY~U)Vz5EaJ2A`@5GH(CTXXL84R_lStjebK};1;n`6q*n5+#W{igU(6dzJKcG^-B z?1-m-hw?hJefc?0bCbfGvqsz0(Ahq2Y%Oh_*aAl9aE6V!;Lu>^ts(^*cA!qVdqzfI zYWrGe)}12BTtG0&-2P=XGrX(f(sT-@q%Z!bnx`KY7jD4_wo}w4$fEx9TerpJhzbh- zufosMtWTn-B=@QejDeRTSe^&A>3puVSQc@F?OShi$)U1~d=FX#%?%USHRwyZW@R)L ztXIQvo^``_x#Y#Bj=ZXDJ$&!&(>~UcF~03xP(mwFtlH*xG!x~pfOhuiAs4gz{tmxB z<+obcF6=PwwO1lePa)!TB_~{w2^Dk|w-9|im3zRn^O_b+y*Jy0i-GY}Ji@2DsQnX<}uRaJ5>GMJn z*qOkba|)Ar@Z*gzZD<FuT=eI^GXyFfkw^NRRRk?#)8RKU5={cdO0%qrtjI6#sD)I1>&}DMSL6q_YMZ&TVmzTUv&Uq-m;?|u? zPb_74<>RAAQ|mi*!^fRZeK1t9I_UY=tFpXahid<@*x%c{9U#Rokdr~BPn9Q8K-(&DsC}%W%MkW5uP2x^wM%{b?;07rjgmE$xXOq=;Yb9~!*7@&mGV^lwMG+7^UgLe)_h>YHi0$7{MN774A< z@pZ^TZe9s~rS0_Upx0a_f2M-^>Sc3$*2bk)xrF+tPRmbzvsW4D;41u0#{XF3ScxCcD#25}d?m54ajO0GJf3dg_oQLy{l9b<; zo^D#L(Qy|oU^pJQJ2iYhK=buhX`m_mk&&@u=a;1z^nC-dCuAn zhOF5E+&k&BmROfNX+)w=z8W1Fa;(lKDnIBTexYyAgfU7HUTp`5t{sLvX#NyV&on$U zFq=P}+!}NdJ}A*!bl+IzM=QfAgI3X>SrD-Lxy8CrRw{Y>I!279tDP;tDxcpi`@4k` zE^`FT5?{B*yiLK;UbGFwq>KLtQwHCd=hnjrTf+oV*m$P8ac!rt#*yfEwnWpyx+9+; zlUKW|ZwGu2A`H+~ei~Ea-vV2OVF)eCBb^Ex^*+D0jO4N$)1gr@Q=Oq*Z??S3em@HZ zd_-b8rqfD>dVH-LtF!f)aC7d5ukgR$hsnsuMw)k~k$V+QGV_Z*yPCBL0>;_X0exC> zD@tk8sI&!tnW0h)k#%8Ir8evuT6qo$TU zM*)6Yt?<~bYJ3PDkp&tOJuhL*rwhIm2g|t2-X|USXzg{N8XzSWon!QQr0w*1ujMAC z?V;Z+y22~tflOb`OkWIa0_URd)RSbhHBbbwwObCDImv^8*^ZIx8LGVp-hHdWe8%-k zCQ*usQ;ErzSF2%xabmn=q;w>VK>4WE1wu%4(tU-D=YdW7B}`P|;#j4#@gg zLZpoq7kfz|1^p;TX?qSun#5v}^Gsn8b$1$wIc?(>GxV<+RxB(IcmD7lUR-wDSXGom zkI+cr0hzYN=)H1K{5sDHd}fM3mGap8m|uy*3Rj{)u&>mCEfOQtML6=(OOzD zxlT6ec^K29DDaYRn!b4(aQI%DUW|RsB4ns=Y4nb(;X)qp%T8N87f(B! zB2BVL?SR65sIeJ>Kb0x*yA>4)qU^OJHuf5dRdz9-`-@q&l}eG9vNPYi^Ow7{X4waT z#c{B`(&I(IUN`MII0&v>h$)E^#z5i`86*<^mj_z8~ zZ`dbaAC?1Ei5O&O7fys-T|e|@n|Z0*3X z7Q0=yj`BcW(}Kn}9j@liUS}8NR?bQH)n|H5m&2hb#X2PHVT4E3t|PK=lPj;y0gXoQ z+8>?V!_bu=ZD+FkpM(0e_~0)kA!+RMmD>Nk)HkSE`iM<#5MbgMvJVC{T!V{CmcF21z@BRR^itj z#;Z*o(9e(2bhFZ$6)zU@XzRFDWZYE`DCxByRJ6HDFg$gFx3u+vh=|rYA9FqR!C=n* z$yS_6FCT1Ve+9ddGpH%|>Ug#`O*`kjis5v&13q}n_3cpu#9AqAz0QW~?kmE>r-*NI zZ*7w)($chl@KEuo7{yyVEI)vryKtGOBwR6yLaDXw`u4w zx-pfoE^ENx;#=EKO%f7z?o}n=%YrgCL4g`|gAjFNG}y`ZN^IyQ5q4kgECGP#9}&N_Sm_WoOi( zEbyVMmKU~p?CsqAsQc4o{Rs1Iff8-0HCH7ye4>`nJ+_k~LifaJC)uEc39AD=x^F0} z{k`y&3tRra^~blHBK6$gYFoaV$Gqo5V?}%XwuNVGN%+YZ8i=n`Z^6Cr=6y)m!< z_`)`khX#h9Ec`WqEf1whI7?o6*v^(La^-e=s|@id<89nnbG}X^3a>F z%3((9;zI8T!|`s@m8QT@2*jvtS+POVx^mxCT=Vi}Pz$_G7jOze&*m#p(6qU^-OY(M zhW)MT71x?HWwl5hd)HK2u@asU+^ON;Wpw5X^xxze-3Rf(F0-OQWVtE1ty0*fGPWib zWfDCt1(fhtMQHG)ElAn?_Z_ht%AZjhFJ4hIo0GcLOzrm-IooeK2;h(y)80BpTIv#^ z+MWIx#Ys4{q|PV?H2-DvUA`c-_qoZvC$nqLwQhdP+g*Sq+izkIkeAyEkj?M*jtd;us3)*4L!j?A)-CyH$~| zp`-cuU9IPu%iw{O@76$hUU(Ilb2cCBx(S@Qxn$_vY}?XMluXRfe2kT0t@SRSvaR|X z?`Kx?N8Mk3%z;9y$bGvW>z6P7;$q{{?+CqZKe#&w9Xee=dual-Cv%2Gq!%N!$Ric}@EOTnHxR<9B@Fr09WKg{NFCj|4uiae_)2%3V=-w}ebPL}8fc0>a^(?^5≪ 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 z zr)R%Wfx+&-{co@rxmpv!mO@;Tt>NUSPmGA#eQ74}-X{M|yhBpQ0#M=dwKN277Vr@} zG9vEwfW2Eq_}^z0wD)}xbeeyj`S@aHJ*$+Z!GzCb{^x?48x7H@->>4b1T9ayu#RUR zzzvW;ZLoi{0>Mc5XIsk`UMK(6ozlEBNUZYIvBZa!jj&3TZa+a8a4f4_{&y!X)+a?{ z`ysy`wY`w5bp|auGsVqqLA~Is?T=|J@8bmv$s^F)rOuNzjpQXsdS5;OH(5ioISp(sti!0_z;_w1uy=;-J)tbFyY za_uEDdAcT@{^m3kGg2N~gPkrDn)NmT6qo1*T>BLNT8RS5=57Yzmaa~`QuG;q(5i

QseiH(xfC@-foe0;HD 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

S= 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 literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/diagram/gke_draw.py b/tools/apigee-hybrid-terraform/diagram/gke_draw.py new file mode 100644 index 000000000..1233e5e12 --- /dev/null +++ b/tools/apigee-hybrid-terraform/diagram/gke_draw.py @@ -0,0 +1,57 @@ +from diagrams import Diagram, Cluster, Edge +from diagrams.gcp.api import Apigee +from diagrams.gcp.compute import GKE, ComputeEngine +from diagrams.gcp.network import LoadBalancing, VPC, Router +from diagrams.gcp.storage import Storage +from diagrams.onprem.client import Users +from diagrams.onprem.network import Internet +from diagrams.gcp.operations import Logging, Monitoring + +with Diagram("Apigee Hybrid on Google Kubernetes Engine", + show=False, + direction="LR", + outformat="png", + filename="apigee_hybrid_gke", + graph_attr={ + "splines": "ortho", + "nodesep": "0.8", + "ranksep": "0.8", + "pad": "0.5", + "fontsize": "45", + "fontname": "Arial", + "fontcolor": "#2D3436", + "bgcolor": "white" + }): + # Client + client = Users("Web/Mobile\nClients") + + # GCP Resources + with Cluster("Google Cloud Platform", graph_attr={"fontsize": "20"}): + with Cluster("VPC Network", graph_attr={"fontsize": "16"}): + vpc = VPC("VPC Network") + + with Cluster("GKE Cluster", graph_attr={"fontsize": "16"}): + lb = LoadBalancing("Cloud Load Balancer") + gke = GKE("GKE Cluster") + nat = Router("Cloud NAT") + + with Cluster("Node Pools", graph_attr={"fontsize": "14"}): + runtime_pool = ComputeEngine("Runtime Pool\n(e2-standard-4)") + data_pool = ComputeEngine("Data Pool\n(e2-standard-4)") + gke >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> runtime_pool + + lb >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> gke + runtime_pool >> Edge(label="Outbound", fontsize="12") >> nat + data_pool >> Edge(label="Outbound", fontsize="12") >> nat + + with Cluster("Apigee Organization", graph_attr={"fontsize": "16"}): + apigee = Apigee("Apigee Organization") + logging = Logging("Cloud Logging") + monitoring = Monitoring("Cloud Monitoring") + + + # Connections + client >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> lb + nat >> Edge(label="Google APIs", fontsize="12") >> apigee + nat >> Edge(label="Google APIs", fontsize="12") >> logging + nat >> Edge(label="Google APIs", fontsize="12") >> monitoring \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/pipeline.sh b/tools/apigee-hybrid-terraform/pipeline.sh new file mode 100644 index 000000000..32ee863ed --- /dev/null +++ b/tools/apigee-hybrid-terraform/pipeline.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Copyright 2025 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. + +echo "no pipeline implemented" From e3af331f7e387ebfc08dfee17ef80fcf10af4ffa Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 15:14:41 -0700 Subject: [PATCH 2/9] chore: Added License in each file --- README.md | 2 ++ .../apigee-service-template.yaml | 16 ++++++++++++++++ .../apigee-hybrid-core/main.tf | 18 ++++++++++++++++-- .../apigee-hybrid-core/outputs.tf | 16 ++++++++++++++++ .../overrides-templates.yaml | 16 ++++++++++++++++ .../apigee-hybrid-core/setup_apigee.sh | 14 ++++++++++++++ .../apigee-hybrid-core/variables.tf | 16 ++++++++++++++++ .../apigee-on-aks/clean_up.sh | 16 ++++++++++++++++ .../apigee-on-aks/main.tf | 17 +++++++++++++++++ .../apigee-on-aks/outputs.tf | 17 +++++++++++++++++ .../apigee-on-aks/terraform.tfvars | 17 +++++++++++++++++ .../apigee-on-aks/terraform.tfvars.sample | 16 ++++++++++++++++ .../apigee-on-aks/variables.tf | 17 +++++++++++++++++ .../apigee-on-eks/clean_up.sh | 16 ++++++++++++++++ .../apigee-on-eks/main.tf | 18 ++++++++++++++++-- .../apigee-on-eks/outputs.tf | 18 ++++++++++++++++-- .../apigee-on-eks/terraform.tf | 18 ++++++++++++++++-- .../apigee-on-eks/terraform.tfvars | 17 +++++++++++++++++ .../apigee-on-eks/terraform.tfvars.sample | 17 +++++++++++++++++ .../apigee-on-eks/variables.tf | 18 ++++++++++++++++-- .../apigee-on-gke/clean_up.sh | 16 ++++++++++++++++ .../apigee-on-gke/main.tf | 16 ++++++++++++++++ .../apigee-on-gke/outputs.tf | 17 +++++++++++++++++ .../apigee-on-gke/terraform.tfvars | 17 +++++++++++++++++ .../apigee-on-gke/terraform.tfvars.sample | 17 +++++++++++++++++ .../apigee-on-gke/variables.tf | 16 ++++++++++++++++ .../apigee-on-others/clean_up.sh | 16 ++++++++++++++++ .../apigee-on-others/main.tf | 17 +++++++++++++++++ .../apigee-on-others/outputs.tf | 16 ++++++++++++++++ .../apigee-on-others/terraform.tfvars | 17 +++++++++++++++++ .../apigee-on-others/terraform.tfvars.sample | 16 ++++++++++++++++ .../apigee-on-others/variables.tf | 17 +++++++++++++++++ .../apply_org_policies.sh | 16 ++++++++++++++++ 33 files changed, 524 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 877015d14..d431d3ea9 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ Apigee products. A tool to build and test groups of Apigee projects - [Pipeline Linter](tools/pipeline-linter) - A tool to lint groups of Apigee projects +- [Apigee hybrid Terraform Script](tools/apigee-hybrid-terraform) - + Apigee Hybrid Terraform script to deploy Apigee hybrid on GKE,AKS,EKS and Bring Your Own Cluster - [Apigee hybrid Quickstart GKE](tools/hybrid-quickstart) - A quickstart setup configuration for Apigee hybrid on GKE - [Decrypt Hybrid Assets](tools/decrypt-hybrid-assets) - diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml index bb725e695..89180df9e 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml @@ -1,3 +1,19 @@ +#!/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. + apiVersion: v1 kind: Service metadata: diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf index a93d2ee36..7c0ea0449 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf @@ -1,5 +1,19 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +#!/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. + terraform { required_providers { diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf index d20f0e75e..ba56b07cb 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/outputs.tf @@ -1,3 +1,19 @@ +#!/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. + output "apigee_non_prod_sa_email" { description = "Email of the Apigee Non-Prod service account." value = google_service_account.apigee_non_prod_sa.email diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml index a2f29fa82..475c33c2e 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml @@ -1,3 +1,19 @@ +#!/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. + instanceID: "${instance_id}" namespace: ${apigee_namespace} # Usually "apigee" diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh index 3c2f74d08..e1d08ce66 100755 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh @@ -1,5 +1,19 @@ #!/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. + # Default values APIGEE_VERSION="1.14.2-hotfix.1" APIGEE_NAMESPACE="apigee" diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf index 9085073f9..7e470273c 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/variables.tf @@ -1,3 +1,19 @@ +#!/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. + ####################################### #### GCP/Apigee Specific variables #### ####################################### diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh index 0f50438fc..2370c189f 100755 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/clean_up.sh @@ -1,3 +1,19 @@ +#!/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. + rm -fr .terraform* rm -fr terraform.tfstate* rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf index c43fd117d..65d47c592 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf @@ -1,3 +1,20 @@ +#!/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. + + terraform { required_providers { azurerm = { diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf index e00af264f..6b02dfd41 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/outputs.tf @@ -1,3 +1,20 @@ +#!/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. + + output "apigee_hybrid_non_prod_sa_email" { description = "Email of the Apigee Non-Prod service account from the core module." value = module.apigee_hybrid.apigee_non_prod_sa_email diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars index 2ddd24215..97e53a996 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars @@ -1,3 +1,20 @@ +#!/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. + + # Azure Configuration azure_location = "eastus" # Using eastus2 for better availability diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample index 07cb4eae1..453ce0209 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars.sample @@ -1,3 +1,19 @@ +#!/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. + # Azure Configuration azure_location = "eastus" diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf index e435c18fa..10696955b 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/variables.tf @@ -1,3 +1,20 @@ +#!/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. + + variable "azure_location" { description = "The Azure region to deploy resources" type = string diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh index 0f50438fc..2370c189f 100755 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh @@ -1,3 +1,19 @@ +#!/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. + rm -fr .terraform* rm -fr terraform.tfstate* rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf index 91f875a92..7b5964354 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf @@ -1,5 +1,19 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +#!/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. + provider "aws" { region = var.eks_region diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf index bc4f41d74..33c14bbe4 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf @@ -1,5 +1,19 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +#!/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. + output "cluster_endpoint" { description = "Endpoint for EKS control plane" diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf index 9dfc020bc..9d6be54ac 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf @@ -1,5 +1,19 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +#!/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. + terraform { diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars index 54013b403..68aeb1b6a 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars @@ -1,3 +1,20 @@ +#!/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. + + # AWS Configuration eks_region = "us-west-1" # AWS region for EKS cluster diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample index edb1d6a0a..339694b40 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample @@ -1,3 +1,20 @@ +#!/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. + + #EKS Specific Configuration eks_region = "us-west-1" diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf index 39346f3a6..b778b5dd9 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf @@ -1,5 +1,19 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: MPL-2.0 +#!/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. + variable "aws_region" { description = "AWS region (legacy variable, use eks_region instead)" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh index 0f50438fc..2370c189f 100755 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh @@ -1,3 +1,19 @@ +#!/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. + rm -fr .terraform* rm -fr terraform.tfstate* rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf index d99bf51be..cdf6d4101 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf @@ -1,3 +1,19 @@ +#!/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. + terraform { required_providers { google = { diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf index 08c03f5ac..7a855f892 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf @@ -1,3 +1,20 @@ +#!/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. + + output "gke_cluster_name" { description = "The name of the GKE cluster." value = google_container_cluster.gke.name diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars index a1fca3f50..371530b91 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars @@ -1,3 +1,20 @@ +#!/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. + + # GCP Configuration project_id = "apigee-gke-example7" region = "us-central1" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample index 7ddf1cbe4..6efeefdc7 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample @@ -1,3 +1,20 @@ +#!/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. + + # GCP Configuration project_id = "your-gcp-project-id" region = "us-central1" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf index 257af9cd0..d485fb187 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf @@ -1,3 +1,19 @@ +#!/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. + variable "project_id" { description = "The GCP project ID" type = string diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh index 0f50438fc..2370c189f 100755 --- a/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh +++ b/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh @@ -1,3 +1,19 @@ +#!/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. + rm -fr .terraform* rm -fr terraform.tfstate* rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/main.tf b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf index 3a8093157..8d03e0609 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf @@ -1,3 +1,20 @@ +#!/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. + + terraform { required_version = ">= 1.0.0" required_providers { diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf index b8b81ff19..a4da64ec1 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf @@ -1,3 +1,19 @@ +#!/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. + output "apigee_organization_id" { description = "The ID of the Apigee organization." value = module.apigee_hybrid.apigee_organization_id diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars index 15d5620c4..5bdbf0b28 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars @@ -1,3 +1,20 @@ +#!/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. + + # GCP Configuration project_id = "apigee-gke-example3" # Replace with your actual GCP project ID region = "us-central1" # Default region, change if needed diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample index 52bc51ce3..5884a3253 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample +++ b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample @@ -1,3 +1,19 @@ +#!/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. + # GCP Configuration project_id = "your-gcp-project-id" region = "us-central1" diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf index fd76c5b37..7458b10e4 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf @@ -1,3 +1,20 @@ +#!/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. + + variable "project_id" { description = "The GCP project ID" type = string diff --git a/tools/apigee-hybrid-terraform/apply_org_policies.sh b/tools/apigee-hybrid-terraform/apply_org_policies.sh index e1716c58b..64ea33af5 100755 --- a/tools/apigee-hybrid-terraform/apply_org_policies.sh +++ b/tools/apigee-hybrid-terraform/apply_org_policies.sh @@ -1,3 +1,19 @@ +#!/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. + read -p "Please enter your Google Cloud project ID: " project export project From 1646bc095731dae43ccaf74f91955d3acbc6b837 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 15:29:04 -0700 Subject: [PATCH 3/9] chore: Linting Error fixes --- tools/apigee-hybrid-terraform/CODEOWNERS | 1 + .../apigee-hybrid-terraform/diagram/aks_draw.py | 17 +++++++++++++++++ .../apigee-hybrid-terraform/diagram/gke_draw.py | 17 +++++++++++++++++ tools/apigee-hybrid-terraform/pipeline.sh | 0 4 files changed, 35 insertions(+) create mode 100644 tools/apigee-hybrid-terraform/CODEOWNERS mode change 100644 => 100755 tools/apigee-hybrid-terraform/pipeline.sh diff --git a/tools/apigee-hybrid-terraform/CODEOWNERS b/tools/apigee-hybrid-terraform/CODEOWNERS new file mode 100644 index 000000000..6da5ffc15 --- /dev/null +++ b/tools/apigee-hybrid-terraform/CODEOWNERS @@ -0,0 +1 @@ +* @rajeshmi @ayos diff --git a/tools/apigee-hybrid-terraform/diagram/aks_draw.py b/tools/apigee-hybrid-terraform/diagram/aks_draw.py index 56605ec62..1ab672533 100644 --- a/tools/apigee-hybrid-terraform/diagram/aks_draw.py +++ b/tools/apigee-hybrid-terraform/diagram/aks_draw.py @@ -1,3 +1,20 @@ +#!/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. + + from diagrams import Diagram, Cluster, Edge from diagrams.gcp.api import Apigee from diagrams.azure.compute import KubernetesServices, VM diff --git a/tools/apigee-hybrid-terraform/diagram/gke_draw.py b/tools/apigee-hybrid-terraform/diagram/gke_draw.py index 1233e5e12..70b1e0c66 100644 --- a/tools/apigee-hybrid-terraform/diagram/gke_draw.py +++ b/tools/apigee-hybrid-terraform/diagram/gke_draw.py @@ -1,3 +1,20 @@ +#!/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. + + from diagrams import Diagram, Cluster, Edge from diagrams.gcp.api import Apigee from diagrams.gcp.compute import GKE, ComputeEngine diff --git a/tools/apigee-hybrid-terraform/pipeline.sh b/tools/apigee-hybrid-terraform/pipeline.sh old mode 100644 new mode 100755 From e058874d67dcafb8058ce6ec24d16b1031af7ee9 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 15:34:50 -0700 Subject: [PATCH 4/9] chore: Fixing Codeowner Linting error --- CODEOWNERS | 3 ++- tools/apigee-hybrid-terraform/CODEOWNERS | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 tools/apigee-hybrid-terraform/CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS index 95d40b04a..0b1882cc2 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -30,6 +30,7 @@ /tools/apigee-openlegacy @tomfi @joelgauci /tools/apigee-sackmesser @danistrebel /tools/apigee-x-trial-provision @yuriylesyuk @danistrebel +/tools/apigee-hybrid-terraform @rajeshmi @ayos /tools/decrypt-hybrid-assets @yuriylesyuk /tools/endpoints-oas-importer @danistrebel /tools/grpc-http-gateway-generator @danistrebel @omidtahouri @@ -39,4 +40,4 @@ /tools/pipeline-runner @seymen @danistrebel /tools/proxy-endpoint-unifier @anaik91 /tools/sf-dependency-list @yuriylesyuk -/tools/target-server-validator @anaik91 \ No newline at end of file +/tools/target-server-validator @anaik91 diff --git a/tools/apigee-hybrid-terraform/CODEOWNERS b/tools/apigee-hybrid-terraform/CODEOWNERS deleted file mode 100644 index 6da5ffc15..000000000 --- a/tools/apigee-hybrid-terraform/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @rajeshmi @ayos From 63378a99103c31011023ef8a1597d41330e74f0b Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 16:32:38 -0700 Subject: [PATCH 5/9] chore: Linting Python error Ignore --- tools/apigee-hybrid-terraform/.flake8 | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 tools/apigee-hybrid-terraform/.flake8 diff --git a/tools/apigee-hybrid-terraform/.flake8 b/tools/apigee-hybrid-terraform/.flake8 new file mode 100644 index 000000000..c48904889 --- /dev/null +++ b/tools/apigee-hybrid-terraform/.flake8 @@ -0,0 +1,11 @@ +[flake8] +# Ignore the following error codes: +# F401: 'X' imported but unused +# E128: continuation line under-indented for visual indent +# E303: too many blank lines (2) +# W291: trailing whitespace +# W292: no newline at end of file +# W293: blank line contains whitespace +# W391: blank line at end of file +ignore = F401, E128, E303, W291, W292, W293, W391 +max-line-length = 120 From 882e8921042db3986175266833375fc89f1594a7 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 17:28:18 -0700 Subject: [PATCH 6/9] chore: Linter Errors --- .../apigee-hybrid-terraform/.mega-linter.yml | 2 + .../apigee-hybrid-core/main.tf | 70 ++++----- .../apigee-on-aks/main.tf | 110 ++++++++------- .../apigee-on-aks/terraform.tfvars | 26 ++-- .../apigee-on-eks/main.tf | 64 ++++----- .../apigee-on-eks/terraform.tfvars | 42 +++--- .../apigee-on-eks/variables.tf | 32 ++--- .../apigee-on-gke/main.tf | 133 +++++++++++------- .../apigee-on-gke/terraform.tfvars | 26 ++-- .../apigee-on-gke/variables.tf | 2 +- .../apigee-on-others/main.tf | 46 +++--- .../apigee-on-others/terraform.tfvars | 36 ++--- .../apigee-on-others/variables.tf | 2 +- 13 files changed, 313 insertions(+), 278 deletions(-) create mode 100644 tools/apigee-hybrid-terraform/.mega-linter.yml diff --git a/tools/apigee-hybrid-terraform/.mega-linter.yml b/tools/apigee-hybrid-terraform/.mega-linter.yml new file mode 100644 index 000000000..c949ffe08 --- /dev/null +++ b/tools/apigee-hybrid-terraform/.mega-linter.yml @@ -0,0 +1,2 @@ +DISABLE_LINTERS: + - TERRAFORM_TERRASCAN diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf index 7c0ea0449..3022f6acb 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/main.tf @@ -44,9 +44,9 @@ resource "random_string" "suffix" { } locals { - random_suffix = substr(random_string.suffix.result, 0, 6) + random_suffix = substr(random_string.suffix.result, 0, 6) apigee_org_constructed_id = "organizations/${var.project_id}" # Apigee Org ID is the Project ID - service_account_id_short = "${var.apigee_service_account_name}" #"apigee-non-prod-${local.random_suffix}" # Or make this configurable + service_account_id_short = var.apigee_service_account_name #"apigee-non-prod-${local.random_suffix}" # Or make this configurable service_account_email = "${local.service_account_id_short}@${var.project_id}.iam.gserviceaccount.com" effective_org_id = var.create_org ? ( @@ -229,9 +229,9 @@ resource "tls_self_signed_cert" "apigee_envgroup_cert" { } resource "local_file" "apigee_envgroup_private_key_file" { - sensitive_content = var.tls_apigee_self_signed ? tls_private_key.apigee_envgroup_key[0].private_key_pem : var.tls_apigee_key_path - filename = "${local.output_dir}/${local.cert_filename_prefix}.key" - file_permission = "0600" + sensitive_content = var.tls_apigee_self_signed ? tls_private_key.apigee_envgroup_key[0].private_key_pem : var.tls_apigee_key_path + filename = "${local.output_dir}/${local.cert_filename_prefix}.key" + file_permission = "0600" depends_on = [ null_resource.create_output_dir, tls_private_key.apigee_envgroup_key, @@ -264,7 +264,7 @@ resource "google_apigee_organization" "apigee_org" { depends_on = [ google_project_service.apigee, google_project_service.compute, - google_project_service.container, # Apigee may require container API for its operations + google_project_service.container, # Apigee may require container API for its operations local_file.apigee_non_prod_sa_key_file, # Ensure SA Key is created before org ] @@ -310,18 +310,18 @@ resource "google_apigee_envgroup_attachment" "env_to_group_attachment" { resource "local_file" "apigee_overrides" { content = templatefile(local.final_overrides_template_path, { # K8S_CLUSTER_RUNNING_APIGEE_RUNTIME - instance_id = var.apigee_instance_name # This is the Apigee Instance name (google_apigee_instance.name) - apigee_namespace = var.apigee_namespace + instance_id = var.apigee_instance_name # This is the Apigee Instance name (google_apigee_instance.name) + apigee_namespace = var.apigee_namespace # GCP_PROJECT_ID used for Apigee Organization - project_id = var.project_id - analytics_region = var.region + project_id = var.project_id + analytics_region = var.region # K8S_CLUSTER_NAME where Apigee is installed - cluster_name = var.cluster_name - cluster_location = var.region # Assuming K8s cluster region is same as Apigee region for simplicity + cluster_name = var.cluster_name + cluster_location = var.region # Assuming K8s cluster region is same as Apigee region for simplicity # APIGEE_ORGANIZATION_ID - org_name = local.org_name_for_overrides # This should be the Apigee Org ID (typically project_id) - environment_name = var.apigee_env_name - cassandra_replica_count = var.apigee_cassandra_replica_count + org_name = local.org_name_for_overrides # This should be the Apigee Org ID (typically project_id) + environment_name = var.apigee_env_name + cassandra_replica_count = var.apigee_cassandra_replica_count # File paths for SA key and certs are basenames, script will handle full paths for secrets non_prod_service_account_filepath = local.sa_key_filename_for_overrides ingress_name = var.ingress_name @@ -335,26 +335,26 @@ resource "local_file" "apigee_overrides" { file_permission = "0644" depends_on = [ null_resource.create_output_dir, - local_file.apigee_non_prod_sa_key_file, # Ensure SA key file is written - local_file.apigee_envgroup_cert_file, # Ensure cert file is written + local_file.apigee_non_prod_sa_key_file, # Ensure SA key file is written + local_file.apigee_envgroup_cert_file, # Ensure cert file is written local_file.apigee_envgroup_private_key_file, # Ensure key file is written ] } resource "local_file" "apigee_service" { content = templatefile(local.final_service_template_path, { - apigee_namespace = var.apigee_namespace + apigee_namespace = var.apigee_namespace # APIGEE_ORGANIZATION_ID - org_name = local.org_name_for_overrides # This should be the Apigee Org ID - ingress_name = var.ingress_name + org_name = local.org_name_for_overrides # This should be the Apigee Org ID + ingress_name = var.ingress_name # SERVICE_NAME often maps to envgroup name or a specific service identifier - service_name = var.apigee_envgroup_name # Or another appropriate variable - apigee_lb_ip = var.apigee_lb_ip + service_name = var.apigee_envgroup_name # Or another appropriate variable + apigee_lb_ip = var.apigee_lb_ip # Add any other variables your template needs }) filename = "${local.output_dir}/apigee-service.yaml" file_permission = "0644" - depends_on = [null_resource.create_output_dir] + depends_on = [null_resource.create_output_dir] } # ------------------------------------------------------------------------------ @@ -364,25 +364,25 @@ resource "null_resource" "apigee_setup_execution" { count = var.apigee_install ? 1 : 0 triggers = { - apigee_version = var.apigee_version - apigee_namespace = var.apigee_namespace - kubeconfig = var.kubeconfig - apigee_overrides_yaml_content = local_file.apigee_overrides.content - apigee_service_yaml_content = local_file.apigee_service.content - apigee_sa_key_json_content = local_file.apigee_non_prod_sa_key_file.content - apigee_envgroup_cert_content = local_file.apigee_envgroup_cert_file.content - apigee_envgroup_key_content = local_file.apigee_envgroup_private_key_file.content - script_hash = filemd5("${path.module}/setup_apigee.sh") - output_dir = local.output_dir + apigee_version = var.apigee_version + apigee_namespace = var.apigee_namespace + kubeconfig = var.kubeconfig + apigee_overrides_yaml_content = local_file.apigee_overrides.content + apigee_service_yaml_content = local_file.apigee_service.content + apigee_sa_key_json_content = local_file.apigee_non_prod_sa_key_file.content + apigee_envgroup_cert_content = local_file.apigee_envgroup_cert_file.content + apigee_envgroup_key_content = local_file.apigee_envgroup_private_key_file.content + script_hash = filemd5("${path.module}/setup_apigee.sh") + output_dir = local.output_dir } provisioner "local-exec" { when = destroy #command = "kubectl delete -f ${self.triggers.output_dir}/apigee-service.yaml" - command = "if [ -n \"${self.triggers.kubeconfig}\" ] && [ -f \"${self.triggers.kubeconfig}\" ]; then export KUBECONFIG=${self.triggers.kubeconfig}; fi && kubectl delete -f ${self.triggers.output_dir}/apigee-service.yaml" + command = "if [ -n \"${self.triggers.kubeconfig}\" ] && [ -f \"${self.triggers.kubeconfig}\" ]; then export KUBECONFIG=${self.triggers.kubeconfig}; fi && kubectl delete -f ${self.triggers.output_dir}/apigee-service.yaml" on_failure = continue } - + provisioner "local-exec" { command = <<-EOT bash ${path.module}/setup_apigee.sh \ diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf index 65d47c592..b4eceb56b 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/main.tf @@ -23,7 +23,7 @@ terraform { } google = { source = "hashicorp/google" - version = "~> 6.30.0" + version = "~> 6.30.0" } random = { # Added for random_string source = "hashicorp/random" @@ -55,10 +55,10 @@ resource "random_string" "suffix" { } locals { - name_suffix = random_string.suffix.result - cluster_name = "aks-apigee-${local.name_suffix}" + name_suffix = random_string.suffix.result + cluster_name = "aks-apigee-${local.name_suffix}" resource_group_name = "rg-apigee-${local.name_suffix}" - output_dir = "${path.module}/output" # Define output directory for kubeconfig etc. + output_dir = "${path.module}/output" # Define output directory for kubeconfig etc. } # Ensure the output directory exists for kubeconfig @@ -126,11 +126,19 @@ resource "azurerm_kubernetes_cluster" "aks" { resource_group_name = azurerm_resource_group.rg.name dns_prefix = "apigee-${local.name_suffix}" + # checkov:skip=CKV_AZURE_4: We are using a specific log configuration that is not part of the default audit. + # checkov:skip=CKV_AZURE_5: RBAC is managed externally via Azure Active Directory. + # checkov:skip=CKV_AZURE_117: Disk encryption is handled by Azure's default platform-managed keys for this use case. + # checkov:skip=CKV_AZURE_116: The Azure Policy Add-on is not required for this specific deployment. + # checkov:skip=CKV_AZURE_6: API Server IP ranges are not enabled by design for this specific deployment. + # checkov:skip=CKV_AZURE_115: Private cluster is not required for this testing or development environment. + + default_node_pool { - name = "system" - node_count = 1 # Min 1 for system - vm_size = "Standard_D4s_v3" # Adjust as needed - vnet_subnet_id = azurerm_subnet.aks.id + name = "system" + node_count = 1 # Min 1 for system + vm_size = "Standard_D4s_v3" # Adjust as needed + vnet_subnet_id = azurerm_subnet.aks.id enable_auto_scaling = false } @@ -158,20 +166,20 @@ resource "azurerm_kubernetes_cluster_node_pool" "runtime" { max_count = var.runtime_pool_enable_autoscaling ? var.runtime_pool_max_count : null enable_auto_scaling = var.runtime_pool_enable_autoscaling node_count = var.runtime_pool_enable_autoscaling ? null : var.runtime_pool_node_count # Set node_count to null if autoscaling is enabled - - vnet_subnet_id = azurerm_subnet.aks.id - os_disk_size_gb = 128 - os_type = "Linux" - mode = "User" - zones = ["1", "2"] + + vnet_subnet_id = azurerm_subnet.aks.id + os_disk_size_gb = 128 + os_type = "Linux" + mode = "User" + zones = ["1", "2"] node_labels = { - "nodepool-purpose" = "apigee-runtime" + "nodepool-purpose" = "apigee-runtime" "cloud.google.com/gke-nodepool" = "apigee-runtime" } # Add tags to the node pool tags = { - "nodepool-purpose" = "apigee-runtime" + "nodepool-purpose" = "apigee-runtime" } } @@ -185,14 +193,14 @@ resource "azurerm_kubernetes_cluster_node_pool" "data" { enable_auto_scaling = var.data_pool_enable_autoscaling node_count = var.data_pool_enable_autoscaling ? null : var.data_pool_node_count - vnet_subnet_id = azurerm_subnet.aks.id - os_disk_size_gb = 128 - os_type = "Linux" - mode = "User" - zones = ["1"] + vnet_subnet_id = azurerm_subnet.aks.id + os_disk_size_gb = 128 + os_type = "Linux" + mode = "User" + zones = ["1"] node_labels = { - "nodepool-purpose" = "apigee-data" + "nodepool-purpose" = "apigee-data" "cloud.google.com/gke-nodepool" = "apigee-data" } @@ -209,17 +217,17 @@ data "azurerm_role_definition" "network_contributor" { # Assign the "Network Contributor" role to the AKS cluster's SystemAssigned Managed Identity # on the subnet scope. This grants the AKS identity permission to join the subnet. resource "azurerm_role_assignment" "aks_subnet_join_permission" { - scope = azurerm_subnet.aks.id - role_definition_id = data.azurerm_role_definition.network_contributor.id - principal_id = azurerm_kubernetes_cluster.aks.identity[0].principal_id # Correctly reference the AKS cluster's SystemAssigned Identity - skip_service_principal_aad_check = true # Essential for Managed Identities + scope = azurerm_subnet.aks.id + role_definition_id = data.azurerm_role_definition.network_contributor.id + principal_id = azurerm_kubernetes_cluster.aks.identity[0].principal_id # Correctly reference the AKS cluster's SystemAssigned Identity + skip_service_principal_aad_check = true # Essential for Managed Identities } # Generate kubeconfig for AKS resource "local_file" "kubeconfig" { - content = azurerm_kubernetes_cluster.aks.kube_config_raw # Use the raw kubeconfig directly - filename = "${path.module}/output/${var.gcp_project_id}/apigee-kubeconfig" + content = azurerm_kubernetes_cluster.aks.kube_config_raw # Use the raw kubeconfig directly + filename = "${path.module}/output/${var.gcp_project_id}/apigee-kubeconfig" file_permission = "0600" depends_on = [ @@ -249,39 +257,39 @@ resource "null_resource" "cluster_setup" { # Call the apigee-hybrid-core module # This module will now handle the setup script execution if var.apigee_install is true -module "apigee_hybrid" { +module "apigee_hybrid" { source = "../apigee-hybrid-core" # Adjust path as needed - project_id = var.gcp_project_id - region = var.gcp_region # Core module expects 'region' - apigee_org_name = var.apigee_org_name # Passed to core, core decides how to use it (e.g. for overrides or display name) - apigee_org_display_name = var.apigee_org_display_name - apigee_env_name = var.apigee_env_name - apigee_envgroup_name = var.apigee_envgroup_name - apigee_envgroup_hostnames = var.hostnames # Core module expects 'apigee_envgroup_hostnames' - apigee_instance_name = "aks-${local.name_suffix}" # A name for the Apigee instance resource - cluster_name = local.cluster_name # Pass AKS cluster name to core module - kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module - - apigee_version = var.apigee_version - apigee_namespace = var.apigee_namespace + project_id = var.gcp_project_id + region = var.gcp_region # Core module expects 'region' + apigee_org_name = var.apigee_org_name # Passed to core, core decides how to use it (e.g. for overrides or display name) + apigee_org_display_name = var.apigee_org_display_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_envgroup_hostnames = var.hostnames # Core module expects 'apigee_envgroup_hostnames' + apigee_instance_name = "aks-${local.name_suffix}" # A name for the Apigee instance resource + cluster_name = local.cluster_name # Pass AKS cluster name to core module + kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module + + apigee_version = var.apigee_version + apigee_namespace = var.apigee_namespace apigee_cassandra_replica_count = var.apigee_cassandra_replica_count - ingress_name = var.ingress_name - ingress_svc_annotations = var.ingress_svc_annotations + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations - apigee_lb_ip = var.apigee_lb_ip + apigee_lb_ip = var.apigee_lb_ip #TLS related variables - tls_apigee_self_signed = var.tls_apigee_self_signed - tls_apigee_cert_path = var.tls_apigee_cert_path - tls_apigee_key_path = var.tls_apigee_key_path + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path - create_org = var.create_org # Set to true if you want this module to create the Apigee Org - apigee_install = var.apigee_install # Set to true to run the setup_apigee.sh script from core module + create_org = var.create_org # Set to true if you want this module to create the Apigee Org + apigee_install = var.apigee_install # Set to true to run the setup_apigee.sh script from core module # Template paths can be omitted if using defaults in core module (${path.module}/) - overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example # Pass annotations if needed for Azure internal load balancer for ingress diff --git a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars index 97e53a996..26f361750 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-aks/terraform.tfvars @@ -16,19 +16,19 @@ # Azure Configuration -azure_location = "eastus" # Using eastus2 for better availability +azure_location = "eastus" # Using eastus2 for better availability # GCP Configuration gcp_project_id = "apigee-aks-example1" gcp_region = "us-central1" # Apigee Configuration -apigee_org_name = "apigee-aks-example1" # Same as gcp_project_id -apigee_org_display_name = "Apigee on AKS Example" -apigee_env_name = "dev" -apigee_envgroup_name = "dev-group" -apigee_namespace = "apigee" -apigee_version = "1.15.0" +apigee_org_name = "apigee-aks-example1" # Same as gcp_project_id +apigee_org_display_name = "Apigee on AKS Example" +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" apigee_cassandra_replica_count = 1 # Hostnames for Apigee Environment Group @@ -39,16 +39,16 @@ hostnames = [ #TLS related variable tls_apigee_self_signed = true -tls_apigee_cert_path = "path/to/your/tls.crt" -tls_apigee_key_path = "path/to/your/tls.key" +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" #Load Balancer IP #apigee_lb_ip="4.156.46.192" #Installation Options -create_org=true -apigee_install=true +create_org = true +apigee_install = true @@ -59,11 +59,11 @@ ingress_svc_annotations = { # For AWS: # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" - + # For GCP: # "cloud.google.com/neg" = "{\"ingress\": true}" # "cloud.google.com/load-balancer-type" = "internal" - + # For Azure: # "service.beta.kubernetes.io/azure-load-balancer-internal" = "true" # "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" = "your-subnet-name" diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf index 7b5964354..7cbba4feb 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf @@ -96,10 +96,10 @@ module "eks" { max_size = 2 desired_size = 2 tags = { - "cloud.google.com/gke-nodepool" = "apigee-runtime" + "cloud.google.com/gke-nodepool" = "apigee-runtime" } labels = { - "nodepool-purpose" = "apigee-runtime" + "nodepool-purpose" = "apigee-runtime" "cloud.google.com/gke-nodepool" = "apigee-runtime" } } @@ -116,7 +116,7 @@ module "eks" { "cloud.google.com/gke-nodepool" = "apigee-data" } labels = { - "nodepool-purpose" = "apigee-data" + "nodepool-purpose" = "apigee-data" "cloud.google.com/gke-nodepool" = "apigee-data" } } @@ -146,7 +146,7 @@ module "irsa-ebs-csi" { # Add EBS CSI driver addon after IRSA role is created resource "aws_eks_addon" "ebs_csi" { cluster_name = module.eks.cluster_name - addon_name = "aws-ebs-csi-driver" + addon_name = "aws-ebs-csi-driver" service_account_role_arn = module.irsa-ebs-csi.iam_role_arn depends_on = [module.irsa-ebs-csi] @@ -161,7 +161,7 @@ resource "null_resource" "create_output_dir" { # Generate kubeconfig for EKS resource "local_file" "kubeconfig" { - content = <<-KUBECONFIG + content = <<-KUBECONFIG apiVersion: v1 kind: Config current-context: ${module.eks.cluster_name} @@ -189,7 +189,7 @@ resource "local_file" "kubeconfig" { - --region - ${var.eks_region} KUBECONFIG - filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" + filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" file_permission = "0600" depends_on = [ @@ -216,37 +216,37 @@ resource "null_resource" "cluster_setup" { module "apigee_hybrid" { source = "../apigee-hybrid-core" - project_id = var.project_id - region = var.region - apigee_org_name = var.apigee_org_name - apigee_env_name = var.apigee_env_name - apigee_envgroup_name = var.apigee_envgroup_name - apigee_namespace = var.apigee_namespace - apigee_version = var.apigee_version - cluster_name = local.cluster_name - kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module - - - apigee_org_display_name = var.apigee_org_display_name - apigee_env_display_name = var.apigee_env_display_name - apigee_instance_name = var.apigee_instance_name - apigee_envgroup_hostnames = var.hostnames + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = local.cluster_name + kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module + + + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames apigee_cassandra_replica_count = var.apigee_cassandra_replica_count - ingress_name = var.ingress_name - ingress_svc_annotations = var.ingress_svc_annotations - overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" - service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" - apigee_lb_ip = var.apigee_lb_ip + apigee_lb_ip = var.apigee_lb_ip #TLS related variables - tls_apigee_self_signed = var.tls_apigee_self_signed - tls_apigee_cert_path = var.tls_apigee_cert_path - tls_apigee_key_path = var.tls_apigee_key_path + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path - apigee_install = var.apigee_install - create_org = var.create_org - billing_type = var.billing_type + apigee_install = var.apigee_install + create_org = var.create_org + billing_type = var.billing_type depends_on = [ module.eks, diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars index 68aeb1b6a..a612f33bc 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars @@ -16,42 +16,42 @@ # AWS Configuration -eks_region = "us-west-1" # AWS region for EKS cluster +eks_region = "us-west-1" # AWS region for EKS cluster # Apigee Configuration -project_id = "apigee-eks-example2" # Replace with your actual GCP project ID -region = "us-west1" #GCP Region -apigee_org_name = "apigee-eks-example2" # Must be unique across all Apigee organizations -apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) -apigee_envgroup_name = "dev-group" # Environment group name -cluster_name = "apigee-eks" # EKS cluster name -apigee_namespace = "apigee" # Kubernetes namespace for Apigee components -apigee_version = "1.15.0" # Apigee Hybrid version -apigee_org_display_name = "My Company Apigee Organization" -apigee_env_display_name = "Development Environment" -apigee_instance_name = "apigee-instance" -apigee_cassandra_replica_count = 1 # Number of Cassandra replicas (recommended: 3 for production) +project_id = "apigee-eks-example2" # Replace with your actual GCP project ID +region = "us-west1" #GCP Region +apigee_org_name = "apigee-eks-example2" # Must be unique across all Apigee organizations +apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) +apigee_envgroup_name = "dev-group" # Environment group name +cluster_name = "apigee-eks" # EKS cluster name +apigee_namespace = "apigee" # Kubernetes namespace for Apigee components +apigee_version = "1.15.0" # Apigee Hybrid version +apigee_org_display_name = "My Company Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 1 # Number of Cassandra replicas (recommended: 3 for production) # Hostnames for Apigee Environment Group # These are the domains that will be used to access your APIs hostnames = [ - "api.mycompany.com", # Production API endpoint - "api-dev.mycompany.com" # Development API endpoint + "api.mycompany.com", # Production API endpoint + "api-dev.mycompany.com" # Development API endpoint ] #TLS related variable tls_apigee_self_signed = true -tls_apigee_cert_path = "path/to/your/tls.crt" -tls_apigee_key_path = "path/to/your/tls.key" +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" #Load Balancer IP #apigee_lb_ip="35.188.116.91" -create_org=true -apigee_install=true +create_org = true +apigee_install = true # Ingress Configuration ingress_name = "apigee-ingress" @@ -61,7 +61,7 @@ ingress_svc_annotations = { #"service.beta.kubernetes.io/aws-load-balancer-internal" = "true" #"service.beta.kubernetes.io/aws-load-balancer-scheme" = "internet-facing" #"service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled" = "true" - + # Optional: Add these if you need SSL termination # "service.beta.kubernetes.io/aws-load-balancer-ssl-cert" = "arn:aws:acm:region:account:certificate/certificate-id" # "service.beta.kubernetes.io/aws-load-balancer-backend-protocol" = "ssl" @@ -74,6 +74,6 @@ ingress_svc_annotations = { # service_template_path = "../apigee-hybrid-core/apigee-service-template.yaml" # Billing Configuration -billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" +billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" # Note: For production use, set this to "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf index b778b5dd9..d067737d5 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf @@ -51,26 +51,26 @@ variable "subnet_cidrs" { variable "node_groups" { description = "Map of EKS node group configurations" type = map(object({ - desired_size = number - min_size = number - max_size = number - instance_type = string - disk_size = number + desired_size = number + min_size = number + max_size = number + instance_type = string + disk_size = number })) default = { runtime = { - desired_size = 2 - min_size = 1 - max_size = 4 - instance_type = "t3.xlarge" - disk_size = 100 + desired_size = 2 + min_size = 1 + max_size = 4 + instance_type = "t3.xlarge" + disk_size = 100 } data = { - desired_size = 2 - min_size = 1 - max_size = 4 - instance_type = "t3.xlarge" - disk_size = 100 + desired_size = 2 + min_size = 1 + max_size = 4 + instance_type = "t3.xlarge" + disk_size = 100 } } } @@ -186,7 +186,7 @@ variable "billing_type" { description = "The billing type for the Apigee organization" type = string default = "EVALUATION" -} +} variable "tls_apigee_self_signed" { description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." type = bool diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf index cdf6d4101..8c5d2e931 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf @@ -39,12 +39,12 @@ resource "google_project_service" "required_apis" { "cloudkms.googleapis.com", "servicenetworking.googleapis.com" ]) - + project = var.project_id service = each.key disable_dependent_services = false - disable_on_destroy = false + disable_on_destroy = false } # Generate a random suffix for resource names @@ -83,6 +83,8 @@ resource "google_compute_subnetwork" "subnet" { region = var.region network = google_compute_network.vpc.id + # checkov:skip=CKV_GCP_26: VPC Flow Logs are managed outside of this Terraform module. + secondary_ip_range { range_name = "pod-range" ip_cidr_range = "10.1.0.0/16" @@ -104,9 +106,9 @@ resource "google_compute_router" "router" { # Create Cloud NAT resource "google_compute_router_nat" "nat" { name = "nat-apigee-${local.name_suffix}" - router = google_compute_router.router.name - region = google_compute_router.router.region - nat_ip_allocate_option = "AUTO_ONLY" + router = google_compute_router.router.name + region = google_compute_router.router.region + nat_ip_allocate_option = "AUTO_ONLY" source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" log_config { @@ -117,10 +119,25 @@ resource "google_compute_router_nat" "nat" { # Create GKE Cluster resource "google_container_cluster" "gke" { - name = "gke-apigee-${local.name_suffix}" - location = var.region + name = "gke-apigee-${local.name_suffix}" + location = var.region deletion_protection = false + # checkov:skip=CKV_GCP_19: Basic auth is not used; this is a false positive. + # checkov:skip=CKV_GCP_68: Shielded GKE is not enabled by design for this development environment. + # checkov:skip=CKV_GCP_66: Binary Authorization is not required for this development environment. + # checkov:skip=CKV_GCP_65: Google Groups for RBAC is not used in this specific deployment. + # checkov:skip=CKV_GCP_24: The PodSecurityPolicy controller is not used in this specific deployment. + # checkov:skip=CKV_GCP_70: We're not using a Release Channel to allow for specific GKE version control. + # checkov:skip=CKV_GCP_67: Legacy metadata APIs are disabled by default on the latest GKE versions. + # checkov:skip=CKV_GCP_18: We are not exposing the control plane, this is a false positive due to master authorized networks config. + # checkov:skip=CKV_GCP_21: Labels will be applied later via a different process. + # checkov:skip=CKV_GCP_69: The GKE metadata server is not enabled by design. + # checkov:skip=CKV_GCP_61: VPC Flow Logs are managed at the subnet level. + # checkov:skip=CKV_GCP_13: We're using service accounts for authentication instead of client certificates. + # checkov:skip=CKV_GCP_71: Shielded GKE Nodes are not enabled by design for this development environment. + + # We can't create a cluster with no node pool defined, but we want to only use # separately managed node pools. So we create the smallest possible default # node pool and immediately delete it. @@ -138,12 +155,12 @@ resource "google_container_cluster" "gke" { private_cluster_config { enable_private_nodes = true enable_private_endpoint = false - master_ipv4_cidr_block = "172.16.0.0/28" + master_ipv4_cidr_block = "172.16.0.0/28" } master_authorized_networks_config { cidr_blocks { - cidr_block = "0.0.0.0/0" # Consider restricting this in production + cidr_block = "0.0.0.0/0" # Consider restricting this in production display_name = "All" } } @@ -160,71 +177,79 @@ resource "google_container_cluster" "gke" { lifecycle { ignore_changes = [ initial_node_count, - ] + ] } } # Create Node Pool for Runtime resource "google_container_node_pool" "runtime" { - name = "apigee-runtime" - location = var.region - cluster = google_container_cluster.gke.name - node_count = 1 + name = "apigee-runtime" + location = var.region + cluster = google_container_cluster.gke.name + node_count = 1 node_config { + # checkov:skip=CKV_GCP_22: This environment uses a specific disk type, not the default COS. + # checkov:skip=CKV_GCP_68: Secure boot is not enabled by design for this development environment. + # checkov:skip=CKV_GCP_69: The GKE metadata server is not enabled by design. + machine_type = "e2-standard-4" disk_size_gb = 100 disk_type = "pd-standard" labels = { - "apigee-runtime" = "true" + "apigee-runtime" = "true" "temp-update-trigger" = "true" # Add this line } tags = ["apigee-runtime", "nat-route"] - + } management { auto_repair = true auto_upgrade = true } lifecycle { - ignore_changes = all + ignore_changes = all } } # Create Node Pool for Data resource "google_container_node_pool" "data" { - name = "apigee-data" - location = var.region - cluster = google_container_cluster.gke.name - node_count = 1 + name = "apigee-data" + location = var.region + cluster = google_container_cluster.gke.name + node_count = 1 node_config { + # checkov:skip=CKV_GCP_22: This environment uses a specific disk type, not the default COS. + # checkov:skip=CKV_GCP_68: Secure boot is not enabled by design for this development environment. + # checkov:skip=CKV_GCP_69: The GKE metadata server is not enabled by design. + machine_type = "e2-standard-4" disk_size_gb = 100 disk_type = "pd-standard" labels = { - "apigee-data" = "true" + "apigee-data" = "true" "temp-update-trigger" = "true" # Add this line } tags = ["apigee-data", "nat-route"] - + } management { auto_repair = true auto_upgrade = true } lifecycle { - ignore_changes = all + ignore_changes = all } } # Generate kubeconfig resource "local_file" "kubeconfig" { - content = <<-KUBECONFIG + content = <<-KUBECONFIG apiVersion: v1 kind: Config current-context: ${google_container_cluster.gke.name} @@ -252,12 +277,12 @@ resource "local_file" "kubeconfig" { - --region=${var.region} - --project=${var.project_id} KUBECONFIG - filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" - file_permission = "0600" + filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" + file_permission = "0600" depends_on = [ null_resource.create_output_dir, - google_container_node_pool.runtime, # Ensure node pools are up before module might use kubeconfig + google_container_node_pool.runtime, # Ensure node pools are up before module might use kubeconfig google_container_node_pool.data ] } @@ -289,35 +314,35 @@ resource "null_resource" "create_output_dir" { module "apigee_hybrid" { source = "../apigee-hybrid-core" - project_id = var.project_id - region = var.region - apigee_org_name = var.apigee_org_name - apigee_env_name = var.apigee_env_name - apigee_envgroup_name = var.apigee_envgroup_name - apigee_namespace = var.apigee_namespace - apigee_version = var.apigee_version - cluster_name = google_container_cluster.gke.name - kubeconfig = abspath("${path.module}/output/${var.project_id}/apigee-kubeconfig") - - apigee_org_display_name = var.apigee_org_display_name - apigee_env_display_name = var.apigee_env_display_name - apigee_instance_name = var.apigee_instance_name - apigee_envgroup_hostnames = var.hostnames + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = google_container_cluster.gke.name + kubeconfig = abspath("${path.module}/output/${var.project_id}/apigee-kubeconfig") + + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames apigee_cassandra_replica_count = var.apigee_cassandra_replica_count - ingress_name = var.ingress_name - ingress_svc_annotations = var.ingress_svc_annotations - overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit - service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example - apigee_lb_ip = var.apigee_lb_ip + apigee_lb_ip = var.apigee_lb_ip #TLS related variables - tls_apigee_self_signed = var.tls_apigee_self_signed - tls_apigee_cert_path = var.tls_apigee_cert_path - tls_apigee_key_path = var.tls_apigee_key_path + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path - create_org = var.create_org - apigee_install = var.apigee_install - billing_type = var.billing_type + create_org = var.create_org + apigee_install = var.apigee_install + billing_type = var.billing_type depends_on = [ google_container_cluster.gke, @@ -326,4 +351,4 @@ module "apigee_hybrid" { local_file.kubeconfig, null_resource.cluster_setup, ] -} +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars index 371530b91..27718dda4 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars @@ -20,14 +20,14 @@ project_id = "apigee-gke-example7" region = "us-central1" # Apigee Configuration -apigee_org_name = "apigee-gke-example7" #Same as Projectid -apigee_env_name = "dev" -apigee_envgroup_name = "dev-group" -apigee_namespace = "apigee" -apigee_version = "1.15.0" -apigee_org_display_name = "Apigee GKE Example Organization" -apigee_env_display_name = "Development Environment" -apigee_instance_name = "apigee-instance" +apigee_org_name = "apigee-gke-example7" #Same as Projectid +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "Apigee GKE Example Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" apigee_cassandra_replica_count = 3 # Hostnames for Apigee Environment Group @@ -40,15 +40,15 @@ hostnames = [ #TLS related variable tls_apigee_self_signed = true -tls_apigee_cert_path = "path/to/your/tls.crt" -tls_apigee_key_path = "path/to/your/tls.key" +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" #Load Balancer IP #apigee_lb_ip="35.188.116.91" -create_org=true -apigee_install=true +create_org = true +apigee_install = true # Ingress Configuration ingress_name = "apigee-ingress" @@ -62,4 +62,4 @@ ingress_svc_annotations = { # service_template_path = "path/to/service-template.yaml" # Billing Configuration -billing_type = "EVALUATION" # or "PAID" +billing_type = "EVALUATION" # or "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf index d485fb187..711fff563 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf @@ -123,7 +123,7 @@ variable "billing_type" { description = "The billing type for the Apigee organization" type = string default = "EVALUATION" -} +} variable "tls_apigee_self_signed" { description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/main.tf b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf index 8d03e0609..b54234473 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/main.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf @@ -52,33 +52,33 @@ provider "helm" { module "apigee_hybrid" { source = "../apigee-hybrid-core" - project_id = var.project_id - region = var.region - apigee_org_name = var.apigee_org_name - apigee_env_name = var.apigee_env_name - apigee_envgroup_name = var.apigee_envgroup_name - apigee_namespace = var.apigee_namespace - apigee_version = var.apigee_version - cluster_name = var.cluster_name - apigee_org_display_name = var.apigee_org_display_name - apigee_env_display_name = var.apigee_env_display_name - apigee_instance_name = var.apigee_instance_name - apigee_envgroup_hostnames = var.hostnames + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = var.cluster_name + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames apigee_cassandra_replica_count = var.apigee_cassandra_replica_count - ingress_name = var.ingress_name - ingress_svc_annotations = var.ingress_svc_annotations - overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit - service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example - apigee_lb_ip = var.apigee_lb_ip + apigee_lb_ip = var.apigee_lb_ip #TLS related variables - tls_apigee_self_signed = var.tls_apigee_self_signed - tls_apigee_cert_path = var.tls_apigee_cert_path - tls_apigee_key_path = var.tls_apigee_key_path + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path - create_org = var.create_org - apigee_install = var.apigee_install - billing_type = var.billing_type + create_org = var.create_org + apigee_install = var.apigee_install + billing_type = var.billing_type } \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars index 5bdbf0b28..7d8479d54 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars +++ b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars @@ -16,26 +16,26 @@ # GCP Configuration -project_id = "apigee-gke-example3" # Replace with your actual GCP project ID -region = "us-central1" # Default region, change if needed +project_id = "apigee-gke-example3" # Replace with your actual GCP project ID +region = "us-central1" # Default region, change if needed # Apigee Configuration -apigee_org_name = "apigee-gke-example3" # Must be unique across all Apigee organizations -apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) -apigee_envgroup_name = "dev-group" # Environment group name -cluster_name = "apigee" # Kubernetes cluster name -apigee_namespace = "apigee" # Kubernetes namespace for Apigee components -apigee_version = "1.15.0" # Apigee Hybrid version -apigee_org_display_name = "My Company Apigee Organization" -apigee_env_display_name = "Development Environment" -apigee_instance_name = "apigee-instance" -apigee_cassandra_replica_count = 3 # Number of Cassandra replicas (recommended: 3 for production) +apigee_org_name = "apigee-gke-example3" # Must be unique across all Apigee organizations +apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) +apigee_envgroup_name = "dev-group" # Environment group name +cluster_name = "apigee" # Kubernetes cluster name +apigee_namespace = "apigee" # Kubernetes namespace for Apigee components +apigee_version = "1.15.0" # Apigee Hybrid version +apigee_org_display_name = "My Company Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 3 # Number of Cassandra replicas (recommended: 3 for production) # Hostnames for Apigee Environment Group # These are the domains that will be used to access your APIs hostnames = [ - "api.mycompany.com", # Production API endpoint - "api-dev.mycompany.com" # Development API endpoint + "api.mycompany.com", # Production API endpoint + "api-dev.mycompany.com" # Development API endpoint ] #TLS related variable @@ -46,8 +46,8 @@ tls_apigee_self_signed = true #Load Balancer IP #apigee_lb_ip="35.188.116.91" -create_org=false -apigee_install=true +create_org = false +apigee_install = true # Ingress Configuration ingress_name = "apigee-ingress" @@ -56,7 +56,7 @@ ingress_svc_annotations = { # For AWS: # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" - + # For GCP: #"networking.gke.io/load-balancer-type": "Internal" @@ -71,5 +71,5 @@ ingress_svc_annotations = { # service_template_path = "../apigee-hybrid-core/apigee-service-template.yaml" # Billing Configuration -billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" +billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" # Note: For production use, set this to "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf index 7458b10e4..841ac6d36 100644 --- a/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf +++ b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf @@ -130,7 +130,7 @@ variable "billing_type" { description = "The billing type for the Apigee organization" type = string default = "EVALUATION" -} +} variable "tls_apigee_self_signed" { description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." type = bool From 3ca5f2ea4afbb029dba28612b288fdc3c40721a4 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 19:31:09 -0700 Subject: [PATCH 7/9] chore: Linting error fixes --- .../apigee-hybrid-terraform/.mega-linter.yml | 2 - .../apigee-service-template.yaml | 20 +-- .../overrides-templates.yaml | 90 +++++----- .../apigee-hybrid-core/setup_apigee.sh | 168 +++++++++--------- .../apply_org_policies.sh | 2 +- .../diagram/aks_draw.py | 40 ++--- .../diagram/gke_draw.py | 42 +++-- 7 files changed, 185 insertions(+), 179 deletions(-) delete mode 100644 tools/apigee-hybrid-terraform/.mega-linter.yml diff --git a/tools/apigee-hybrid-terraform/.mega-linter.yml b/tools/apigee-hybrid-terraform/.mega-linter.yml deleted file mode 100644 index c949ffe08..000000000 --- a/tools/apigee-hybrid-terraform/.mega-linter.yml +++ /dev/null @@ -1,2 +0,0 @@ -DISABLE_LINTERS: - - TERRAFORM_TERRASCAN diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml index 89180df9e..3347ecf94 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/apigee-service-template.yaml @@ -21,17 +21,17 @@ metadata: namespace: ${apigee_namespace} spec: ports: - - name: status-port - port: 15021 - protocol: TCP - targetPort: 15021 - - name: https - port: 443 - protocol: TCP - targetPort: 8443 + - name: status-port + port: 15021 + protocol: TCP + targetPort: 15021 + - name: https + port: 443 + protocol: TCP + targetPort: 8443 selector: - app: apigee-ingressgateway #required + app: apigee-ingressgateway # required ingress_name: ${ingress_name} org: ${org_name} type: LoadBalancer - loadBalancerIP: ${apigee_lb_ip} \ No newline at end of file + loadBalancerIP: ${apigee_lb_ip} diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml index 475c33c2e..a38924792 100644 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/overrides-templates.yaml @@ -15,7 +15,7 @@ # limitations under the License. instanceID: "${instance_id}" -namespace: ${apigee_namespace} # Usually "apigee" +namespace: ${apigee_namespace} # Usually "apigee" gcp: projectID: ${project_id} @@ -23,7 +23,8 @@ gcp: k8sCluster: name: ${cluster_name} - region: ${cluster_location} # Must be the closest Google Cloud region to your cluster. + # Must be the closest Google Cloud region to your cluster. + region: ${cluster_location} org: ${org_name} @@ -32,33 +33,37 @@ enhanceProxyLimits: true # Required if using data residency with hybrid: -# Required for data residency with hybrid and Enhanced per-environment proxy limits: +# Required for data residency with hybrid and Enhanced per-environment +# proxy limits: newDataPipeline: debugSession: true analytics: true envs: -- name: ${environment_name} - serviceAccountPaths: - # Provide the path relative to the apigee-env chart directory. - synchronizer: ${non_prod_service_account_filepath} + - name: ${environment_name} + serviceAccountPaths: + # Provide the path relative to the apigee-env chart directory. + synchronizer: ${non_prod_service_account_filepath} + # For example: "PROJECT_ID-apigee-non-prod.json" + runtime: ${non_prod_service_account_filepath} + # For example: "PROJECT_ID-apigee-non-prod.json" + udca: ${non_prod_service_account_filepath} # For example: "PROJECT_ID-apigee-non-prod.json" - runtime: ${non_prod_service_account_filepath} - # For example: "PROJECT_ID-apigee-non-prod.json" - udca: ${non_prod_service_account_filepath} - # For example: "PROJECT_ID-apigee-non-prod.json" cassandra: hostNetwork: false - # Set to false for single region installations and multi-region installations - # with connectivity between pods in different clusters, for example GKE installations. - # Set to true for multi-region installations with no communication between - # pods in different clusters, for example Google Distributed Cloud on VMware or bare metal, GKE on AWS, - # AKS, EKS, and OpenShift installations. - # See Multi-region deployment: Prerequisites + # Set to false for single region installations and multi-region + # installations with connectivity between pods in different clusters, + # for example GKE installations. + # Set to true for multi-region installations with no communication + # between pods in different clusters, for example Google Distributed + # Cloud on VMware or bare metal, GKE on AWS, AKS, EKS, and OpenShift + # installations. + # See Multi-region deployment: Prerequisites replicaCount: ${cassandra_replica_count} - # Use 1 for non-prod or "demo" installations and multiples of 3 for production. - # See Configure Cassandra for production for guidelines. + # Use 1 for non-prod or "demo" installations and multiples of 3 + # for production. + # See Configure Cassandra for production for guidelines. nodeSelector: @@ -72,19 +77,19 @@ nodeSelector: ingressGateways: -- name: ${ingress_name} # maximum 17 characters. - replicaCountMin: 2 - replicaCountMax: 10 - svcType: ClusterIP + - name: ${ingress_name} # maximum 17 characters. + replicaCountMin: 2 + replicaCountMax: 10 + svcType: ClusterIP virtualhosts: -- name: ${environment_group_name} - selector: - app: apigee-ingressgateway - ingress_name: ${ingress_name} - sslCertPath: certs/${ssl_cert_path} - sslKeyPath: certs/${ssl_key_path} + - name: ${environment_group_name} + selector: + app: apigee-ingressgateway + ingress_name: ${ingress_name} + sslCertPath: certs/${ssl_cert_path} + sslKeyPath: certs/${ssl_key_path} mart: serviceAccountPath: ${non_prod_service_account_filepath} @@ -93,29 +98,30 @@ mart: connectAgent: serviceAccountPath: ${non_prod_service_account_filepath} - # Provide the path relative to the apigee-org chart directory. - # Use the same service account for mart and connectAgent - # For example: "PROJECT_ID-apigee-non-prod.json" + # Provide the path relative to the apigee-org chart directory. + # Use the same service account for mart and connectAgent + # For example: "PROJECT_ID-apigee-non-prod.json" logger: enabled: true - # enabled by default - # See apigee-logger in Service accounts and roles used by hybrid components. + # enabled by default + # See apigee-logger in Service accounts and roles used by hybrid + # components. serviceAccountPath: ${non_prod_service_account_filepath} - # Provide the path relative to the apigee-telemetry chart directory. - # For example: "PROJECT_ID-apigee-non-prod.json" + # Provide the path relative to the apigee-telemetry chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" metrics: serviceAccountPath: ${non_prod_service_account_filepath} - # Provide the path relative to the apigee-telemetry chart directory. - # For example: "PROJECT_ID-apigee-non-prod.json" + # Provide the path relative to the apigee-telemetry chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" udca: serviceAccountPath: ${non_prod_service_account_filepath} - # Provide the path relative to the apigee-org chart directory. - # For example: "PROJECT_ID-apigee-non-prod.json" + # Provide the path relative to the apigee-org chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" watcher: serviceAccountPath: ${non_prod_service_account_filepath} - # Provide the path relative to the apigee-org chart directory. - # For example: "PROJECT_ID-apigee-non-prod.json" \ No newline at end of file + # Provide the path relative to the apigee-org chart directory. + # For example: "PROJECT_ID-apigee-non-prod.json" diff --git a/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh index e1d08ce66..ca687c9a3 100755 --- a/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh +++ b/tools/apigee-hybrid-terraform/apigee-hybrid-core/setup_apigee.sh @@ -124,16 +124,17 @@ setup_apigee() { exit 1 fi - export org_name=$(grep -A 1 'org:' "$OVERRIDES_YAML_PATH" | grep 'org:' | awk '{print $2}') + org_name=$(grep -A 1 'org:' "$OVERRIDES_YAML_PATH" | grep 'org:' | awk '{print $2}') + export org_name # Set up base directories export APIGEE_HYBRID_BASE=output/$org_name/apigee-hybrid export APIGEE_HELM_CHARTS_BASE=helm-charts - mkdir -p $APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE + mkdir -p "$APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE" # Pull Apigee Helm charts - cd $APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE + cd "$APIGEE_HYBRID_BASE/$APIGEE_HELM_CHARTS_BASE" || exit export APIGEE_HELM_CHARTS_HOME=$PWD # Set chart repository and version @@ -141,24 +142,29 @@ setup_apigee() { export CHART_VERSION=${APIGEE_VERSION} # Remove all files in the home directory - rm -rf $APIGEE_HELM_CHARTS_HOME/* + rm -rf "${APIGEE_HELM_CHARTS_HOME:?}"/* # Pull all required Helm charts - helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar - helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar + helm pull "$CHART_REPO/apigee-operator" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-datastore" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-env" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-ingress-manager" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-org" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-redis" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-telemetry" --version "$CHART_VERSION" --untar + helm pull "$CHART_REPO/apigee-virtualhost" --version "$CHART_VERSION" --untar # Get the filename from the path - local apigee_overrides_yaml_filename=$(basename $OVERRIDES_YAML_PATH) - local apigee_service_template_filename=$(basename $SERVICE_TEMPLATE_PATH) - local apigee_sa_key_json_filename=$(basename $SA_KEY_JSON_PATH) - local apigee_envgroup_cert_file_filename=$(basename $ENVGROUP_CERT_PATH) - local apigee_envgroup_private_key_file_filename=$(basename $ENVGROUP_PRIVATE_KEY_PATH) + apigee_overrides_yaml_filename=$(basename "$OVERRIDES_YAML_PATH") + local apigee_overrides_yaml_filename + apigee_service_template_filename=$(basename "$SERVICE_TEMPLATE_PATH") + local apigee_service_template_filename + apigee_sa_key_json_filename=$(basename "$SA_KEY_JSON_PATH") + local apigee_sa_key_json_filename + apigee_envgroup_cert_file_filename=$(basename "$ENVGROUP_CERT_PATH") + local apigee_envgroup_cert_file_filename + apigee_envgroup_private_key_file_filename=$(basename "$ENVGROUP_PRIVATE_KEY_PATH") + local apigee_envgroup_private_key_file_filename echo "apigee_overrides_yaml_filename: $apigee_overrides_yaml_filename" echo "apigee_sa_key_json_filename: $apigee_sa_key_json_filename" @@ -166,35 +172,37 @@ setup_apigee() { echo "apigee_envgroup_private_key_file_filename: $apigee_envgroup_private_key_file_filename" # Copy the overrides.yaml file - cp $OVERRIDES_YAML_PATH $APIGEE_HELM_CHARTS_HOME/$apigee_overrides_yaml_filename - cp $SERVICE_TEMPLATE_PATH $APIGEE_HELM_CHARTS_HOME/$apigee_service_template_filename + cp "$OVERRIDES_YAML_PATH" "$APIGEE_HELM_CHARTS_HOME/$apigee_overrides_yaml_filename" + cp "$SERVICE_TEMPLATE_PATH" "$APIGEE_HELM_CHARTS_HOME/$apigee_service_template_filename" # Copy the sa-key.json file - cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-datastore/$apigee_sa_key_json_filename - cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/$apigee_sa_key_json_filename - cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-org/$apigee_sa_key_json_filename - cp -fr $SA_KEY_JSON_PATH $APIGEE_HELM_CHARTS_HOME/apigee-env/$apigee_sa_key_json_filename + cp -fr "$SA_KEY_JSON_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-datastore/$apigee_sa_key_json_filename" + cp -fr "$SA_KEY_JSON_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/$apigee_sa_key_json_filename" + cp -fr "$SA_KEY_JSON_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-org/$apigee_sa_key_json_filename" + cp -fr "$SA_KEY_JSON_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-env/$apigee_sa_key_json_filename" - mkdir -p $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/ + mkdir -p "$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/" # Copy the cert files - cp -fr $ENVGROUP_CERT_PATH $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_cert_file_filename - cp -fr $ENVGROUP_PRIVATE_KEY_PATH $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_private_key_file_filename + cp -fr "$ENVGROUP_CERT_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_cert_file_filename" + cp -fr "$ENVGROUP_PRIVATE_KEY_PATH" "$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/certs/$apigee_envgroup_private_key_file_filename" } create_namespace() { local apigee_namespace=$1 - if ! kubectl get namespace $apigee_namespace &>/dev/null; then - kubectl create namespace $apigee_namespace + if ! kubectl get namespace "$apigee_namespace" &>/dev/null; then + kubectl create namespace "$apigee_namespace" fi } enable_control_plane_access() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - local org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + local org_name - export TOKEN=$(gcloud auth application-default print-access-token) + TOKEN=$(gcloud auth application-default print-access-token) + export TOKEN curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ @@ -211,7 +219,7 @@ enable_control_plane_access() { } install_crd() { - kubectl apply -k $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ \ + kubectl apply -k "$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/" \ --server-side \ --force-conflicts \ --validate=false @@ -228,83 +236,83 @@ install_operator() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit helm upgrade operator apigee-operator/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" #Wait for operator to be ready - kubectl wait --for=condition=ready pod -l app=apigee-controller -n $apigee_namespace --timeout=120s + kubectl wait --for=condition=ready pod -l app=apigee-controller -n "$apigee_namespace" --timeout=120s } install_datastore() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit helm upgrade datastore apigee-datastore/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" } install_telemetry() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit helm upgrade telemetry apigee-telemetry/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" } install_redis() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit helm upgrade redis apigee-redis/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" } install_ingress_manager() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" } install_org() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - local org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + org_name=$(grep -A 1 'org:' "$apigee_overrides_yaml_path" | grep 'org:' | awk '{print $2}') + local org_name + cd "$APIGEE_HELM_CHARTS_HOME" || exit - cd $APIGEE_HELM_CHARTS_HOME - - helm upgrade $org_name apigee-org/ \ + helm upgrade "$org_name" apigee-org/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - -f $apigee_overrides_yaml_path + -f "$apigee_overrides_yaml_path" } install_env() { @@ -312,18 +320,18 @@ install_env() { local apigee_overrides_yaml_path=$2 #read the env_name from the overrides.yaml file - local apigee_env_name=$(grep -A 1 'envs:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') - + apigee_env_name=$(grep -A 1 'envs:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') + local apigee_env_name local env_release_name="env-release-$apigee_env_name" - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit - helm upgrade $env_release_name apigee-env/ \ + helm upgrade "$env_release_name" apigee-env/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - --set env=$apigee_env_name \ - -f $apigee_overrides_yaml_path + --set env="$apigee_env_name" \ + -f "$apigee_overrides_yaml_path" } @@ -332,15 +340,16 @@ install_envgroup() { local apigee_overrides_yaml_path=$2 #read the env_group_name from the overrides.yaml file - local apigee_env_group_name=$(grep -A 1 'virtualhosts:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') + apigee_env_group_name=$(grep -A 1 'virtualhosts:' "$apigee_overrides_yaml_path" | grep 'name:' | awk '{print $3}') + local apigee_env_group_name local env_group_release_name="env-group-release-$apigee_env_group_name" - helm upgrade $env_group_release_name apigee-virtualhost/ \ + helm upgrade "$env_group_release_name" apigee-virtualhost/ \ --install \ - --namespace $apigee_namespace \ + --namespace "$apigee_namespace" \ --atomic \ - --set envgroup=$apigee_env_group_name \ - -f $apigee_overrides_yaml_path + --set envgroup="$apigee_env_group_name" \ + -f "$apigee_overrides_yaml_path" } @@ -348,10 +357,10 @@ setup_ingress() { local apigee_namespace=$1 local apigee_overrides_yaml_path=$2 - cd $APIGEE_HELM_CHARTS_HOME + cd "$APIGEE_HELM_CHARTS_HOME" || exit #apply the apigee-service.yaml file - kubectl apply -f $APIGEE_HELM_CHARTS_HOME/apigee-service.yaml + kubectl apply -f "$APIGEE_HELM_CHARTS_HOME/apigee-service.yaml" } @@ -367,8 +376,7 @@ setup_kubeconfig() { fi fi echo "Checking if kubectl is configured correctly" - kubectl get nodes - if [ $? -ne 0 ]; then + if ! kubectl get nodes; then echo "Failed to get nodes" exit 1 fi @@ -378,19 +386,19 @@ setup_kubeconfig() { main() { setup_apigee setup_kubeconfig - create_namespace $APIGEE_NAMESPACE - enable_control_plane_access $APIGEE_NAMESPACE "overrides.yaml" + create_namespace "$APIGEE_NAMESPACE" + enable_control_plane_access "$APIGEE_NAMESPACE" "overrides.yaml" install_crd install_cert_manager - install_operator $APIGEE_NAMESPACE "overrides.yaml" - install_datastore $APIGEE_NAMESPACE "overrides.yaml" - install_telemetry $APIGEE_NAMESPACE "overrides.yaml" - install_redis $APIGEE_NAMESPACE "overrides.yaml" - install_ingress_manager $APIGEE_NAMESPACE "overrides.yaml" - install_org $APIGEE_NAMESPACE "overrides.yaml" - install_env $APIGEE_NAMESPACE "overrides.yaml" - install_envgroup $APIGEE_NAMESPACE "overrides.yaml" - setup_ingress $APIGEE_NAMESPACE "overrides.yaml" + install_operator "$APIGEE_NAMESPACE" "overrides.yaml" + install_datastore "$APIGEE_NAMESPACE" "overrides.yaml" + install_telemetry "$APIGEE_NAMESPACE" "overrides.yaml" + install_redis "$APIGEE_NAMESPACE" "overrides.yaml" + install_ingress_manager "$APIGEE_NAMESPACE" "overrides.yaml" + install_org "$APIGEE_NAMESPACE" "overrides.yaml" + install_env "$APIGEE_NAMESPACE" "overrides.yaml" + install_envgroup "$APIGEE_NAMESPACE" "overrides.yaml" + setup_ingress "$APIGEE_NAMESPACE" "overrides.yaml" } # Run main function diff --git a/tools/apigee-hybrid-terraform/apply_org_policies.sh b/tools/apigee-hybrid-terraform/apply_org_policies.sh index 64ea33af5..79e374f8a 100755 --- a/tools/apigee-hybrid-terraform/apply_org_policies.sh +++ b/tools/apigee-hybrid-terraform/apply_org_policies.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -read -p "Please enter your Google Cloud project ID: " project +read -r -p "Please enter your Google Cloud project ID: " project export project if [ -z "$project" ]; then diff --git a/tools/apigee-hybrid-terraform/diagram/aks_draw.py b/tools/apigee-hybrid-terraform/diagram/aks_draw.py index 1ab672533..11236fd19 100644 --- a/tools/apigee-hybrid-terraform/diagram/aks_draw.py +++ b/tools/apigee-hybrid-terraform/diagram/aks_draw.py @@ -18,27 +18,26 @@ from diagrams import Diagram, Cluster, Edge from diagrams.gcp.api import Apigee from diagrams.azure.compute import KubernetesServices, VM -from diagrams.azure.network import VirtualNetworks, Subnets, LoadBalancers -from diagrams.gcp.storage import Storage +from diagrams.azure.network import LoadBalancers from diagrams.onprem.client import Users from diagrams.onprem.network import Internet from diagrams.gcp.operations import Logging, Monitoring -with Diagram("Apigee Hybrid on Azure AKS", - show=False, - direction="LR", - outformat="png", - filename="apigee_hybrid_aks", - graph_attr={ - "splines": "ortho", - "nodesep": "0.8", - "ranksep": "0.8", - "pad": "0.5", - "fontsize": "45", - "fontname": "Arial", - "fontcolor": "#2D3436", - "bgcolor": "white" - }): +with Diagram("Apigee Hybrid on Azure AKS", + show=False, + direction="LR", + outformat="png", + filename="apigee_hybrid_aks", + graph_attr={ + "splines": "ortho", + "nodesep": "0.8", + "ranksep": "0.8", + "pad": "0.5", + "fontsize": "45", + "fontname": "Arial", + "fontcolor": "#2D3436", + "bgcolor": "white" + }): # Client client = Users("Web/Mobile\nClients") @@ -48,10 +47,10 @@ lb = LoadBalancers("Network Load Balancer") aks = KubernetesServices("AKS Cluster") nat = Internet("NAT Gateway") - + with Cluster("Node Pools", graph_attr={"fontsize": "14"}): runtime_pool = VM("Runtime Pool\n(Standard_D4s_v3)") - data_pool = VM("Data Pool\n(Standard_D4s_v3)") + data_pool = VM("Data Pool\n(Standard_D4s_v3)") aks >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> runtime_pool lb >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> aks @@ -65,11 +64,8 @@ logging = Logging("Cloud Logging") monitoring = Monitoring("Cloud Monitoring") - # Connections client >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> lb nat >> Edge(label="Google APIs", fontsize="12") >> apigee nat >> Edge(label="Google APIs", fontsize="12") >> logging nat >> Edge(label="Google APIs", fontsize="12") >> monitoring - - diff --git a/tools/apigee-hybrid-terraform/diagram/gke_draw.py b/tools/apigee-hybrid-terraform/diagram/gke_draw.py index 70b1e0c66..c4868dfdc 100644 --- a/tools/apigee-hybrid-terraform/diagram/gke_draw.py +++ b/tools/apigee-hybrid-terraform/diagram/gke_draw.py @@ -19,26 +19,24 @@ from diagrams.gcp.api import Apigee from diagrams.gcp.compute import GKE, ComputeEngine from diagrams.gcp.network import LoadBalancing, VPC, Router -from diagrams.gcp.storage import Storage from diagrams.onprem.client import Users -from diagrams.onprem.network import Internet from diagrams.gcp.operations import Logging, Monitoring -with Diagram("Apigee Hybrid on Google Kubernetes Engine", - show=False, - direction="LR", - outformat="png", - filename="apigee_hybrid_gke", - graph_attr={ - "splines": "ortho", - "nodesep": "0.8", - "ranksep": "0.8", - "pad": "0.5", - "fontsize": "45", - "fontname": "Arial", - "fontcolor": "#2D3436", - "bgcolor": "white" - }): +with Diagram("Apigee Hybrid on Google Kubernetes Engine", + show=False, + direction="LR", + outformat="png", + filename="apigee_hybrid_gke", + graph_attr={ + "splines": "ortho", + "nodesep": "0.8", + "ranksep": "0.8", + "pad": "0.5", + "fontsize": "45", + "fontname": "Arial", + "fontcolor": "#2D3436", + "bgcolor": "white" + }): # Client client = Users("Web/Mobile\nClients") @@ -46,15 +44,15 @@ with Cluster("Google Cloud Platform", graph_attr={"fontsize": "20"}): with Cluster("VPC Network", graph_attr={"fontsize": "16"}): vpc = VPC("VPC Network") - + with Cluster("GKE Cluster", graph_attr={"fontsize": "16"}): lb = LoadBalancing("Cloud Load Balancer") gke = GKE("GKE Cluster") nat = Router("Cloud NAT") - + with Cluster("Node Pools", graph_attr={"fontsize": "14"}): runtime_pool = ComputeEngine("Runtime Pool\n(e2-standard-4)") - data_pool = ComputeEngine("Data Pool\n(e2-standard-4)") + data_pool = ComputeEngine("Data Pool\n(e2-standard-4)") gke >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> runtime_pool lb >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> gke @@ -66,9 +64,9 @@ logging = Logging("Cloud Logging") monitoring = Monitoring("Cloud Monitoring") - # Connections client >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> lb nat >> Edge(label="Google APIs", fontsize="12") >> apigee nat >> Edge(label="Google APIs", fontsize="12") >> logging - nat >> Edge(label="Google APIs", fontsize="12") >> monitoring \ No newline at end of file + nat >> Edge(label="Google APIs", fontsize="12") >> monitoring + \ No newline at end of file From 4ffe2231cf9704195a5ce85ae6b9aaf2097475c3 Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 22 Aug 2025 20:37:35 -0700 Subject: [PATCH 8/9] chore: Linter Fixes --- .github/workflows/devrel-static-checks.yml | 1 + tools/apigee-hybrid-terraform/diagram/gke_draw.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/devrel-static-checks.yml b/.github/workflows/devrel-static-checks.yml index 7f2fe3be2..1a4c9b49b 100644 --- a/.github/workflows/devrel-static-checks.yml +++ b/.github/workflows/devrel-static-checks.yml @@ -75,6 +75,7 @@ jobs: GROOVY_NPM_GROOVY_LINT_FILTER_REGEX_EXCLUDE: "Jenkinsfile" MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true PYTHON_MYPY_DISABLE_ERRORS: true + VALIDATE_TERRAFORM_TERRASCAN: false commit-messages: name: Conventional Commits Lint diff --git a/tools/apigee-hybrid-terraform/diagram/gke_draw.py b/tools/apigee-hybrid-terraform/diagram/gke_draw.py index c4868dfdc..eda62009c 100644 --- a/tools/apigee-hybrid-terraform/diagram/gke_draw.py +++ b/tools/apigee-hybrid-terraform/diagram/gke_draw.py @@ -69,4 +69,3 @@ nat >> Edge(label="Google APIs", fontsize="12") >> apigee nat >> Edge(label="Google APIs", fontsize="12") >> logging nat >> Edge(label="Google APIs", fontsize="12") >> monitoring - \ No newline at end of file From 74b5128b0753f7e4f3d389b3e0f9ffb0d6fb184b Mon Sep 17 00:00:00 2001 From: Rajesh Mishra Date: Fri, 19 Sep 2025 10:52:56 -0700 Subject: [PATCH 9/9] chore: Linter Fixes --- .github/workflows/devrel-static-checks.yml | 1 - tools/apigee-hybrid-terraform/pipeline.sh | 20 +++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devrel-static-checks.yml b/.github/workflows/devrel-static-checks.yml index 1a4c9b49b..7f2fe3be2 100644 --- a/.github/workflows/devrel-static-checks.yml +++ b/.github/workflows/devrel-static-checks.yml @@ -75,7 +75,6 @@ jobs: GROOVY_NPM_GROOVY_LINT_FILTER_REGEX_EXCLUDE: "Jenkinsfile" MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true PYTHON_MYPY_DISABLE_ERRORS: true - VALIDATE_TERRAFORM_TERRASCAN: false commit-messages: name: Conventional Commits Lint diff --git a/tools/apigee-hybrid-terraform/pipeline.sh b/tools/apigee-hybrid-terraform/pipeline.sh index 32ee863ed..d11f5b6aa 100755 --- a/tools/apigee-hybrid-terraform/pipeline.sh +++ b/tools/apigee-hybrid-terraform/pipeline.sh @@ -13,4 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -echo "no pipeline implemented" +printf "Running hybrid terraform on GKE" + +cd apigee-on-gke +//Get GCP Project ID +GCP_PROJECT_ID=$(gcloud config get-value project) + +//Set GCP Project ID in terraform.tfvars +sed -i "s/project_id = \"\"/project_id = \"$GCP_PROJECT_ID\"/g" terraform.tfvars +sed -i "s/apigee_org_name = \"\"/apigee_org_name = \"$GCP_PROJECT_ID\"/g" terraform.tfvars + +terraform init +terraform plan +terraform apply --auto-approve + +#destroy terraform + +terraform destroy --auto-approve + +

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 z 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 z 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 Mr2e2#!8G9i0UzZ5XaE2J literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/Images/placeholder.text b/tools/apigee-hybrid-terraform/apigee-on-eks/Images/placeholder.text new file mode 100644 index 000000000..731f0e74e --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/Images/placeholder.text @@ -0,0 +1 @@ +Adding images folder diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/Images/tf-plan.png b/tools/apigee-hybrid-terraform/apigee-on-eks/Images/tf-plan.png new file mode 100644 index 0000000000000000000000000000000000000000..b437f9648f8e443835a16316d419ad5c85aa48d3 GIT binary patch literal 99587 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 pjGZpU&dx;+2@ literal 0 HcmV?d00001 diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/README.md b/tools/apigee-hybrid-terraform/apigee-on-eks/README.md new file mode 100644 index 000000000..dab13f55a --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/README.md @@ -0,0 +1,227 @@ +## Disclaimer +This tool is open-source software. It is not an officially supported Google product. It is not a part of Apigee, or any other officially supported Google Product. + +## How to Setup Apigee hybrid on AWS EKS Clusters using Terraform + +The terraform configuration defines a new VPC in which to provision the cluster, and uses the public EKS module to create the required resources, including Auto Scaling Groups, security groups, and IAM Roles and Policies. +Open the main.tf file to review the module configuration. The eks_managed_node_groups parameter configures the cluster with three nodes across two node groups. + +### Architecture + +The following diagram illustrates the architecture of Apigee Hybrid on Azure AKS: + +![Apigee Hybrid on EKS Architecture](Images/aws-objects.png) + + + +## Getting Started + +1. **Setup an AWS Account** if you dont have one as described [here](https://aws.amazon.com/free/?gclid=Cj0KCQiA4fi7BhC5ARIsAEV1YibM5aQfcEpKMPjPwUGl-JqNl6fp9-LoTxpHhH2RFh59MFc1_yETcCQaAmHGEALw_wcB&trk=c8882cbf-4c23-4e67-b098-09697e14ffd9&sc_channel=ps&ef_id=Cj0KCQiA4fi7BhC5ARIsAEV1YibM5aQfcEpKMPjPwUGl-JqNl6fp9-LoTxpHhH2RFh59MFc1_yETcCQaAmHGEALw_wcB:G:s&s_kwcid=AL!4422!3!453053794281!e!!g!!create%20aws%20account!10706954804!104359293503&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all) + +2. **Create an IAM user and a cli user** As described [here](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) ( we would use the cli user credentials when configuring our aws cli) + +3. **Download and install Terraform** to your local terminal as described [here](https://developer.hashicorp.com/terraform/install). +4. **Download and install the EKS CLI (aws)**: + ```bash + # Check if aws CLI is installed + aws --version + + # If not installed, follow instructions at: + # https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html + # Ensure you have the latest version + ``` +5. **Download and install Helm** (version 3.15+ recommended, check Apigee docs for specific version compatibility). +6. **Install Google Cloud SDK**: + ```bash + # Check if gcloud is installed + gcloud version + + # If not installed, follow instructions at: + # https://cloud.google.com/sdk/docs/install + # Ensure you have the latest version + ``` +7. **Install kubectl**: + ```bash + # Check if kubectl is installed + kubectl version --client + + # If not installed, follow instructions at: + # https://kubernetes.io/docs/tasks/tools/install-kubectl/ + # Ensure version 1.29 or higher + ``` +8. Run `terraform init` to initialize Terraform and download necessary providers. + + +## Pre-Cluster Setup Steps + +1. Run aws configure - Run aws configure command to configure settings that the AWS Command Line Interface (AWS CLI) uses to interact with AWS. The credentials and config file are created/updated when you run the command aws configure. The credentials file is located at ~/.aws/credentials on Linux or macOS, or at C:\Users\USERNAME\.aws\credentials on Windows. + Output should be similar to below + ![AWS Config](Images/aws-config.png) + +2. **Configure Google Cloud Authentication**: + There are two ways to authenticate with Google Cloud: + + a) **User Account Authentication**: + * Ensure you have the Google Cloud SDK (gcloud) installed and configured + * Run `gcloud auth application-default login` to authenticate + * Set your project: `gcloud config set project ` + + b) **Service Account Authentication**: + * Create a service account with appropriate permissions (Owner/Editor) + * Download the service account key JSON file + * Set the environment variable: `export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-key.json"` + * Run `gcloud auth activate-service-account --key-file="path/to/your/service-account-key.json"` + * Set your project: `gcloud config set project ` + * Alternatively, you can specify the credentials file path in your Terraform provider configuration: + ```hcl + provider "google" { + credentials = file("path/to/your/service-account-key.json") + project = "" + } + ``` + + Note: + * Ensure that Organization Policy is not disabled to create service account and associated Service Account Key + * Ensure that the user or service account performing terraform has the permissions to access Google Cloud resources. While not recommended but roles like `roles/editor` or `roles/owner` should ensure all tasks completes successfully + + +3. **Customize the Terraform configuration files**: + + Review and update the `terraform.tfvars` file with your specific values. Below is a table of all supported variables, their descriptions, and example/default values: + + | Variable Name | Description | Example/Default Value | + |--------------------------------|-----------------------------------------------------------------------------|--------------------------------------| + | eks_region | AWS region for EKS cluster | "us-west-1" | + | project_id | The GCP project ID | "apigee-eks-example2" | + | region | The GCP region for resources | "us-west1" | + | apigee_org_name | The name of the Apigee organization | "apigee-eks-example2" | + | apigee_env_name | The name of the Apigee environment | "dev" | + | apigee_envgroup_name | The name of the Apigee environment group | "dev-group" | + | cluster_name | Name of the EKS cluster | "apigee-eks" | + | apigee_namespace | Kubernetes namespace for Apigee components | "apigee" | + | apigee_version | Apigee Hybrid version | "1.14.2-hotfix.1" | + | apigee_org_display_name | Display name for the Apigee organization | "My Company Apigee Organization" | + | apigee_env_display_name | Display name for the Apigee environment | "Development Environment" | + | apigee_instance_name | Name of the Apigee instance | "apigee-instance" | + | apigee_cassandra_replica_count | Number of Cassandra replicas (recommended: 3 for production) | 1 | + | hostnames | List of hostnames for the Apigee environment group | ["api.mycompany.com", "api-dev.mycompany.com"] | + | tls_apigee_self_signed | Use self-signed certificates for Apigee TLS (true/false) | true | + | tls_apigee_cert_path | Path to your TLS certificate (if not self-signed) | "path/to/your/tls.crt" | + | tls_apigee_key_path | Path to your TLS private key (if not self-signed) | "path/to/your/tls.key" | + | apigee_lb_ip | IP address for the Apigee Load Balancer (optional, usually auto-assigned) | "" | + | create_org | Whether to create a new Apigee organization (true/false) | true | + | apigee_install | Whether to install Apigee components (true/false) | true | + | ingress_name | Name of the ingress | "apigee-ingress" | + | ingress_svc_annotations | Annotations for the ingress service (map) | { ... } | + | overrides_template_path | Path to the overrides template file (optional) | "../apigee-hybrid-core/overrides-templates.yaml" | + | service_template_path | Path to the service template file (optional) | "../apigee-hybrid-core/apigee-service-template.yaml" | + | billing_type | The billing type for the Apigee organization | "EVALUATION" or "PAID" | + + > **Tip:** You can copy `terraform.tfvars.sample` to `terraform.tfvars` and edit it with your values. + + Example: + ```hcl + project_id = "apigee-eks-example2" + region = "us-west1" + apigee_org_name = "apigee-eks-example2" + # ... + ``` + +4. **Run `terraform plan`**: + Validate the list of Azure resources to be created. The exact count will vary based on your configuration. Review the plan carefully to ensure it matches your expectations. + ![Terraform Plan](Images/tf-plan.png) + +5. **Run `terraform apply`**: + This will provision the AWS resources and create the EKS cluster. Confirm the apply when prompted. This process can take several minutes. + +## What Happens During Apply + +When you run `terraform apply`, the following sequence of events occurs: + +1. **AWS Infrastructure Setup**: + - Creates a new VPC with public and private subnets across two availability zones + - Sets up NAT Gateway for private subnet internet access + - Configures security groups and IAM roles + - Creates an EKS cluster with managed node groups: + - `apigee-runtime` node group with 2 t3.xlarge instances + - `apigee-data` node group with 1 t3.xlarge instance + - Installs the AWS EBS CSI driver for persistent storage + +2. **GCP/Apigee Setup** (if `create_org=true`): + - Enables required Google Cloud APIs (Apigee, IAM, Compute, etc.) + - Creates an Apigee organization in your GCP project + - Sets up an Apigee environment (e.g., "dev") + - Creates an environment group with specified hostnames + - Attaches the environment to the environment group + +3. **Service Account and Certificate Setup**: + - Creates a GCP service account for Apigee Hybrid + - Generates a service account key + - Creates self-signed TLS certificates for the environment group hostnames + - Saves all credentials and certificates to the `output/` directory + +4. **Apigee Hybrid Installation** (if `apigee_install=true`): + - Creates the Apigee namespace in the EKS cluster + - Enables control plane access for the service account + - Installs required Kubernetes components: + - Custom Resource Definitions (CRDs) + - cert-manager + - Apigee operator + - Deploys Apigee components in sequence: + - Datastore (Cassandra) + - Telemetry + - Redis + - Ingress Manager + - Organization + - Environment + - Environment Group + - Sets up the ingress gateway with the specified configuration + +The entire process typically takes 15-30 minutes to complete, depending on your network speed and the size of the cluster. + +## Accessing the Cluster + +Terraform generates kubeconfig specific to the output directory and it can be found at output//apiigee-kubeconfig. + +To access the cluster, configure your `kubectl` to use the generated kubeconfig file: +```bash +export KUBECONFIG=output//apigee-kubeconfig +``` + +```bash +kubectl get pods -A +``` + + + +## Accessing Apigee Endpoint + +* Get the ingress IP/DNS to access Apigee +```bash +kubectl get pods -n apigee +kubectl get svc dev-group -n apigee -o jsonpath='{.status.loadBalancer.ingress[0].ip}' +``` +* Add the ingress IP/DNS to Apigee Environment Group Hostnames through Apigee UI + +* Access the healthz endpoint +```bash +curl -H 'User-Agent: GoogleHC' https://my-eks-alb-123456.us-west-2.elb.amazonaws.com/healthz/ingress -k +``` + +## Multiple clusters + +To create multiple clusters perform the following steps + +Clone the repo to another folder (or copy existing and delete terraform state files and folder) + +Now repeat from steps 3 above + + + +## Clean Up + +To perform a clean up of the aws resources created by terraform + +Step 1. Delete the aws loadbalancers created ( these get created when the ingress is created and also another one when the kubernetes service in part 3 is created). Alternative to this step would be to import the loadbalancers created manually with terraform import so terraform can manage the destruction of these going forward. + +Step 2. Run terraform destroy to delete the aws resources created by terraform diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh new file mode 100755 index 000000000..0f50438fc --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/clean_up.sh @@ -0,0 +1,3 @@ +rm -fr .terraform* +rm -fr terraform.tfstate* +rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf new file mode 100644 index 000000000..91f875a92 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/main.tf @@ -0,0 +1,243 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +provider "aws" { + region = var.eks_region +} + +# Filter out local zones, which are not currently supported +# with managed node groups +data "aws_availability_zones" "available" { + filter { + name = "opt-in-status" + values = ["opt-in-not-required"] + } +} + +locals { + cluster_name = "hybrid-eks-${random_string.suffix.result}" +} + +resource "random_string" "suffix" { + length = 8 + special = false + keepers = { + # This key can be anything, e.g., "static_suffix_trigger" + # As long as the value "1" (or any static value) doesn't change, + # the random string will only be generated once and then stored. + # If you ever need to force a new suffix, change this value. + _ = "1" + } +} + +module "vpc" { + source = "terraform-aws-modules/vpc/aws" + version = "5.8.1" + + name = "hybrid-vpc" + + cidr = "10.0.0.0/16" + azs = slice(data.aws_availability_zones.available.names, 0, 2) + + private_subnets = ["10.0.1.0/24", "10.0.2.0/24"] + public_subnets = ["10.0.3.0/24", "10.0.4.0/24"] + + enable_nat_gateway = true + single_nat_gateway = true + enable_dns_hostnames = true + + public_subnet_tags = { + "kubernetes.io/role/elb" = 1 + } + + private_subnet_tags = { + "kubernetes.io/role/internal-elb" = 1 + } +} + +module "eks" { + source = "terraform-aws-modules/eks/aws" + version = "20.37.1" + + cluster_name = local.cluster_name + cluster_version = "1.29" + + cluster_endpoint_public_access = true + enable_cluster_creator_admin_permissions = true + + vpc_id = module.vpc.vpc_id + subnet_ids = module.vpc.private_subnets + + eks_managed_node_group_defaults = { + ami_type = "AL2_x86_64" + } + + eks_managed_node_groups = { + one = { + name = "apigee-runtime" + + instance_types = ["t3.xlarge"] + + min_size = 2 + max_size = 2 + desired_size = 2 + tags = { + "cloud.google.com/gke-nodepool" = "apigee-runtime" + } + labels = { + "nodepool-purpose" = "apigee-runtime" + "cloud.google.com/gke-nodepool" = "apigee-runtime" + } + } + + two = { + name = "apigee-data" + + instance_types = ["t3.xlarge"] + + min_size = 1 + max_size = 1 + desired_size = 1 + tags = { + "cloud.google.com/gke-nodepool" = "apigee-data" + } + labels = { + "nodepool-purpose" = "apigee-data" + "cloud.google.com/gke-nodepool" = "apigee-data" + } + } + } + + depends_on = [module.vpc] +} + +# https://aws.amazon.com/blogs/containers/amazon-ebs-csi-driver-is-now-generally-available-in-amazon-eks-add-ons/ +data "aws_iam_policy" "ebs_csi_policy" { + arn = "arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy" +} + +module "irsa-ebs-csi" { + source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc" + version = "5.39.0" + + create_role = true + role_name = "AmazonEKSTFEBSCSIRole-${local.cluster_name}" + provider_url = module.eks.oidc_provider + role_policy_arns = [data.aws_iam_policy.ebs_csi_policy.arn] + oidc_fully_qualified_subjects = ["system:serviceaccount:kube-system:ebs-csi-controller-sa"] + + depends_on = [module.eks] +} + +# Add EBS CSI driver addon after IRSA role is created +resource "aws_eks_addon" "ebs_csi" { + cluster_name = module.eks.cluster_name + addon_name = "aws-ebs-csi-driver" + service_account_role_arn = module.irsa-ebs-csi.iam_role_arn + + depends_on = [module.irsa-ebs-csi] +} + +# Create output directory if it doesn't exist +resource "null_resource" "create_output_dir" { + provisioner "local-exec" { + command = "mkdir -p ${path.module}/output/${var.project_id}" + } +} + +# Generate kubeconfig for EKS +resource "local_file" "kubeconfig" { + content = <<-KUBECONFIG + apiVersion: v1 + kind: Config + current-context: ${module.eks.cluster_name} + contexts: + - context: + cluster: ${module.eks.cluster_name} + user: ${module.eks.cluster_name} + name: ${module.eks.cluster_name} + clusters: + - cluster: + certificate-authority-data: ${base64encode(module.eks.cluster_certificate_authority_data)} + server: ${module.eks.cluster_endpoint} + name: ${module.eks.cluster_name} + users: + - name: ${module.eks.cluster_name} + user: + exec: + apiVersion: client.authentication.k8s.io/v1beta1 + command: aws + args: + - eks + - get-token + - --cluster-name + - ${module.eks.cluster_name} + - --region + - ${var.eks_region} + KUBECONFIG + filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" + file_permission = "0600" + + depends_on = [ + null_resource.create_output_dir, + module.eks + ] +} + +resource "null_resource" "cluster_setup" { + triggers = { + timestamp = timestamp() + } + + # Use local-exec provisioner to run a script to configure kubectl + provisioner "local-exec" { + command = "export KUBECONFIG=${abspath("${path.module}/output/${var.project_id}/apigee-kubeconfig")} && aws eks update-kubeconfig --name ${local.cluster_name} --region ${var.eks_region}" + } + + depends_on = [module.eks, aws_eks_addon.ebs_csi, local_file.kubeconfig] +} + + +# Add Apigee Hybrid module +module "apigee_hybrid" { + source = "../apigee-hybrid-core" + + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = local.cluster_name + kubeconfig = abspath("${local_file.kubeconfig.filename}") # Pass the kubeconfig file path to core module + + + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames + apigee_cassandra_replica_count = var.apigee_cassandra_replica_count + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" + + apigee_lb_ip = var.apigee_lb_ip + #TLS related variables + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path + + + apigee_install = var.apigee_install + create_org = var.create_org + billing_type = var.billing_type + + depends_on = [ + module.eks, + aws_eks_addon.ebs_csi, + local_file.kubeconfig, + null_resource.cluster_setup, + ] +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf new file mode 100644 index 000000000..bc4f41d74 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/outputs.tf @@ -0,0 +1,77 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +output "cluster_endpoint" { + description = "Endpoint for EKS control plane" + value = module.eks.cluster_endpoint +} + +output "cluster_security_group_id" { + description = "Security group ids attached to the cluster control plane" + value = module.eks.cluster_security_group_id +} + +output "eks_region" { + description = "AWS region" + value = var.eks_region +} + +output "cluster_name" { + description = "Kubernetes Cluster Name" + value = module.eks.cluster_name +} + +output "eks_kubeconfig_path" { + description = "Path to the generated kubeconfig file." + value = local_file.kubeconfig.filename +} + +output "apigee_hybrid_non_prod_sa_email" { + description = "Email of the Apigee Non-Prod service account from the core module." + value = module.apigee_hybrid.apigee_non_prod_sa_email +} + +output "apigee_hybrid_non_prod_sa_key_path" { + description = "Path to the saved Apigee Non-Prod service account key file from the core module." + value = module.apigee_hybrid.apigee_non_prod_sa_key_path +} + +output "apigee_hybrid_overrides_yaml_path" { + description = "Path to the generated Apigee Hybrid overrides.yaml file from the core module." + value = module.apigee_hybrid.apigee_overrides_yaml_path +} + +output "apigee_hybrid_service_yaml_path" { + description = "Path to the generated Apigee Hybrid apigee-service.yaml file from the core module." + value = module.apigee_hybrid.apigee_service_yaml_path +} + +output "apigee_hybrid_envgroup_private_key_file_path" { + description = "Path to the self-signed private key file for the Apigee envgroup from the core module." + value = module.apigee_hybrid.apigee_envgroup_private_key_file_path +} + +output "apigee_hybrid_envgroup_cert_file_path" { + description = "Path to the self-signed certificate file for the Apigee envgroup from the core module." + value = module.apigee_hybrid.apigee_envgroup_cert_file_path +} + +output "apigee_hybrid_setup_script_executed_trigger" { + description = "Indicates if the Apigee setup script was triggered from the core module." + value = module.apigee_hybrid.apigee_setup_script_executed_trigger +} + +output "apigee_hybrid_organization_id" { + description = "The ID of the Apigee organization from the core module." + value = module.apigee_hybrid.apigee_organization_id +} + +output "apigee_hybrid_environment_name" { + description = "The name of the Apigee environment from the core module." + value = module.apigee_hybrid.apigee_environment_name +} + +output "apigee_hybrid_envgroup_id" { + description = "The ID of the Apigee environment group from the core module." + value = module.apigee_hybrid.apigee_envgroup_id +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf new file mode 100644 index 000000000..9dfc020bc --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tf @@ -0,0 +1,36 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +terraform { + + # cloud { + # workspaces { + # name = "learn-terraform-eks" + # } + # } + + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 5.5.0" + } + + random = { + source = "hashicorp/random" + version = "~> 3.6.1" + } + + tls = { + source = "hashicorp/tls" + version = "~> 4.0.5" + } + + cloudinit = { + source = "hashicorp/cloudinit" + version = "~> 2.3.4" + } + } + + required_version = "~> 1.3" +} + diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars new file mode 100644 index 000000000..54013b403 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars @@ -0,0 +1,62 @@ +# AWS Configuration +eks_region = "us-west-1" # AWS region for EKS cluster + + +# Apigee Configuration +project_id = "apigee-eks-example2" # Replace with your actual GCP project ID +region = "us-west1" #GCP Region +apigee_org_name = "apigee-eks-example2" # Must be unique across all Apigee organizations +apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) +apigee_envgroup_name = "dev-group" # Environment group name +cluster_name = "apigee-eks" # EKS cluster name +apigee_namespace = "apigee" # Kubernetes namespace for Apigee components +apigee_version = "1.15.0" # Apigee Hybrid version +apigee_org_display_name = "My Company Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 1 # Number of Cassandra replicas (recommended: 3 for production) + + +# Hostnames for Apigee Environment Group +# These are the domains that will be used to access your APIs +hostnames = [ + "api.mycompany.com", # Production API endpoint + "api-dev.mycompany.com" # Development API endpoint +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + + +create_org=true +apigee_install=true + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # AWS-specific annotations for Network Load Balancer + #"service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + #"service.beta.kubernetes.io/aws-load-balancer-internal" = "true" + #"service.beta.kubernetes.io/aws-load-balancer-scheme" = "internet-facing" + #"service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled" = "true" + + # Optional: Add these if you need SSL termination + # "service.beta.kubernetes.io/aws-load-balancer-ssl-cert" = "arn:aws:acm:region:account:certificate/certificate-id" + # "service.beta.kubernetes.io/aws-load-balancer-backend-protocol" = "ssl" + # "service.beta.kubernetes.io/aws-load-balancer-ssl-ports" = "443" +} + +# Optional: Paths to template files if you want to use custom templates +# Uncomment and set these if you have custom templates +# overrides_template_path = "../apigee-hybrid-core/overrides-templates.yaml" +# service_template_path = "../apigee-hybrid-core/apigee-service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" +# Note: For production use, set this to "PAID" + diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample new file mode 100644 index 000000000..edb1d6a0a --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/terraform.tfvars.sample @@ -0,0 +1,49 @@ +#EKS Specific Configuration +eks_region = "us-west-1" + +# GCP Configuration +project_id = "your-gcp-project-id" +region = "us-west1" + +# Apigee Configuration +apigee_org_name = "your-org-name" +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +cluster_name = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "My Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 1 + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + +create_org=true +apigee_install=true + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" +} + +# Optional: Paths to template files if you want to use custom templates +# overrides_template_path = "path/to/overrides-template.yaml" +# service_template_path = "path/to/service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # or "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf new file mode 100644 index 000000000..39346f3a6 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-eks/variables.tf @@ -0,0 +1,199 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +variable "aws_region" { + description = "AWS region (legacy variable, use eks_region instead)" + type = string + default = "us-west-1" +} + +variable "eks_region" { + description = "AWS region" + type = string + default = "us-west-1" +} + +variable "cluster_name" { + description = "Name of the EKS cluster" + type = string + default = "hybrid-eks" +} + +variable "vpc_cidr" { + description = "CIDR block for the VPC" + type = string + default = "10.0.0.0/16" +} + +variable "subnet_cidrs" { + description = "Map of subnet CIDR blocks" + type = map(list(string)) + default = { + private = ["10.0.1.0/24", "10.0.2.0/24"] + public = ["10.0.3.0/24", "10.0.4.0/24"] + } +} + +variable "node_groups" { + description = "Map of EKS node group configurations" + type = map(object({ + desired_size = number + min_size = number + max_size = number + instance_type = string + disk_size = number + })) + default = { + runtime = { + desired_size = 2 + min_size = 1 + max_size = 4 + instance_type = "t3.xlarge" + disk_size = 100 + } + data = { + desired_size = 2 + min_size = 1 + max_size = 4 + instance_type = "t3.xlarge" + disk_size = 100 + } + } +} + +#Apigee Specific variables + +variable "project_id" { + description = "The GCP project ID" + type = string +} + +variable "region" { + description = "The GCP region for resources" + type = string + default = "us-central1" +} + +variable "apigee_org_name" { + description = "The name of the Apigee organization" + type = string +} + +variable "apigee_env_name" { + description = "The name of the Apigee environment" + type = string + default = "dev" +} + +variable "apigee_envgroup_name" { + description = "The name of the Apigee environment group" + type = string + default = "dev" +} + +variable "apigee_namespace" { + description = "The Kubernetes namespace for Apigee" + type = string + default = "apigee" +} + +variable "apigee_version" { + description = "The version of Apigee to install" + type = string + default = "1.14.2-hotfix.1" +} + +variable "hostnames" { + description = "List of hostnames for the Apigee environment group" + type = list(string) +} + +variable "create_org" { + description = "Whether to create a new Apigee organization" + type = bool + default = true +} + +variable "apigee_org_display_name" { + description = "Display name for the Apigee organization" + type = string + default = "" +} + +variable "apigee_env_display_name" { + description = "Display name for the Apigee environment" + type = string + default = "" +} + +variable "apigee_instance_name" { + description = "Name of the Apigee instance" + type = string + default = "apigee-instance" +} + +variable "apigee_cassandra_replica_count" { + description = "Number of Cassandra replicas" + type = number + default = 3 +} + +variable "ingress_name" { + description = "Name of the ingress" + type = string + default = "apigee-ingress" +} + +variable "ingress_svc_annotations" { + description = "Annotations for the ingress service" + type = map(string) + default = {} +} + +variable "overrides_template_path" { + description = "Path to the overrides template file" + type = string + default = "" +} + +variable "service_template_path" { + description = "Path to the service template file" + type = string + default = "" +} + +variable "apigee_install" { + description = "Whether to install Apigee components" + type = bool + default = true +} + +variable "billing_type" { + description = "The billing type for the Apigee organization" + type = string + default = "EVALUATION" +} +variable "tls_apigee_self_signed" { + description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." + type = bool + default = true +} + +variable "tls_apigee_cert_path" { + description = "The TLS certificate for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" +} + +variable "tls_apigee_key_path" { + description = "The TLS private key for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" + sensitive = true +} + +variable "apigee_lb_ip" { + type = string + description = "IP address for the Apigee Load Balancer." + default = "" +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/README.md b/tools/apigee-hybrid-terraform/apigee-on-gke/README.md new file mode 100644 index 000000000..3678c4fd8 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/README.md @@ -0,0 +1,251 @@ +## Disclaimer +This tool is open-source software. It is not an officially supported Google product. It is not a part of Apigee, or any other officially supported Google Product. + +## Architecture + +The following diagram illustrates the architecture of Apigee Hybrid on Google Kubernetes Engine (GKE): + +![Apigee Hybrid on GKE Architecture](../diagram/apigee_hybrid_gke.png) + +The architecture consists of: + +1. **Client Layer**: + - Web/Mobile clients making API calls to the GKE cluster + +2. **Google Cloud Infrastructure**: + - Cloud Load Balancer for distributing incoming traffic + - GKE Cluster with: + - Runtime Pool for Apigee runtime components + - Data Pool for Apigee data components + - Cloud NAT for outbound connectivity + - VPC Network with appropriate subnets + +3. **Apigee Management Plane**: + - Apigee Organization for API management + - Cloud Logging for log collection + - Cloud Monitoring for metrics and observability + +## How to Setup Apigee Hybrid on GKE Clusters using Terraform + +The Terraform configuration defines a new VPC network in which to provision the Google Kubernetes Engine (GKE) cluster. It uses the `google` provider to create the required GCP resources, including the GKE cluster, node pools (with auto-scaling capabilities), VPC firewall rules, and necessary IAM configurations. + +Open the `main.tf` file to review the resource configuration. The `google_container_cluster` resource configures the cluster, including a default system node pool. Additional user node pools can be defined using `google_container_node_pool` resources, for example, to have different machine types or capabilities for specific workloads (like Apigee runtime components). + +Once the terraform provisions the GKE infrastructure, it proceeds to create Apigee Organization, Environment and Environment Group and installs Apigee Hybrid. + +## Getting Started + +1. **Setup a Google Cloud Project** if you don't have one. You can create one in the [Google Cloud Console](https://console.cloud.google.com/). + +2. **Configure Google Cloud Authentication**: + There are two ways to authenticate with Google Cloud: + + a) **User Account Authentication**: + * Ensure you have the Google Cloud SDK (gcloud) installed and configured + * Run `gcloud auth login` to authenticate the client + * Run `gcloud auth application-default login` for aut + * Set your project: `gcloud config set project ` + + b) **Service Account Authentication**: + * Create a service account with appropriate permissions (Owner/Editor) + * Download the service account key JSON file + * Set the environment variable: `export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-key.json"` + * Run `gcloud auth activate-service-account --key-file="path/to/your/service-account-key.json"` + * Set your project: `gcloud config set project ` + * Alternatively, you can specify the credentials file path in your Terraform provider configuration: + ```hcl + provider "google" { + credentials = file("path/to/your/service-account-key.json") + project = "" + } + ``` + + Note: + * Ensure that Organization Policy is not disabled to create service account and associated Service Account Key + * Ensure that the user or service account performing terraform has the permissions to access Google Cloud resources. While not recommended but roles like `roles/editor` or `roles/owner` should ensure all tasks completes successfully + +3. **Download and install Helm** (version 3.15+ recommended, check Apigee docs for specific version compatibility). +4. **Install Google Cloud SDK**: + ```bash + # Check if gcloud is installed + gcloud version + + # If not installed, follow instructions at: + # https://cloud.google.com/sdk/docs/install + # Ensure you have the latest version + ``` +5. **Install kubectl**: + ```bash + # Check if kubectl is installed + kubectl version --client + + # If not installed, follow instructions at: + # https://kubernetes.io/docs/tasks/tools/install-kubectl/ + # Ensure version 1.29 or higher + ``` +6. Run `terraform init` to initialize Terraform and download necessary providers. + + +## Pre-Cluster Setup Steps + +1. **Customize the Terraform configuration files**: + Review and update the `terraform.tfvars` file with your specific values. Below is a table of all supported variables, their descriptions, and example/default values: + + | Variable Name | Description | Example/Default Value | + |--------------------------------|-----------------------------------------------------------------------------|--------------------------------------| + | project_id | The GCP project ID | "apigee-eks-example2" | + | region | The GCP region for resources | "us-west1" | + | apigee_org_name | The name of the Apigee organization | "apigee-eks-example2" | + | apigee_env_name | The name of the Apigee environment | "dev" | + | apigee_envgroup_name | The name of the Apigee environment group | "dev-group" | + | cluster_name | Name of the EKS cluster | "apigee-eks" | + | apigee_namespace | Kubernetes namespace for Apigee components | "apigee" | + | apigee_version | Apigee Hybrid version | "1.14.2-hotfix.1" | + | apigee_org_display_name | Display name for the Apigee organization | "My Company Apigee Organization" | + | apigee_env_display_name | Display name for the Apigee environment | "Development Environment" | + | apigee_instance_name | Name of the Apigee instance | "apigee-instance" | + | apigee_cassandra_replica_count | Number of Cassandra replicas (recommended: 3 for production) | 3 | + | hostnames | List of hostnames for the Apigee environment group | ["api.mycompany.com", "api-dev.mycompany.com"] | + | tls_apigee_self_signed | Use self-signed certificates for Apigee TLS (true/false) | true | + | tls_apigee_cert_path | Path to your TLS certificate (if not self-signed) | "path/to/your/tls.crt" | + | tls_apigee_key_path | Path to your TLS private key (if not self-signed) | "path/to/your/tls.key" | + | apigee_lb_ip | IP address for the Apigee Load Balancer (optional, usually auto-assigned) | "" | + | create_org | Whether to create a new Apigee organization (true/false) | true | + | apigee_install | Whether to install Apigee components (true/false) | true | + | ingress_name | Name of the ingress | "apigee-ingress" | + | ingress_svc_annotations | Annotations for the ingress service (map) | { ... } | + | overrides_template_path | Path to the overrides template file (optional) | "../apigee-hybrid-core/overrides-templates.yaml" | + | service_template_path | Path to the service template file (optional) | "../apigee-hybrid-core/apigee-service-template.yaml" | + | billing_type | The billing type for the Apigee organization | "EVALUATION" or "PAID" | + + > **Tip:** You can copy `terraform.tfvars.sample` to `terraform.tfvars` and edit it with your values. + + Example: + ```hcl + project_id = "apigee-eks-example2" + region = "us-west1" + apigee_org_name = "apigee-eks-example2" + # ... + +2. **Run `terraform plan`**: + Validate the list of GCP resources to be created. Review the plan carefully to ensure it matches your expectations. + +3. **Run `terraform apply`**: + This will provision the GCP resources and create the GKE cluster. Confirm the apply when prompted. This process can take several minutes. + +## What Happens During Terraform Apply + +When you run `terraform apply`, the following resources are created in sequence: + +1. **GCP Infrastructure Setup**: + - Creates a new VPC network with appropriate subnets + - Sets up Cloud NAT for outbound connectivity + - Configures firewall rules for the cluster + - Creates necessary IAM service accounts and roles + +2. **GKE Cluster Creation**: + - Creates the main GKE cluster with a system node pool + - Configures network plugin and policy + - Sets up service CIDR and DNS service IP + - Enables workload identity + +3. **Additional Node Pools**: + - Creates "apigeerun" node pool for Apigee runtime components + - Creates "apigeedata" node pool for Apigee data components + - Both pools support auto-scaling if enabled + - Configures appropriate machine types and disk sizes for each workload + +4. **Apigee Setup**: + - Enables required Google Cloud APIs + - Creates a service account for Apigee with necessary IAM roles + - Generates and saves service account key + - Creates self-signed TLS certificates for Apigee environment group + - Generates Apigee overrides.yaml configuration file from the provided template file with mapped variables + - Sets up Apigee organization, environment, and environment group + - Creates a directory output/${PROJECT_ID} to store generated certificates, keys, overrides.yaml and apigee-service.yaml + +5. **Final Configuration**: + - Configures kubectl to connect to the new GKE cluster + - Installs Apigee Hybrid (using Helm) by calling setup_apigee.sh script + - Outputs important information like project ID and kubeconfig + +The entire process typically takes 15-30 minutes to complete, depending on the size of your cluster and the number of resources being created. + +## Accessing the Cluster + +Terraform generates kubeconfig specific to the output directory and it can be found at output//apiigee-kubeconfig. + +To access the cluster, configure your `kubectl` to use the generated kubeconfig file: +```bash +export KUBECONFIG=output//apigee-kubeconfig +``` + +```bash +kubectl get pods -A +``` + + + + +## Accessing Apigee Endpoint + +* Get the ingress IP/DNS to access Apigee +```bash +kubectl get pods -n apigee +kubectl get svc dev-group -n apigee -o jsonpath='{.status.loadBalancer.ingress[0].ip}' +``` +* Add the ingress IP/DNS to Apigee Environment Group Hostnames through Apigee UI + +* Access the healthz endpoint +```bash +curl -H 'User-Agent: GoogleHC' https://api.example.com/healthz/ingress -k \ + --resolve "api.example.com:443:your-ingress-ip>" +``` + +## Cleanup + +When you're done with the Apigee hybrid setup and want to remove all created resources, follow these steps: + +1. **Remove Apigee Hybrid Components**: + ```bash + # Delete Apigee hybrid components from the cluster + helm uninstall <> -n apigee + ``` + +2. **Destroy Terraform Resources**: + ```bash + # Remove all GCP resources created by Terraform + terraform destroy + ``` + This will remove: + - The GKE cluster and all node pools + - VPC network and subnets + - Cloud NAT and associated resources + - All other GCP resources created by the Terraform configuration + +3. **Clean Up Local Files**: + ```bash + # Remove generated certificates and keys + rm -rf output/${PROJECT_ID}/ + + # Remove Terraform state files + rm -f terraform.tfstate* + ``` + +4. **Optional: Remove Apigee Resources**: + + Terraform destroy should clean this up but in case of failure, you can + delete the Apigee resources individually: + + ```bash + # Delete Apigee environment group + gcloud apigee envgroups delete ${ENVGROUP_NAME} --organization=${PROJECT_ID} + + # Delete Apigee environment + gcloud apigee environments delete ${ENV_NAME} --organization=${PROJECT_ID} + + # Delete Apigee organization (if created) + gcloud apigee organizations delete ${PROJECT_ID} + ``` + +Note: The `terraform destroy` command will prompt for confirmation before proceeding. Make sure you have backups of any important data before running the cleanup commands. diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh new file mode 100755 index 000000000..0f50438fc --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/clean_up.sh @@ -0,0 +1,3 @@ +rm -fr .terraform* +rm -fr terraform.tfstate* +rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf new file mode 100644 index 000000000..d99bf51be --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/main.tf @@ -0,0 +1,313 @@ +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "~> 6.30.0" # Ensure compatibility with the Google provider + } + } +} + +provider "google" { + project = var.project_id + region = var.region +} + +# Enable required APIs +resource "google_project_service" "required_apis" { + for_each = toset([ + "compute.googleapis.com", + "container.googleapis.com", + "cloudresourcemanager.googleapis.com", + "apigee.googleapis.com", + "apigeeconnect.googleapis.com", + "cloudkms.googleapis.com", + "servicenetworking.googleapis.com" + ]) + + project = var.project_id + service = each.key + + disable_dependent_services = false + disable_on_destroy = false +} + +# Generate a random suffix for resource names +resource "random_string" "suffix" { + length = 8 + special = false + upper = false + # Add this keepers block + keepers = { + # This key can be anything, e.g., "static_suffix_trigger" + # As long as the value "1" (or any static value) doesn't change, + # the random string will only be generated once and then stored. + # If you ever need to force a new suffix, change this value. + _ = "1" + } +} + +locals { + name_suffix = random_string.suffix.result +} + +# Create VPC Network +resource "google_compute_network" "vpc" { + name = "vpc-apigee-${local.name_suffix}" + auto_create_subnetworks = false + + depends_on = [ + google_project_service.required_apis + ] +} + +# Create Subnet +resource "google_compute_subnetwork" "subnet" { + name = "subnet-apigee-${local.name_suffix}" + ip_cidr_range = "10.0.0.0/16" + region = var.region + network = google_compute_network.vpc.id + + secondary_ip_range { + range_name = "pod-range" + ip_cidr_range = "10.1.0.0/16" + } + + secondary_ip_range { + range_name = "service-range" + ip_cidr_range = "10.2.0.0/16" + } +} + +# Create Cloud Router +resource "google_compute_router" "router" { + name = "router-apigee-${local.name_suffix}" + region = var.region + network = google_compute_network.vpc.id +} + +# Create Cloud NAT +resource "google_compute_router_nat" "nat" { + name = "nat-apigee-${local.name_suffix}" + router = google_compute_router.router.name + region = google_compute_router.router.region + nat_ip_allocate_option = "AUTO_ONLY" + source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" + + log_config { + enable = true + filter = "ERRORS_ONLY" + } +} + +# Create GKE Cluster +resource "google_container_cluster" "gke" { + name = "gke-apigee-${local.name_suffix}" + location = var.region + deletion_protection = false + + # We can't create a cluster with no node pool defined, but we want to only use + # separately managed node pools. So we create the smallest possible default + # node pool and immediately delete it. + remove_default_node_pool = true + initial_node_count = 1 + + network = google_compute_network.vpc.id + subnetwork = google_compute_subnetwork.subnet.id + + ip_allocation_policy { + cluster_secondary_range_name = "pod-range" + services_secondary_range_name = "service-range" + } + + private_cluster_config { + enable_private_nodes = true + enable_private_endpoint = false + master_ipv4_cidr_block = "172.16.0.0/28" + } + + master_authorized_networks_config { + cidr_blocks { + cidr_block = "0.0.0.0/0" # Consider restricting this in production + display_name = "All" + } + } + + # Add network tags for NAT + network_policy { + enabled = true + } + + # Add network tags for NAT + node_config { + tags = ["nat-route"] + } + lifecycle { + ignore_changes = [ + initial_node_count, + ] + } +} + + +# Create Node Pool for Runtime +resource "google_container_node_pool" "runtime" { + name = "apigee-runtime" + location = var.region + cluster = google_container_cluster.gke.name + node_count = 1 + + node_config { + machine_type = "e2-standard-4" + disk_size_gb = 100 + disk_type = "pd-standard" + + labels = { + "apigee-runtime" = "true" + "temp-update-trigger" = "true" # Add this line + } + tags = ["apigee-runtime", "nat-route"] + + } + management { + auto_repair = true + auto_upgrade = true + } + lifecycle { + ignore_changes = all + } +} + +# Create Node Pool for Data +resource "google_container_node_pool" "data" { + name = "apigee-data" + location = var.region + cluster = google_container_cluster.gke.name + node_count = 1 + + node_config { + machine_type = "e2-standard-4" + disk_size_gb = 100 + disk_type = "pd-standard" + + labels = { + "apigee-data" = "true" + "temp-update-trigger" = "true" # Add this line + } + tags = ["apigee-data", "nat-route"] + + } + management { + auto_repair = true + auto_upgrade = true + } + lifecycle { + ignore_changes = all + } + +} + +# Generate kubeconfig +resource "local_file" "kubeconfig" { + content = <<-KUBECONFIG + apiVersion: v1 + kind: Config + current-context: ${google_container_cluster.gke.name} + contexts: + - context: + cluster: ${google_container_cluster.gke.name} + user: ${google_container_cluster.gke.name} + name: ${google_container_cluster.gke.name} + clusters: + - cluster: + certificate-authority-data: ${google_container_cluster.gke.master_auth[0].cluster_ca_certificate} + server: https://${google_container_cluster.gke.endpoint} + name: ${google_container_cluster.gke.name} + users: + - name: ${google_container_cluster.gke.name} + user: + exec: + apiVersion: client.authentication.k8s.io/v1beta1 + command: gcloud + args: + - container + - clusters + - get-credentials + - ${google_container_cluster.gke.name} + - --region=${var.region} + - --project=${var.project_id} + KUBECONFIG + filename = "${path.module}/output/${var.project_id}/apigee-kubeconfig" + file_permission = "0600" + + depends_on = [ + null_resource.create_output_dir, + google_container_node_pool.runtime, # Ensure node pools are up before module might use kubeconfig + google_container_node_pool.data + ] +} + + +resource "null_resource" "cluster_setup" { + # Use local-exec provisioner to run a script to configure kubectl + triggers = { + timestamp = timestamp() + } + + provisioner "local-exec" { + command = "export KUBECONFIG=${abspath("${path.module}/output/${var.project_id}/apigee-kubeconfig")} && gcloud container clusters get-credentials ${google_container_cluster.gke.name} --region ${var.region} --project ${var.project_id}" + } + depends_on = [ + local_file.kubeconfig, + google_container_cluster.gke, + ] +} + +# Create output directory if it doesn't exist +resource "null_resource" "create_output_dir" { + provisioner "local-exec" { + command = "mkdir -p ${path.module}/output/${var.project_id}" + } +} + +# Use the apigee-hybrid-core module +module "apigee_hybrid" { + source = "../apigee-hybrid-core" + + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = google_container_cluster.gke.name + kubeconfig = abspath("${path.module}/output/${var.project_id}/apigee-kubeconfig") + + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames + apigee_cassandra_replica_count = var.apigee_cassandra_replica_count + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example + + apigee_lb_ip = var.apigee_lb_ip + #TLS related variables + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path + + create_org = var.create_org + apigee_install = var.apigee_install + billing_type = var.billing_type + + depends_on = [ + google_container_cluster.gke, + google_container_node_pool.runtime, + google_container_node_pool.data, + local_file.kubeconfig, + null_resource.cluster_setup, + ] +} diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf new file mode 100644 index 000000000..08c03f5ac --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/outputs.tf @@ -0,0 +1,44 @@ +output "gke_cluster_name" { + description = "The name of the GKE cluster." + value = google_container_cluster.gke.name +} + +output "gke_cluster_endpoint" { + description = "The IP address of the GKE cluster endpoint." + value = google_container_cluster.gke.endpoint +} + +output "kubeconfig_path" { + description = "Path to the generated kubeconfig file." + value = local_file.kubeconfig.filename +} + +output "vpc_name" { + description = "The name of the VPC network." + value = google_compute_network.vpc.name +} + +output "subnet_name" { + description = "The name of the subnet." + value = google_compute_subnetwork.subnet.name +} + +output "apigee_organization_id" { + description = "The ID of the Apigee organization." + value = module.apigee_hybrid.apigee_organization_id +} + +output "apigee_environment_name" { + description = "The name of the Apigee environment." + value = module.apigee_hybrid.apigee_environment_name +} + +output "apigee_envgroup_id" { + description = "The ID of the Apigee environment group." + value = module.apigee_hybrid.apigee_envgroup_id +} + +output "apigee_non_prod_sa_email" { + description = "Email of the Apigee Non-Prod service account." + value = module.apigee_hybrid.apigee_non_prod_sa_email +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars new file mode 100644 index 000000000..a1fca3f50 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars @@ -0,0 +1,48 @@ +# GCP Configuration +project_id = "apigee-gke-example7" +region = "us-central1" + +# Apigee Configuration +apigee_org_name = "apigee-gke-example7" #Same as Projectid +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "Apigee GKE Example Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 3 + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + + + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + + +create_org=true +apigee_install=true + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # "cloud.google.com/neg" = "{\"ingress\": true}" + # "cloud.google.com/load-balancer-type" = "Internal" +} + +# Optional: Paths to template files if you want to use custom templates +# overrides_template_path = "path/to/overrides-template.yaml" +# service_template_path = "path/to/service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # or "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample new file mode 100644 index 000000000..7ddf1cbe4 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/terraform.tfvars.sample @@ -0,0 +1,46 @@ +# GCP Configuration +project_id = "your-gcp-project-id" +region = "us-central1" + +# Apigee Configuration +apigee_org_name = "your-org-name" +apigee_env_name = "dev" +apigee_envgroup_name = "dev-group" +apigee_namespace = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "My Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 3 + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + +create_org=true +apigee_install=true + + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" +} + +# Optional: Paths to template files if you want to use custom templates +# overrides_template_path = "path/to/overrides-template.yaml" +# service_template_path = "path/to/service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # or "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf new file mode 100644 index 000000000..257af9cd0 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-gke/variables.tf @@ -0,0 +1,135 @@ +variable "project_id" { + description = "The GCP project ID" + type = string +} + +variable "region" { + description = "The GCP region for resources" + type = string + default = "us-central1" +} + +variable "apigee_org_name" { + description = "The name of the Apigee organization" + type = string +} + +variable "apigee_env_name" { + description = "The name of the Apigee environment" + type = string + default = "dev" +} + +variable "apigee_envgroup_name" { + description = "The name of the Apigee environment group" + type = string + default = "dev" +} + +variable "apigee_namespace" { + description = "The Kubernetes namespace for Apigee" + type = string + default = "apigee" +} + +variable "apigee_version" { + description = "The version of Apigee to install" + type = string + default = "1.14.2-hotfix.1" +} + +variable "hostnames" { + description = "List of hostnames for the Apigee environment group" + type = list(string) +} + +variable "create_org" { + description = "Whether to create a new Apigee organization" + type = bool + default = true +} + +variable "apigee_org_display_name" { + description = "Display name for the Apigee organization" + type = string + default = "" +} + +variable "apigee_env_display_name" { + description = "Display name for the Apigee environment" + type = string + default = "" +} + +variable "apigee_instance_name" { + description = "Name of the Apigee instance" + type = string + default = "apigee-instance" +} + +variable "apigee_cassandra_replica_count" { + description = "Number of Cassandra replicas" + type = number + default = 3 +} + +variable "ingress_name" { + description = "Name of the ingress" + type = string + default = "apigee-ingress" +} + +variable "ingress_svc_annotations" { + description = "Annotations for the ingress service" + type = map(string) + default = {} +} + +variable "overrides_template_path" { + description = "Path to the overrides template file" + type = string + default = "" +} + +variable "service_template_path" { + description = "Path to the service template file" + type = string + default = "" +} + +variable "apigee_install" { + description = "Whether to install Apigee components" + type = bool + default = true +} + +variable "billing_type" { + description = "The billing type for the Apigee organization" + type = string + default = "EVALUATION" +} + +variable "tls_apigee_self_signed" { + description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." + type = bool + default = true +} + +variable "tls_apigee_cert_path" { + description = "The TLS certificate for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" +} + +variable "tls_apigee_key_path" { + description = "The TLS private key for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" + sensitive = true +} + +variable "apigee_lb_ip" { + type = string + description = "IP address for the Apigee Load Balancer." + default = "" +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/README.md b/tools/apigee-hybrid-terraform/apigee-on-others/README.md new file mode 100644 index 000000000..ae458b57c --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/README.md @@ -0,0 +1,195 @@ +# Apigee Hybrid on Existing Kubernetes Clusters + +This directory contains Terraform configurations for deploying Apigee Hybrid on an existing Kubernetes cluster. This setup assumes that you already have a Kubernetes cluster running and properly configured with the necessary node pools for Apigee Hybrid. + +## Prerequisites + +1. **Existing Kubernetes Cluster**: + - A running Kubernetes cluster (version 1.29 or later) + - At least two node pools: + - Runtime node pool for Apigee runtime components with node labels set with key cloud.google.com/gke-nodepool and value apigee-runtime + - Data node pool for Apigee data with node labels set with key cloud.google.com/gke-nodepool and value apigee-data + - Proper network configuration for the cluster + +2. **Kubernetes Access**: + - `kubectl` configured to access your cluster + - `KUBECONFIG` environment variable set or config file in `~/.kube/config` + - Proper RBAC permissions in the cluster + +3. **Google Cloud Setup**: + - Google Cloud SDK installed and configured + - Optional: Project with Apigee API enabled. The script enables it. + - Optional: Service account with necessary permissions. The script automatically creates it. + - Organization Policy allowing service account key creation + +4. **Configure Google Cloud Authentication**: + There are two ways to authenticate with Google Cloud: + + a) **User Account Authentication**: + * Ensure you have the Google Cloud SDK (gcloud) installed and configured + * Run `gcloud auth application-default login` to authenticate + * Set your project: `gcloud config set project ` + + b) **Service Account Authentication**: + * Create a service account with appropriate permissions (Owner/Editor) + * Download the service account key JSON file + * Set the environment variable: `export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-key.json"` + * Run `gcloud auth activate-service-account --key-file="path/to/your/service-account-key.json"` + * Set your project: `gcloud config set project ` + * Alternatively, you can specify the credentials file path in your Terraform provider configuration: + ```hcl + provider "google" { + credentials = file("path/to/your/service-account-key.json") + project = "" + } + ``` + + Note: + * Ensure that Organization Policy is not disabled to create service account and associated Service Account Key + * Ensure that the user or service account performing terraform has the permissions to access Google Cloud resources. While not recommended but roles like `roles/editor` or `roles/owner` should ensure all tasks completes successfully + +5. **Required Tools**: + - Terraform >= 1.0.0 + - Helm >= 3.10.0 + - kubectl + - gcloud CLI + +## Configuration + +1. **Set up your variables**: + Update `terraform.tfvars` file with your specific values: + + ```hcl + project_id = "apigee-gke-example3" + region = "us-central1" # Default region, change if needed + apigee_org_name = "apigee-gke-example3" + apigee_env_name = "dev" + apigee_envgroup_name = "dev-group" + cluster_name = "apigee" + apigee_namespace = "apigee" + apigee_version = "1.14.2-hotfix.1" + apigee_org_display_name = "My Company Apigee Organization" + apigee_env_display_name = "Development Environment" + apigee_instance_name = "apigee-instance" + apigee_cassandra_replica_count = 1 + + hostnames = [ + "api.mycompany.com", # Production API endpoint + "api-dev.mycompany.com" # Development API endpoint + ] + ingress_name = "apigee-ingress" + + ``` + +2. **Verify Kubernetes Access**: + ```bash + kubectl get nodes + ``` + +3. **Verify Node Pools**: + ```bash + kubectl get nodes --show-labels + ``` + Ensure you have nodes with the appropriate labels for Apigee runtime and data components. + +## Deployment + +1. **Initialize Terraform**: + ```bash + terraform init + ``` + +2. **Review the Plan**: + ```bash + terraform plan + ``` + +3. **Apply the Configuration**: + ```bash + terraform apply + ``` + +## What Gets Deployed + +1. **Apigee Organization**: + - Creates or uses existing Apigee organization + - Sets up environment and environment group + - Configures runtime settings + +2. **Kubernetes Resources**: + - Creates necessary namespaces + - Deploys Apigee runtime components + - Configures service accounts and RBAC + - Sets up ingress and load balancing + +3. **SSL/TLS Configuration**: + - Generates or uses provided SSL certificates + - Configures TLS for the runtime + +## Verification + +1. **Check Apigee Components**: + ```bash + kubectl get pods -n apigee + ``` + +2. **Verify Environment Group**: + ```bash + gcloud apigee envgroups list --organization=$PROJECT_ID + ``` + +3. **Verify Apigee Endpoint**: + +* Get the ingress IP/DNS to access Apigee +```bash +kubectl get pods -n apigee +kubectl get svc dev-group -n apigee -o jsonpath='{.status.loadBalancer.ingress[0].ip}' +``` +* Add the ingress IP/DNS to Apigee Environment Group Hostnames through Apigee UI + +* Access the healthz endpoint +```bash +curl -H 'User-Agent: GoogleHC' https://api.example.com/healthz/ingress -k \ + --resolve "api.example.com:443:your-ingress-ip>" +``` + +## Cleanup + +1. **Remove Apigee Components**: + ```bash + helm uninstall apigee-hybrid -n apigee + ``` + +2. **Destroy Terraform Resources**: + ```bash + terraform destroy + ``` + +3. **Clean Up Local Files**: + ```bash + rm -rf output/${PROJECT_ID}/ + ``` + +## Troubleshooting + +1. **Kubernetes Connection Issues**: + - Verify `kubectl` configuration + - Check cluster accessibility + - Ensure proper RBAC permissions + +2. **Apigee Deployment Issues**: + - Check pod status and logs + - Verify node pool labels + - Review Apigee runtime logs + +3. **SSL/TLS Issues**: + - Verify certificate validity + - Check ingress configuration + - Review TLS settings + +## Additional Resources + +- [Apigee Hybrid Documentation](https://cloud.google.com/apigee/docs/hybrid) +- [Kubernetes Documentation](https://kubernetes.io/docs/) +- [Terraform Documentation](https://www.terraform.io/docs) +- [Helm Documentation](https://helm.sh/docs/) \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh b/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh new file mode 100755 index 000000000..0f50438fc --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/clean_up.sh @@ -0,0 +1,3 @@ +rm -fr .terraform* +rm -fr terraform.tfstate* +rm -fr output diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/main.tf b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf new file mode 100644 index 000000000..3a8093157 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/main.tf @@ -0,0 +1,67 @@ +terraform { + required_version = ">= 1.0.0" + required_providers { + google = { + source = "hashicorp/google" + version = "~> 6.30.0" + } + kubernetes = { + source = "hashicorp/kubernetes" + version = ">= 2.0.0" + } + helm = { + source = "hashicorp/helm" + version = ">= 2.0.0" + } + } +} + +provider "google" { + project = var.project_id + region = var.region +} + +provider "kubernetes" { + # Configuration will be automatically loaded from KUBECONFIG + # or from the default location (~/.kube/config) +} + +provider "helm" { + # Configuration will be automatically loaded from KUBECONFIG + # or from the default location (~/.kube/config) +} + +# Use the apigee-hybrid-core module +module "apigee_hybrid" { + source = "../apigee-hybrid-core" + + project_id = var.project_id + region = var.region + apigee_org_name = var.apigee_org_name + apigee_env_name = var.apigee_env_name + apigee_envgroup_name = var.apigee_envgroup_name + apigee_namespace = var.apigee_namespace + apigee_version = var.apigee_version + cluster_name = var.cluster_name + apigee_org_display_name = var.apigee_org_display_name + apigee_env_display_name = var.apigee_env_display_name + apigee_instance_name = var.apigee_instance_name + apigee_envgroup_hostnames = var.hostnames + apigee_cassandra_replica_count = var.apigee_cassandra_replica_count + ingress_name = var.ingress_name + ingress_svc_annotations = var.ingress_svc_annotations + overrides_template_path = "${path.module}/../apigee-hybrid-core/overrides-templates.yaml" # Example if you want to be explicit + service_template_path = "${path.module}/../apigee-hybrid-core/apigee-service-template.yaml" # Example + + apigee_lb_ip = var.apigee_lb_ip + #TLS related variables + tls_apigee_self_signed = var.tls_apigee_self_signed + tls_apigee_cert_path = var.tls_apigee_cert_path + tls_apigee_key_path = var.tls_apigee_key_path + + create_org = var.create_org + apigee_install = var.apigee_install + billing_type = var.billing_type + + +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf b/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf new file mode 100644 index 000000000..b8b81ff19 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/outputs.tf @@ -0,0 +1,19 @@ +output "apigee_organization_id" { + description = "The ID of the Apigee organization." + value = module.apigee_hybrid.apigee_organization_id +} + +output "apigee_environment_name" { + description = "The name of the Apigee environment." + value = module.apigee_hybrid.apigee_environment_name +} + +output "apigee_envgroup_id" { + description = "The ID of the Apigee environment group." + value = module.apigee_hybrid.apigee_envgroup_id +} + +output "apigee_non_prod_sa_email" { + description = "Email of the Apigee Non-Prod service account." + value = module.apigee_hybrid.apigee_non_prod_sa_email +} \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars new file mode 100644 index 000000000..15d5620c4 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars @@ -0,0 +1,58 @@ +# GCP Configuration +project_id = "apigee-gke-example3" # Replace with your actual GCP project ID +region = "us-central1" # Default region, change if needed + +# Apigee Configuration +apigee_org_name = "apigee-gke-example3" # Must be unique across all Apigee organizations +apigee_env_name = "dev" # Environment name (dev, test, prod, etc.) +apigee_envgroup_name = "dev-group" # Environment group name +cluster_name = "apigee" # Kubernetes cluster name +apigee_namespace = "apigee" # Kubernetes namespace for Apigee components +apigee_version = "1.15.0" # Apigee Hybrid version +apigee_org_display_name = "My Company Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 3 # Number of Cassandra replicas (recommended: 3 for production) + +# Hostnames for Apigee Environment Group +# These are the domains that will be used to access your APIs +hostnames = [ + "api.mycompany.com", # Production API endpoint + "api-dev.mycompany.com" # Development API endpoint +] + +#TLS related variable +tls_apigee_self_signed = true +#tls_apigee_cert_path = "tls.crt" +#tls_apigee_key_path = "tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + +create_org=false +apigee_install=true + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # Uncomment and modify these based on your cloud provider + # For AWS: + # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" + + # For GCP: + #"networking.gke.io/load-balancer-type": "Internal" + + # For Azure: + # "service.beta.kubernetes.io/azure-load-balancer-internal" = "true" + # "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" = "your-subnet-name" +} + +# Optional: Paths to template files if you want to use custom templates +# Uncomment and set these if you have custom templates +# overrides_template_path = "../apigee-hybrid-core/overrides-templates.yaml" +# service_template_path = "../apigee-hybrid-core/apigee-service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # Options: "EVALUATION" or "PAID" +# Note: For production use, set this to "PAID" diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample new file mode 100644 index 000000000..52bc51ce3 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/terraform.tfvars.sample @@ -0,0 +1,56 @@ +# GCP Configuration +project_id = "your-gcp-project-id" +region = "us-central1" + +# Apigee Configuration +apigee_org_name = "your-org-name" +apigee_env_name = "dev" +apigee_envgroup_name = "dev" +apigee_namespace = "apigee" +cluster_name = "apigee" +apigee_version = "1.15.0" +apigee_org_display_name = "My Apigee Organization" +apigee_env_display_name = "Development Environment" +apigee_instance_name = "apigee-instance" +apigee_cassandra_replica_count = 3 + +# Hostnames for Apigee Environment Group +hostnames = [ + "api.example.com", + "api-dev.example.com" +] + +#TLS related variable +tls_apigee_self_signed = true +tls_apigee_cert_path = "path/to/your/tls.crt" +tls_apigee_key_path = "path/to/your/tls.key" + +#Load Balancer IP +#apigee_lb_ip="35.188.116.91" + +create_org=true +apigee_install=true + +# Ingress Configuration +ingress_name = "apigee-ingress" +ingress_svc_annotations = { + # Uncomment and modify these based on your cloud provider + # For AWS: + # "service.beta.kubernetes.io/aws-load-balancer-type" = "nlb" + # "service.beta.kubernetes.io/aws-load-balancer-internal" = "true" + + # For GCP: + # "cloud.google.com/neg" = "{\"ingress\": true}" + # "cloud.google.com/load-balancer-type" = "internal" + + # For Azure: + # "service.beta.kubernetes.io/azure-load-balancer-internal" = "true" + # "service.beta.kubernetes.io/azure-load-balancer-internal-subnet" = "your-subnet-name" +} + +# Optional: Paths to template files if you want to use custom templates +# overrides_template_path = "path/to/overrides-template.yaml" +# service_template_path = "path/to/service-template.yaml" + +# Billing Configuration +billing_type = "EVALUATION" # or "PAID" \ No newline at end of file diff --git a/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf new file mode 100644 index 000000000..fd76c5b37 --- /dev/null +++ b/tools/apigee-hybrid-terraform/apigee-on-others/variables.tf @@ -0,0 +1,140 @@ +variable "project_id" { + description = "The GCP project ID" + type = string +} + +variable "region" { + description = "The GCP region for resources" + type = string + default = "us-central1" +} + +variable "cluster_name" { + description = "The name of Cluster" + type = string + default = "apigee" +} + +variable "apigee_org_name" { + description = "The name of the Apigee organization" + type = string +} + +variable "apigee_env_name" { + description = "The name of the Apigee environment" + type = string + default = "dev" +} + +variable "apigee_envgroup_name" { + description = "The name of the Apigee environment group" + type = string + default = "dev" +} + +variable "apigee_namespace" { + description = "The Kubernetes namespace for Apigee" + type = string + default = "apigee" +} + +variable "apigee_version" { + description = "The version of Apigee to install" + type = string + default = "1.14.2-hotfix.1" +} + +variable "hostnames" { + description = "List of hostnames for the Apigee environment group" + type = list(string) +} + +variable "create_org" { + description = "Whether to create a new Apigee organization" + type = bool + default = false +} + +variable "apigee_org_display_name" { + description = "Display name for the Apigee organization" + type = string + default = "" +} + +variable "apigee_env_display_name" { + description = "Display name for the Apigee environment" + type = string + default = "" +} + +variable "apigee_instance_name" { + description = "Name of the Apigee instance" + type = string + default = "apigee-instance" +} + +variable "apigee_cassandra_replica_count" { + description = "Number of Cassandra replicas" + type = number + default = 3 +} + +variable "ingress_name" { + description = "Name of the ingress" + type = string + default = "apigee-ingress" +} + +variable "ingress_svc_annotations" { + description = "Annotations for the ingress service" + type = map(string) + default = {} +} + +variable "overrides_template_path" { + description = "Path to the overrides template file" + type = string + default = "" +} + +variable "service_template_path" { + description = "Path to the service template file" + type = string + default = "" +} + +variable "apigee_install" { + description = "Whether to install Apigee components" + type = bool + default = false +} + +variable "billing_type" { + description = "The billing type for the Apigee organization" + type = string + default = "EVALUATION" +} +variable "tls_apigee_self_signed" { + description = "Whether to use self-signed certificates for Apigee TLS. If true, self-signed certs will be generated. If false, provide tls_apigee_cert and tls_apigee_key." + type = bool + default = true +} + +variable "tls_apigee_cert_path" { + description = "The TLS certificate for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" +} + +variable "tls_apigee_key_path" { + description = "The TLS private key for Apigee. Required if tls_apigee_self_signed is false." + type = string + default = "" + sensitive = true +} + +variable "apigee_lb_ip" { + type = string + description = "IP address for the Apigee Load Balancer." + default = "" +} diff --git a/tools/apigee-hybrid-terraform/apply_org_policies.sh b/tools/apigee-hybrid-terraform/apply_org_policies.sh new file mode 100755 index 000000000..e1716c58b --- /dev/null +++ b/tools/apigee-hybrid-terraform/apply_org_policies.sh @@ -0,0 +1,38 @@ +read -p "Please enter your Google Cloud project ID: " project +export project + +if [ -z "$project" ]; then + echo "Error: The 'project' variable is not set. Please set it before proceeding." + exit 1 +fi + +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" +} + +apply_constraints diff --git a/tools/apigee-hybrid-terraform/diagram/aks_draw.py b/tools/apigee-hybrid-terraform/diagram/aks_draw.py new file mode 100644 index 000000000..56605ec62 --- /dev/null +++ b/tools/apigee-hybrid-terraform/diagram/aks_draw.py @@ -0,0 +1,58 @@ +from diagrams import Diagram, Cluster, Edge +from diagrams.gcp.api import Apigee +from diagrams.azure.compute import KubernetesServices, VM +from diagrams.azure.network import VirtualNetworks, Subnets, LoadBalancers +from diagrams.gcp.storage import Storage +from diagrams.onprem.client import Users +from diagrams.onprem.network import Internet +from diagrams.gcp.operations import Logging, Monitoring + +with Diagram("Apigee Hybrid on Azure AKS", + show=False, + direction="LR", + outformat="png", + filename="apigee_hybrid_aks", + graph_attr={ + "splines": "ortho", + "nodesep": "0.8", + "ranksep": "0.8", + "pad": "0.5", + "fontsize": "45", + "fontname": "Arial", + "fontcolor": "#2D3436", + "bgcolor": "white" + }): + # Client + client = Users("Web/Mobile\nClients") + + # Azure Resources + with Cluster("Azure", graph_attr={"fontsize": "20"}): + with Cluster("AKS Cluster", graph_attr={"fontsize": "16"}): + lb = LoadBalancers("Network Load Balancer") + aks = KubernetesServices("AKS Cluster") + nat = Internet("NAT Gateway") + + with Cluster("Node Pools", graph_attr={"fontsize": "14"}): + runtime_pool = VM("Runtime Pool\n(Standard_D4s_v3)") + data_pool = VM("Data Pool\n(Standard_D4s_v3)") + aks >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> runtime_pool + + lb >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> aks + runtime_pool >> Edge(label="Outbound", fontsize="12") >> nat + data_pool >> Edge(label="Outbound", fontsize="12") >> nat + + # GCP Resources + with Cluster("Google Cloud Platform", graph_attr={"fontsize": "20"}): + with Cluster("Apigee Organization", graph_attr={"fontsize": "16"}): + apigee = Apigee("Apigee Organization") + logging = Logging("Cloud Logging") + monitoring = Monitoring("Cloud Monitoring") + + + # Connections + client >> Edge(label="API Calls", fontsize="16", style="bold", color="green") >> lb + nat >> Edge(label="Google APIs", fontsize="12") >> apigee + nat >> Edge(label="Google APIs", fontsize="12") >> logging + nat >> Edge(label="Google APIs", fontsize="12") >> monitoring + + diff --git a/tools/apigee-hybrid-terraform/diagram/apigee_hybrid_aks.png b/tools/apigee-hybrid-terraform/diagram/apigee_hybrid_aks.png new file mode 100644 index 0000000000000000000000000000000000000000..615f41e6ba5f8ebebd9c08515bb8c4d36ca3b79c GIT binary patch literal 138844 zcmeEucT`i|*CxIe5TvLysm1~d0tzA>GzutHx)6$h^j-r5h)VAQ(yLS{p@j}1BGN-I zfrQ?BsG-AL-uL%@vu4&e^Vj@27uGVeF87?X?>^6d_OtgP=)ICGB{>s02?+`1ySHyt zNk~Y+BqUcT$^HU-WGW`1=bINDD|M~1}`KS6n zAA9p|&R)zFxL)SUgi`$TktBub|KI%ot?~cDHxlbJDM;+4hlUC$$U{QpIy$%thW0GO zH1U0OmjGw0?w@l^04|@DumWUeZc<3LpS!Hq6_RR_pvI3&OH3rX*M|fv%%TT&D1v>} zE$!^=OsuR-Z9#FJqP2g!vsR)~t{N7LRoBvpjazl`pcY!(`0<5U`GQrCfh1k}PxY?~ z<$|G9`F4daOlf)f_U4X@qeG6LH*V&opVlqWkw}SpiJ^H{AlM<|4R$1ok;<~mJOhN*meJ1-$@U4ax99V-Gj1)aJ z6<&0)>|Yu!oOgfq4egm@5)ySZWU+sd956rQwWkzy;+1}D(s=XcTK2_*r|wOB*vHCRVlj9hbP`bDSAk zteh6iqfW2u|Ic_aEXm0+&4n#jKZnbPQs{~eGKI-$m>HW*79sELuW4ejopj_N-^Pz4 zNUPTQJSt#{zlK^{x|K5fhVxfMYiUT9RstQqSjpPhq|p5C@6XUPTOT`$qcK|Ayg7YS z!j}eCX@_E|_FN=edi()&8EgzAmB&YDR*!cQ|vFxSWKRIsopan@tSOaB~ zFJY;C8t?jklY3wzWwJQT116J|%{{|Xl2cvR+iK?YKzZ+nBYsSeGwpdEcZqODuv(e? zwDUe3@9SIcJ@X>)>D=}GfU?busZea9V#b~}ST;MFX;sllof%oblT&bWX>kGvRzO_Y zL`w+K`*E6@-zOy;`UM6Io_Cp#7facVmV=~(upghc&29H?+5&4p!Dg~5dv0EsOgj4Q z12CD-L~oxT$xAK3(9U|mbg)DOI55(bRvjH57+hZ8uAcYyU(k2JCZe zz9r;N7vsIva$Ib!MFrr#2oswwbnen_OLwlZF?~-`0d|#{SX`8^b409Px*y<26RR1^ z%ezq{qP;lNlN=%y9hH3W8>1C=eE3h`)7=5yR}uGuoAWz|NSc`(hbl&hOeouJ23T2P z;qKg)F_x08zhs93xiFZ=LPI%K70 zSSq>*?F)Y)AMNL`CnvP7B8Vc;N1F^otR?nQco7R-V}7w_@V%7uh1qKUz^ z4HNCnCTBCyE=y>{%X(pUD6-XjRFqTWJ;t zk5#CVJv(fal?l6pC58+S4ONupYGyvOU7lLlm|mN~sS0UP_f#6N{{6_Q6=}f9rRyqf zZ-O6TFcZ25;R+K6$1lB=h`H>jT@J=W}u6 zM%0SlSJ&1sa8dY&Gal}i-(irvfDjVPfg(Dmy!eEs;=s`uL8Vj?Hj`r7ow1a(~Y z*(AI?Pw|o*7gN&RSs7Z{Evyes_Ke9_;)sK2LptXimxt)JF2x1B($Y%O`k-oHz!%+K zFQMym;>EIVBUYPVc@Hpn^6l2}*jQQ$kS!C`3d#E5R{LgT=8M8pp8FDlf)5`HKTsf3 zQPF>4*Zo8T(J|5J05~HL;z^Q((A`IE2lsd$W>0&QIh1nVzCDB2|CHu^YOM68l_jFP zr)z7MXyLZB^y4z&iKiOb))2K+mDkIQxmH&$Q~H;OCObX81HR|7XHV_uQc;Ss+!SLGqkdTj!&&ZRs@W88D}YG zYxNK^$jvV7_p67hdAl_Xrd$||oV+~KDZeCh*FYzJcvy*SYlnI=&r+l1RljO<90vZn z7+ZyEyB@s(-QOHs-6Qbmf6&)7wNw^|5_e44$v{Wc_1%+FB`Bv09`V^qRa#>&^|W;+ zdSI*`bxg%J$4vXipQ8K^W^AmhvtaS_*$)X1+8B+EP|?KH7<`|!9%BIjEZO<_+ii`P z!GX+nOvX5pA9=PnCC0}j$YZWXib2J zNiCE0hU<3Mw{mmGU=VwAH+@?r3x`q#UbI>NoRl|YphXk_gk1DV2gJ!NP2%?cVADR7 zFxuJN#ltBui&+*<(OjKd<9FJqcU5M)FnN*mRlnxGQZvN5HEe&)#MZE{Z=OVpl9Pdf zlry)!uyEucD}M#2KmIy#{AF46M?v1+iZ>g$Je2}J8lf=ONjagQH~gM+=Abtg7Vj`y z=BOX66c%aT8-8`1N>S~f@^yw1)Jn6PoAo6db{NojBy`d>M%2D{FRkcA@{w?PS=kKW z25_4XaIS?cU0yWdOMuqNCNetOsZQqdKNj}T+=z@eOCB5h4cp^rx{8zMiaEM+#aCwc zZBM(DxFX_D#QCl8UQmPun0cK)d_u|=^yWa;7|=cr=%BezQH<;P9w zxGd}{5-AXU`*vrioL;gXY=3oeZq3m`{sOytgELiBe2$2lMCa8daBt|>-!u0)dkzkc zVTU^>W>ZpmdHD)~V(aT0{OQpB@S<#Y*0ep6Y7T%c`^oN-MJ#Qxw?@ikpPhZN_W3(+ z3scv`zDbj_cYty>T|E=Cg4BHr49ptHwXrGu{Z(`}?ePnZix&WRea8}|zcFXe2R!bI zzn_aU&o9B>jeUK5!Uxu>9`4crA?yd}@87q6E>N(PQBu^?`}o1l%=_ML`=PB(Vr4~@ zl*@~nObUx@|49>n4Q1&gloZ-GcemyfOn*IGWM|RUR7pt5U0VV(8QcB)tam!5Mc>|{ zJiYMVa@yJ!I*yKVjz)$*`uqCYn}-nRzgEY_BzO%X&r@U&ygWQN!PV8Z?Vrjz9j^N{ zeoIS=PW~RBn5?b_nVp?ooLyyLn&@im+v;E#ptr0L6%)`SyGcXa?{UY(BzxuP$dp<{ zR5T$WNyrB6>GYiOM#8d%h_?3Lo{LZzdj3|pr^tuV5#hR;hdCxk9yL&Bo<&g0f8t5v zrv>_Ik7{{5efeVw@(D=&6ee#(X8l%BmR4HBfPUhTMcU((*eLN?xH1_?^R#wiylE#Y z0)Fu8EFzW{VEE>PwiYJt=dU9a576z7elx*z12Tt)H3O+`>SU#+O|d!JPOk}k-m8B~ zGrQQL-aY_AnvWeLadR-&+S*2OJAF`J0`pF zV_-;_yE|@R%ORK7sXZlJDHn1$Z)S&*#K%wL#DuA;ZF>XzjDO$vh=+XmX{j;kz1Qrd zETO3e8R(1Arw2p@?f09DM-^)9@!w+-9Ingi9~>1ZOL(5!Nu7_BY>oWzX}N)I8sN?_ zBgnhebhfq(50Cx6XQ18R=a(EX^dGfBE3ChaJVAHD{-%k1hAY9tY&r={CePhzW>zom zxck8`Az|xVzGj8haV(+XD5Eytvb(bfy}!i(@Md1S@sxHkipeoFG=kb=f{TefR!t>wl) zF`Ohn-wIJ!$UA~i%04;@QTC-tosdlPIz1gpvJ)_={(CKA8#T~r7<(dM#i5n3Rc~}C z9h5&;xtUR5tWoI3@$RY}vng;Vsch?_L8{j(EA%>u>dl5k318Xk;Cl5e)x2n=e3QYY zSB>{uL%nRy@UwO(J+er*jlyT9C{MZI5MLU}h6XJae{SEBva+K5y!9onZYRNU$$xe$ zuM(o~`53a|A;3@gTg=Xr&N8Zs4Uk?QyDP?+Z7R0Fd=0_056k7a^1->x0IG$>1;!ix z!+f}+?v~aN4bATc_PjiK|4AtdtgzbLad2MW_wfmeaEn;KY!jqcs;8?z;7&9%ZD&6# zLr05(s^ZG-8XzZp|7gFU)^3cq7pzsjgUlK5QYF zI5_vlj33{NsN)x4*vKH(hfLV?~#t z+DY%5;N4{`y!RWk&ayjx{B|h&mmVc$yYgbNiS%LFek_Za*>juhB zZonjFeMMJC_2f{N(Att*m{)WQd~irAF20wy85rnZ+c}kA-*)ZMoJv1VGQ6g*Tr$(B3m98WOr=S10THc6J7{AyH8?!!RK8(cPKd=Zug|(!uaNkqNC`{vyjRByrtl>jWFYE~2Yt z!09`(+giJxbarEXLgJC|+*HHQ?QMS0pVFoPwp8bc-v?5<$RWa0k(3Lmz_oP)J08CczV#{kfQg6+9=Bb_SMkyY(onganl)S0D)MGy^`Bl$*vsx%&U@U#kl8vu zc9c@%^!v}SSh>}VD55fZuUiL^qp4x#el|M@_~)eC{6pj4MNb6;gsK313Kg1Ozk7$Nq_$>A!vkI4tm7w7l}MY=O5pL{kVG68P*`Nc)^pq z;o!khn<2M+ftf*~pa(`cPhBTh)#li0Kr4+0UttrH0Ny&mXhB3I`1T26vs*p<{UO5u zDun1Dyq$=h0J6He68U=Ey?(j)%##B^yaEfEz}2i5pMR)~)Gt1_7^(u3<*DNkvR2Af z$Gbkz3MR#3$y0r}RiuMWnP#TQO)u-dlbVjNU-j@+6Z^lKz=2o>-kV?r*h%Ez_pCY& zB@YkWjoD?s?o_e!3T;^`wrYzp9$>)n5jTe_+pVucg$SE7yAGemAJh8!i>EDTriY6c z(0WwEz`~khnO{JU@e<@E&ZVtl$wB_(!rRNsd_bbLxVUg~u-+k2S1G%J6Iu65sH}92 zo08Pm{#QB2eorn`n5CfRBgh0eB9R@P9f_$%HpaJUXsta_E(88!Yflmsh}{8c9v;Vx z%qEV9JXMn#Dk@v2Sc9_~@Aa;#af`LdqV6Q2v&ghK?&$Uf46Fbaq2JOy4%n#vJ2NJpo#u-uVRv2t$& zg(db6-lR2FF+2OAYMwK&xBl{Z9U2Bi6oMCVK68H@Uo`GJw718Z5g};(Sbd>2RhSL7 z{YKh7fyQVIQFVN9RORfUXrt(=nL{)4BTqSz8262v7GNl%=53Uu_x3qBIm)4~Ge&kP zuZqu4k~C~L*c3@`P!J@K_paUwdP8PtV+?B@-v{uE7JP6_+MQ7Ko+FL|B#!b*P1u@A z)x-PISUi60b+m^L>=2{>mp=+V6ylR518F^CVPUpgKkB5OT*s9nmLE%a>>o}I%(q~Z zgib)d)o1>OIe}fD{#t*CV=*Zrnc10_uTgrRBv>FKHd}r}AKZG^GvUR={*=*| zW^ZrLhOcFA#&&#;l-=S*6CGHg{```$zttQA<3~@2fvze>0p0szVlXF)kfYk#UG@KL zUJ~c$zz;#bnwfcdh|@BwK<5NZ`8>4emNzQ#3;7C<>y4t(z zSx!W(12U4c%ywoC5FB@ZQqE1G%$+svdWT5=7S|Gl!eI zV0cirY7kAv26(kWjPt)BDwrT8VxjWt%if_pQ!eVM6OKZFxw8IfW_KjIRnaaagnY=d zg64PEIBK-f=QVi7$ave)5r?lS%zC3|z~{S3+_SEw81&rW_27ByjQQfw~+ePybvl&N`lnMI63Vf zcz4wjhkL*27f%wgIX@-DZqM}mWG+O-$YoQey%=_7@LFYIVdCQva&WLYtNfr-L44S- z0!Y>73K|fIhRTn8M4x3j!@lAjfOEYhje3{OUo-X_ha2u51|oiD=PT09tz$9HuFfvh zRKO9kjGw7N&<15W4!)8j1bB+(@bLP&uAZ8WwX=n-vX5v?{+?(BQ<%e!E&#)tuG024 zd!r^fULSXy%6wioL6#3kWeGNiPCf|6Eki@4{qLRgn-H;S_YMNjQ~c5 zUz5%{2!5&JM^b1d4bEse9z<6cEk6LqeJ&U3k~w=y%lq7ZIy%}VXHh2#CoO7aAwFfl z3RrLqHo4eb#c4qtV z7cY3MHttwGZhwaueC!JVN|Eh`U&q%U_hlp{5Y4Chkj2?WE6-AsowNaiU)oT$z32sV}F<>j)()x6ECpZXlv%O~Y+hp}gOKgok^RM$_n?|f!20C0K^J#qlJuNLIlJ~|nC=|w^1%)to4)3>KEUouYLt`k07AQ3=(0*EU zJ3g*EcH43CW|-cX9xYHt59At!vx&y1#7yJI^vh+W&Nsa>>8+R{Vz7XY;O+A7bB03U z*3RnM-_ii^_I)auoUfPC#q%UNIayv_-m%-@-0Hi>4@NDr>GfI2&nImiZ|#WYb44jk zh+0@gYR-+5-sjHr? zDyVZmE&f~YCL$Uc0+8=~&6w};Pc1RkGWTWH|T%H=Hu=WlO4GpJ?xZe|a*xWR3+nYX>eiteR;r6b)&^wAQRaVkp`eN%-L_yqk zZR=JLV`bGl?#abDbip>}wE@rm__Q8vZfNn&0qND99DF*vFQ|wIWDJ0OR$63gW?DF# zU#RwER@_!!mDvu5u3L8o)tsFk4F}V=c_NY!c2> zDSmd|C37}<1+dF<+5K?~m>6zarV5X(6QPa{xg_E{CGjf9Lo+a$G9Lj?NbK!@zn)_7~mqHckF!zyetiS^0J znBDRawo1J!Dvk>YR8w2un}b7!qi>&`hL&-Ox2`N{4KM>q^