cloud-foundation-fabric/blueprints/apigee/hybrid-gke
Avinash Jha e881537f87
Separating GKE Standard and Autopilot Modules (#1330)
* separating GKE Standard and Autopilot Modules

* Changes for Updating the terraform and provide versions

* Changes for Autopilot Readme

* Changes for Autopilot Variable

* Changes for Autopilot Readme

* Changes for Autopilot Readme

* Changes for Blueprint

* Changes for Blueprint ReadMe

* Changes for gke-standard-cluster dependency

* Changes for gke-standard-cluster in gke-fleet

* Changes for gke-standard-cluster in cluster-mesh-gke-fleet-api

* python formatting

* python formatting

* python formatting

* GKE module naming convention

* Readme Changes

* test module

* Removing comment code from Autopilot
2023-04-21 12:08:13 +00:00
..
ansible Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +01:00
templates Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +01:00
README.md Update factories and apigee tests 2023-02-25 19:26:11 +01:00
ansible.tf Fixed permissions of files created 2023-03-27 14:49:09 +02:00
apigee.tf Fixed permissions of files created 2023-03-27 14:49:09 +02:00
diagram.png Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +01:00
gke.tf Separating GKE Standard and Autopilot Modules (#1330) 2023-04-21 12:08:13 +00:00
glb.tf Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +01:00
main.tf Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +01:00
mgmt.tf Fixes related to boot_disk in compute-vm module 2023-03-16 15:58:39 +01:00
outputs.tf Improvements in apigee hybrid-gke: now using workload identity and GLB 2023-01-19 22:11:44 +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
    

    Create an A record in your DNS registrar to point the environment group hostname to the public IP address returned after the terraform configuration was applied. You might need to wait some time until the certificate is provisioned.

  5. Install Apigee hybrid using de ansible playbook that is in the ansible folder by running this command

    ansible-playbook playbook.yaml -vvv

Testing the blueprint

  1. Deploy an api proxy

    ./deploy-apiproxy.sh apis-test
    
  2. Send a request

    curl -v 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"

Outputs

name description sensitive
ip_address GLB IP address.

Test

module "test" {
  source = "./fabric/blueprints/apigee/hybrid-gke"
  project_create = {
    billing_account_id = "12345-12345-12345"
    parent             = "folders/123456789"
  }
  project_id = "my-project"
  hostname   = "test.myorg.org"
}
# tftest modules=18 resources=59