cloud-foundation-fabric/blueprints/apigee/hybrid-gke
Miren Esnaola 33f5607ff1 Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
..
ansible Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
templates Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
README.md Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
ansible.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
apigee.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
diagram.png Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
gke.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
main.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
mgmt.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
terraform.tfvars.sample Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
variables.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00
vpc.tf Apigee hybrid on GKE 2023-01-04 10:53:49 +01:00

README.md

Apigee Hybrid on GKE

This example installs Apigee hybrid in a non-prod environment on a GKE private cluster using Terraform and Ansible. The Terraform configuration deploys all the required infrastructure including a management VM used to run an ansible playbook to the actual Apigee Hybrid setup.

The diagram below depicts the architecture.

Diagram

Running the blueprint

  1. Clone this repository or open it in cloud shell, then go through the following steps to create resources:

  2. Copy the file terraform.tfvars.sample to a file called terraform.tfvars and update the values if required.

  3. Initialize the terraform configuration

    terraform init
    
  4. Apply the terraform configuration

    terraform apply
    

Testing the blueprint

  1. Deploy an api proxy

    ./deploy-apiproxy.sh
    
  2. In the console check the IP address that has been allocated to the Apigee ingress gateway and send some traffic to the deployed API proxy.

    curl -k -v -H "Host:HOSTNAME" \
    --resolve HOSTNAME:443:IP_ADDRESS \
    https://HOSTNAME/httpbin/headers
    

Variables

name description type required default
hostname Host name. string
project_id Project ID. string
cluster_machine_type Cluster nachine type. string "e2-standard-4"
cluster_network_config Cluster network configuration. object({…}) {…}
mgmt_server_config Mgmt server configuration. object({…}) {…}
mgmt_subnet_cidr_block Management subnet CIDR block. string "10.0.2.0/28"
project_create Parameters for the creation of the new project. object({…}) null
region Region. string "europe-west1"
zone Zone. string "europe-west1-c"