This template implements the GCP S4 High Availability reference architecture https://cloud.google.com/solutions/sap/docs/architectures/sap-s4hana-on-gcp.
Basic usage of this module is as follows:
module "s4_ha" {
source = "terraform-google-modules/sap/google//modules/s4_ha"
version = "~> 2.0"
gcp_project_id = "PROJECT_ID" # example: my-project-x
deployment_name = "DEPLOYMENT_NAME" # example: my-deployment
media_bucket_name = "GCS_BUCKET" # example: my-bucket
filestore_location = "ZONE/REGION" # example: us-east1
region_name = "REGION" # example: us-east1
zone1_name = "ZONE" # example: us-east1-b
zone2_name = "ZONE" # example: us-east1-c
}
Functional example is included in the examples directory.
Name | Description | Type | Default | Required |
---|---|---|---|---|
allow_stopping_for_update | allow_stopping_for_update | bool |
true |
no |
ansible_sa_email | ansible_sa_email | string |
"" |
no |
app_disk_export_interfaces_size | app_disk_export_interfaces_size | number |
128 |
no |
app_disk_type | app_disk_type | string |
"pd-balanced" |
no |
app_disk_usr_sap_size | app_disk_usr_sap_size | number |
128 |
no |
app_machine_type | app_machine_type | string |
"n1-highem-32" |
no |
app_sa_email | app_sa_email | string |
"" |
no |
app_sid | app_sid | string |
"ED1" |
no |
app_vm_names | app_vm_names | list(any) |
[] |
no |
app_vms_multiplier | Multiplies app VMs. E.g. if there is 2 VMs then with value 3 each VM will be multiplied by 3 (so there will be 6 total VMs) | string |
1 |
no |
application_secret_name | application_secret_name | string |
"default" |
no |
ascs_disk_type | ascs_disk_type | string |
"pd-balanced" |
no |
ascs_disk_usr_sap_size | ascs_disk_usr_sap_size | number |
128 |
no |
ascs_ilb_healthcheck_port | ascs_ilb_healthcheck_port | number |
60001 |
no |
ascs_machine_type | ascs_machine_type | string |
"n1-standard-8" |
no |
ascs_sa_email | ascs_sa_email | string |
"" |
no |
ascs_vm_names | ascs_vm_names | list(any) |
[] |
no |
configuration_bucket_name | configuration_bucket_name | string |
"" |
no |
create_comms_firewall | create_comms_firewall | bool |
true |
no |
custom_app_metadata | Optional - default is empty. Custom metadata to be added to the app VMs. | map(string) |
{} |
no |
custom_ascs_metadata | Optional - default is empty. Custom metadata to be added to the ASCS VMs. | map(string) |
{} |
no |
custom_db_metadata | Optional - default is empty. Custom metadata to be added to the DB VMs. | map(string) |
{} |
no |
custom_tags | custom_tags | list(any) |
[] |
no |
data_stripe_size | data_stripe_size | string |
"256k" |
no |
db_data_disk_type | db_data_disk_type | string |
"pd-balanced" |
no |
db_disk_backup_size | db_disk_backup_size | number |
128 |
no |
db_disk_hana_data_size | db_disk_hana_data_size | number |
249 |
no |
db_disk_hana_log_size | db_disk_hana_log_size | number |
104 |
no |
db_disk_hana_shared_size | db_disk_hana_shared_size | number |
208 |
no |
db_disk_type | Disk type for the non log/data disks. | string |
"pd-balanced" |
no |
db_disk_usr_sap_size | db_disk_usr_sap_size | number |
32 |
no |
db_ilb_healthcheck_port | db_ilb_healthcheck_port | number |
60000 |
no |
db_log_disk_type | db_log_disk_type | string |
"pd-balanced" |
no |
db_machine_type | db_machine_type | string |
"n1-highmem-32" |
no |
db_sa_email | db_sa_email | string |
"" |
no |
db_sid | db_sid | string |
"HD1" |
no |
db_vm_names | db_vm_names | list(any) |
[] |
no |
deployment_has_dns | Set to false to deploy without a DNS zone | bool |
true |
no |
deployment_name | deployment_name | string |
n/a | yes |
disk_size_map | disk_size_map | map(number) |
{} |
no |
dns_zone_name_suffix | dns_zone_name_suffix | string |
"gcp.sapcloud.goog." |
no |
ers_ilb_healthcheck_port | ers_ilb_healthcheck_port | number |
60002 |
no |
existing_dns_zone_name | existing_dns_zone_name | string |
"" |
no |
filestore_gb | filestore_gb | number |
1024 |
no |
filestore_location | filestore_location | string |
n/a | yes |
filestore_tier | filestore_tier | string |
"ENTERPRISE" |
no |
fstore_mount_point | Optional - default is empty. NFS mount point of the nfs to use. If none is provided one will be created. | string |
"" |
no |
gcp_project_id | gcp_project_id | string |
n/a | yes |
hana_secret_name | hana_secret_name | string |
"default" |
no |
is_test | is_test | string |
"false" |
no |
log_stripe_size | log_stripe_size | string |
"64k" |
no |
media_bucket_name | media_bucket_name | string |
n/a | yes |
network_project | network_project | string |
"" |
no |
number_data_disks | Optional - default is 1. Number of disks to use for data volume striping (if larger than 1). | number |
1 |
no |
number_log_disks | Optional - default is 1. Number of disks to use for log volume striping (if larger than 1). | number |
1 |
no |
package_location | package_location | string |
"gs://cloudsapdeploy/deployments/latest" |
no |
primary_startup_url | primary_startup_url | string |
"gs://cloudsapdeploy/deployments/latest/startup/ansible_runner_startup.sh" |
no |
public_ansible_runner_ip | public_ansible_runner_ip | bool |
true |
no |
public_ip | public_ip | bool |
false |
no |
region_name | region_name | string |
n/a | yes |
sap_boot_disk_image | sap_boot_disk_image | string |
"projects/rhel-sap-cloud/global/images/rhel-8-4-sap-v20220719" |
no |
sap_boot_disk_image_app | sap_boot_disk_image_app | string |
"" |
no |
sap_boot_disk_image_ascs | sap_boot_disk_image_ascs | string |
"" |
no |
sap_boot_disk_image_db | sap_boot_disk_image_db | string |
"" |
no |
sap_instance_id_app | sap_instance_id_app | string |
"10" |
no |
sap_instance_id_ascs | sap_instance_id_ascs | string |
"11" |
no |
sap_instance_id_db | sap_instance_id_db | string |
"00" |
no |
sap_instance_id_ers | sap_instance_id_ers | string |
"12" |
no |
sap_version | sap_version | string |
"2021" |
no |
subnet_name | subnet_name | string |
"default" |
no |
virtualize_disks | virtualize_disks | bool |
true |
no |
vm_prefix | vm_prefix | string |
"sapha" |
no |
vpc_name | vpc_name | string |
"default" |
no |
zone1_name | zone1_name | string |
n/a | yes |
zone2_name | zone2_name | string |
n/a | yes |
No outputs.
These sections describe requirements for using this module.
The following dependencies must be available:
- Terraform v0.13
- Terraform Provider for GCP plugin v4.0
Refer to the contribution guidelines for information on contributing to this module.
Please see our security disclosure process.