Skip to content

Latest commit

 

History

History

x-shared-vpc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Apigee X in Shared VPC with External HTTPS Load Balancer

Apigee X installation in a shared VPC setup and with a an external HTTPS load balancer to route traffic via forwarding MIGs.

Setup Instructions

Set the project ID where you want your Apigee Organization to be deployed to:

PROJECT_ID=my-project-id
cd samples/... # Sample from above
cp ./x-demo.tfvars ./my-config.tfvars

Decide on a backend and create the necessary config. To use a backend on Google Cloud Storage (GCS) use:

gsutil mb "gs://$PROJECT_ID-tf"

cat <<EOF >terraform.tf
terraform {
  backend "gcs" {
    bucket  = "$PROJECT_ID-tf"
    prefix  = "terraform/state"
  }
}
EOF

Validate your config:

terraform init
terraform plan --var-file=./my-config.tfvars -var "project_id=$PROJECT_ID"

and provision everything (takes roughly 25min):

terraform apply --var-file=./my-config.tfvars -var "project_id=$PROJECT_ID"

Providers

No providers.

Modules

Name Source Version
apigee-x-bridge-mig ../../modules/apigee-x-bridge-mig n/a
apigee-x-core ../../modules/apigee-x-core n/a
host-project github.com/terraform-google-modules/cloud-foundation-fabric//modules/project v28.0.0
mig-l7xlb ../../modules/mig-l7xlb n/a
nip-development-hostname ../../modules/nip-development-hostname n/a
service-project github.com/terraform-google-modules/cloud-foundation-fabric//modules/project v28.0.0
shared-vpc github.com/terraform-google-modules/cloud-foundation-fabric//modules/net-vpc v28.0.0

Resources

No resources.

Inputs

Name Description Type Default Required
apigee_envgroups Apigee Environment Groups.
map(object({
hostnames = list(string)
}))
null no
apigee_environments Apigee Environments.
map(object({
display_name = optional(string)
description = optional(string)
node_config = optional(object({
min_node_count = optional(number)
max_node_count = optional(number)
}))
iam = optional(map(list(string)))
envgroups = list(string)
type = optional(string)
}))
null no
apigee_instances Apigee Instances (only one instance for EVAL orgs).
map(object({
region = string
ip_range = string
environments = list(string)
}))
null no
ax_region GCP region for storing Apigee analytics data (see https://cloud.google.com/apigee/docs/api-platform/get-started/install-cli). string n/a yes
billing_account Billing account id. string null no
exposure_subnets Subnets for exposing Apigee services
list(object({
name = string
ip_cidr_range = string
region = string
secondary_ip_range = map(string)
}))
[] no
network VPC name. string n/a yes
peering_range Peering CIDR range string n/a yes
project_create Create project. When set to false, uses a data source to reference existing project. bool false no
project_id Project id (also used for the Apigee Organization). string n/a yes
project_parent Parent folder or organization in 'folders/folder_id' or 'organizations/org_id' format. string null no
support_range Support CIDR range of length /28 (required by Apigee for troubleshooting purposes). string n/a yes
svpc_host_project_id Shared VPC Host Project id). string "" no

Outputs

No outputs.