This module provides a southbound private service connect (PSC) connectivity between an Apigee X runtime and a sample backend that is running on a standalone VPC.
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"
A successful run will print the endpoint attachment's host that you can then use for your target server in Apigee:
Outputs:
psc_endpoint_attachment_host = "7.0.5.2"
psc_endpoint_attachment_connection_state = "ACCEPTED"
Name | Version |
---|---|
n/a |
Name | Source | Version |
---|---|---|
apigee-x-core | ../../modules/apigee-x-core | n/a |
backend-example | ../../modules/development-backend | n/a |
backend-vpc | github.com/terraform-google-modules/cloud-foundation-fabric//modules/net-vpc | v28.0.0 |
project | github.com/terraform-google-modules/cloud-foundation-fabric//modules/project | v28.0.0 |
southbound-psc | ../../modules/sb-psc-attachment | n/a |
vpc | github.com/terraform-google-modules/cloud-foundation-fabric//modules/net-vpc | v28.0.0 |
Name | Type |
---|---|
google_compute_firewall.allow_psc_nat_to_backend | resource |
google_compute_subnetwork.psc_nat_subnet | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
apigee_envgroups | Apigee Environment Groups. | map(object({ |
null |
no |
apigee_environments | Apigee Environments. | map(object({ |
null |
no |
apigee_instances | Apigee Instances (only one instance for EVAL orgs). | map(object({ |
null |
no |
ax_region | GCP region for storing Apigee analytics data (sxee https://cloud.google.com/apigee/docs/api-platform/get-started/install-cli). | string |
n/a | yes |
backend_name | Name for the Demo Backend | string |
"demo-backend" |
no |
backend_network | Peered Backend VPC name. | string |
n/a | yes |
backend_psc_nat_subnet | Subnet to host the PSC NAT. | object({ |
n/a | yes |
backend_region | GCP Region Backend (ensure this matches backend_subnet.region). | string |
n/a | yes |
backend_subnet | Subnet to host the backend service. | object({ |
n/a | yes |
billing_account | Billing account id. | string |
null |
no |
network | Name of the VPC network to peer with the Apigee tennant project. | string |
n/a | yes |
peering_range | Service 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 |
psc_name | PSC name. | string |
n/a | yes |
support_range | Support CIDR range of length /28 (required by Apigee for troubleshooting purposes). | string |
n/a | yes |
Name | Description |
---|---|
psc_endpoint_attachment_connection_state | Underlying connection state of the PSC endpoint attachment. |
psc_endpoint_attachment_host | Hostname of the PSC endpoint attachment. |