Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Terraform variable reference

Auto-generated by go run ./tools/refgen/tfvars-md > book/src/29-terraform-variable-reference.md. Re-run on every terraform/variables.tf change.

Every variable below is settable via terraform.tfvars, -var, -var-file, or (for sensitive values) the corresponding TF_VAR_<name> environment variable. Variables with _required_ defaults must be set explicitly. See Chapter 13 for how roksbnkctl threads these through the workspace config.

Root module variables

Source: terraform/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region for all cluster resourcesno
ibmcloud_resource_groupstring"default"IBM Cloud resource group nameno
create_roks_clusterbooltrueCreate a new ROKS cluster. When false, supply roks_cluster_id_or_name instead.no
roks_cluster_id_or_namestring""ID or name of an existing ROKS cluster — used when create_roks_cluster = falseno
create_roks_transit_gatewaybooltrueCreate Transit Gateway and VPC connectionsno
create_roks_registry_cos_instancebooltrueCreate Cloud Object Storage instance for the OpenShift image registryno
roks_cluster_vpc_namestring"tf-cluster-vpc"Name of the cluster VPCno
openshift_cluster_namestring"tf-openshift-cluster"Name of the OpenShift clusterno
openshift_cluster_versionstring"4.18"OpenShift cluster version (e.g. 4.18). Leave empty to use the latest available.no
roks_workers_per_zonenumber1Number of worker nodes per availability zoneno
roks_min_worker_vcpu_countnumber16Minimum vCPU count when auto-selecting the worker node flavorno
roks_min_worker_memory_gbnumber64Minimum memory in GB when auto-selecting the worker node flavorno
roks_cos_instance_namestring"tf-openshift-cos-instance"Name of the COS instance for the OpenShift image registryno
roks_transit_gateway_namestring"tf-tgw"Name of the Transit Gateway. Must reference an existing TGW when create_roks_transit_gateway = false and testing_create_tgw_jumphost = true.no
install_cert_managerbooltrueInstall cert-manager. When false, cert_manager_namespace is passed directly to flo.no
cert_manager_namespacestring"cert-manager"Kubernetes namespace for cert-managerno
cert_manager_versionstring"v1.17.3"cert-manager Helm chart versionno
ibmcloud_cos_bucket_regionstring"us-south"IBM Cloud region where the COS bucket is locatedno
ibmcloud_cos_instance_namestring"bnk-orchestration"IBM Cloud COS instance nameno
ibmcloud_resources_cos_bucketstring"bnk-schematics-resources"IBM Cloud COS bucket containing FAR auth key and JWT filesno
deploy_bnkbooltrueDeploy BIG-IP Next for Kubernetes — creates flo, cne_instance, and license. When false all three modules are skipped.no
far_repo_urlstring"repo.f5.com"FAR repository URL for Docker and Helm imagesno
f5_bigip_k8s_manifest_versionstring"2.3.0-3.2598.3-0.0.170"Version of the f5-bigip-k8s-manifest chart (FLO and CIS versions are extracted from this)no
f5_cne_far_auth_filestring"f5-far-auth-key.tgz"FAR auth key filename in the COS bucket (.tgz)no
f5_cne_subscription_jwt_filestring"trial.jwt"Subscription JWT filename in the COS bucket — used by flo and licenseno
flo_namespacestring"f5-bnk"Kubernetes namespace for the F5 Lifecycle Operatorno
flo_utils_namespacestring"f5-utils"Kubernetes namespace for F5 utility components — used by flo, cne_instance, and licenseno
bigip_usernamestring"admin"BIG-IP username for the CIS controllerno
bigip_passwordstring"admin"BIG-IP password for the CIS controlleryes
bigip_urlstring"192.168.1.245"BIG-IP URL for the CIS controllerno
flo_trusted_profile_idstring""IBM Cloud Trusted Profile ID created by flo — wired automatically from flo output; set here to overrideno
flo_cluster_issuer_namestring""Kubernetes ClusterIssuer name created by flo — wired automatically from flo output; set here to overrideno
cneinstance_network_attachmentslist(string)["ens3-ipvlan-l2", "macvlan-conf"]Network attachment names for cne_instance — wired automatically from flo output; set here to overrideno
cneinstance_deployment_sizestring"Small"Deployment size for CNEInstance (Small, Medium, Large)no
cneinstance_gslb_datacenter_namestring""GSLB datacenter name for CNEInstance (optional)no
license_modestring"connected"License operation mode (connected or disconnected)no
testing_create_tgw_jumphostbooltrueCreate a jumphost in a client VPC connected to the cluster via the Transit Gatewayno
testing_create_cluster_jumphostsboolfalseCreate one jumphost per availability zone directly inside the cluster VPCno
testing_ssh_key_namestring""Name of the IBM Cloud SSH key to inject into all jumphostsno
testing_jumphost_profilestring""Instance profile for all jumphosts (leave empty to auto-select based on min_vcpu_count and min_memory_gb)no
testing_min_vcpu_countnumber4Minimum vCPU count when auto-selecting the jumphost instance profileno
testing_min_memory_gbnumber8Minimum memory in GB when auto-selecting the jumphost instance profileno
testing_create_client_vpcboolfalseCreate a new client VPC for the TGW jumphost. When false, testing_client_vpc_name must reference an existing VPC.no
testing_client_vpc_namestring"tf-testing-vpc"Name of the client VPC — created when testing_create_client_vpc = true, or looked up when falseno
testing_client_vpc_regionstring"ca-tor"IBM Cloud region for the client VPC and TGW jumphostno
testing_tgw_jumphost_namestring"tf-testing-jumphost-tgw"Name of the TGW-connected jumphost instanceno
testing_cluster_jumphost_name_prefixstring"tf-testing-jumphost-cluster"Name prefix for cluster jumphosts — zone name is appended (<prefix>-<zone>)no
kubeconfig_dirstring"/work/.bnk/scratch/kubeconfig"Parent directory where ibm_container_cluster_config writes admin kubeconfigs. Each submodule appends its name as a subdir. Default is the bnk runner image’s /work mount; override for direct-on-host runs.no
scratch_dirstring"/work/.bnk/scratch"Persistent scratch directory for FLO’s FAR/manifest cross-apply artifacts. Default is the bnk runner image’s /work mount; override for direct-on-host runs.no

Module: cert_manager

Source: terraform/modules/cert_manager/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API Keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region where the cluster residesno
ibmcloud_resource_groupstring"default"IBM Cloud Resource Group name (leave empty to use account default)no
roks_cluster_name_or_idstringrequiredName or ID of the existing OpenShift ROKS cluster to deploy BNK ontono
cert_manager_namespacestring"cert-manager"Kubernetes namespace for cert-managerno
cert_manager_versionstring"v1.17.3"cert-manager Helm chart versionno
create_roks_clusterboolfalseWhen true, cluster is being created by roks_cluster — skip plan-time cluster credential fetchno
roks_cluster_dependency_idstringnullroks_cluster sentinel ID — when set, defers runtime_config fetch to apply time after roks_cluster completesno
kubeconfig_dirstring"/work/.bnk/scratch/kubeconfig/cert_manager"Persistent, writable dir for ibm_container_cluster_config kubeconfig downloads. Defaults to a host-bind-mounted, module-scoped path under .bnk/scratch.no

Module: cne_instance

Source: terraform/modules/cne_instance/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API Keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region where the cluster residesno
ibmcloud_resource_groupstring"default"IBM Cloud Resource Group name (leave empty to use account default)no
roks_cluster_name_or_idstringrequiredName or ID of the existing OpenShift ROKS cluster to deploy BNK ontono
far_repo_urlstring"repo.f5.com"FAR Repository URL for Docker and Helm registryno
flo_namespacestring"f5-bnk"Namespace for F5 Lifecycle Operatorno
flo_utils_namespacestring"f5-utils"Namespace for F5 utility componentsno
f5_bigip_k8s_manifest_versionstring"2.3.0-3.2598.3-0.0.170"Version of f5-bigip-k8s-manifest chart - used by flo, cneinstance modulesno
flo_trusted_profile_idstring""IBM IAM Trusted Profile ID for provisioning VPC routesno
flo_cluster_issuer_namestring""mTLS certificate issuer nameno
cneinstance_deployment_sizestring"Small"Deployment size for CNEInstance (Small, Medium, Large)no
cneinstance_gslb_datacenter_namestring""GSLB datacenter name for CNEInstance (optional)no
cneinstance_network_attachmentslist(string)["ens3-ipvlan-l2", "macvlan-conf"]The Multus Network Attachment Definitions for the CNEInstance TMM deploymentsno
create_roks_clusterboolfalseWhen true, cluster is being created by roks_cluster — skip plan-time cluster credential fetchno
roks_cluster_dependency_idstringnullroks_cluster sentinel ID — when set, defers runtime_config fetch to apply time after roks_cluster completesno
flo_dependency_idstringnullflo_ready sentinel ID — pass module.flo.flo_ready_id to defer cne_instance until flo completes and CRDs are registeredno
deploy_bnkbooltrueDeploy BIG-IP Next for Kubernetes — when false the inner cneinstance module is disabled and no CNEInstance resources are createdno
kubeconfig_dirstring"/work/.bnk/scratch/kubeconfig/cne_instance"Persistent, writable dir for ibm_container_cluster_config kubeconfig downloads. Defaults to a host-bind-mounted, module-scoped path under .bnk/scratch.no

Module: flo

Source: terraform/modules/flo/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API Keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region where the cluster residesno
ibmcloud_resource_groupstring"default"IBM Cloud Resource Group name (leave empty to use account default)no
roks_cluster_name_or_idstringrequiredName or ID of the existing OpenShift ROKS cluster to deploy BNK ontono
far_repo_urlstring"repo.f5.com"FAR Repository URL for Docker and Helm registryno
f5_bigip_k8s_manifest_versionstring"2.3.0-3.2598.3-0.0.170"Version of the f5-bigip-k8s-manifest chart (FLO/CIS versions are extracted from this)no
use_cos_bucketbooltrueFetch FAR auth key and JWT from IBM Cloud Object Storage instead of local variablesno
ibmcloud_cos_bucket_regionstring"us-south"IBM Cloud region where the COS bucket is locatedno
ibmcloud_cos_instance_namestring"bnk-orchestration"IBM Cloud COS instance nameno
ibmcloud_resources_cos_bucketstring"bnk-schematics-resources"IBM Cloud COS bucket containing the FAR auth key and JWT filesno
f5_cne_far_auth_filestring"f5-far-auth-key.tgz"FAR auth key filename in the COS bucket (.tgz)no
f5_cne_subscription_jwt_filestring"trial.jwt"Subscription JWT filename in the COS bucketno
flo_namespacestring"f5-bnk"Namespace for F5 Lifecycle Operatorno
flo_utils_namespacestring"f5-utils"Namespace for F5 utility componentsno
cert_manager_namespacestring"cert-manager"Kubernetes namespace for cert-manager - used by cert-manager, flo modulesno
bigip_usernamestring"admin"BIG-IP username for CIS controller loginno
bigip_passwordstring"admin"BIG-IP password for CIS controller loginyes
bigip_urlstring"https://192.168.1.245"BIG-IP URL for CIS controller loginno
create_roks_clusterboolfalseWhen true, cluster is being created by roks_cluster — skip plan-time cluster credential fetchno
roks_cluster_dependency_idstringnullroks_cluster sentinel ID — when set, defers runtime_config fetch to apply time after roks_cluster completesno
cert_manager_dependency_idstringnullcert_manager ready sentinel ID — when set, blocks flo inner module until cert-manager CRDs are availableno
deploy_bnkbooltrueDeploy BIG-IP Next for Kubernetes — when false the inner flo module is disabled and no FLO resources are createdno
kubeconfig_dirstring"/work/.bnk/scratch/kubeconfig/flo"Persistent, writable dir for ibm_container_cluster_config kubeconfig downloads. Defaults to a host-bind-mounted, module-scoped path under .bnk/scratch.no
scratch_dirstring"/work/.bnk/scratch"Persistent scratch directory for FAR/manifest cross-apply artifacts. Default is the bnk runner image’s /work mount.no

Module: license

Source: terraform/modules/license/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API Keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region where the cluster residesno
ibmcloud_resource_groupstring"default"IBM Cloud Resource Group name (leave empty to use account default)no
ibmcloud_cos_bucket_regionstring"us-south"IBM Cloud region where the COS bucket is locatedno
ibmcloud_cos_instance_namestring"bnk-orchestration"IBM Cloud COS instance nameno
ibmcloud_resources_cos_bucketstring"bnk-schematics-resources"IBM Cloud COS bucket containing the FAR auth key and JWT filesno
roks_cluster_name_or_idstringrequiredName or ID of the existing OpenShift ROKS cluster to deploy BNK ontono
flo_utils_namespacestring"f5-utils"Namespace for F5 utility componentsno
f5_cne_subscription_jwt_filestring"trial.jwt"Subscription JWT filename in the COS bucketno
license_modestring"connected"License operation mode (connected or disconnected)no
create_roks_clusterboolfalseWhen true, cluster is being created by roks_cluster — skip plan-time cluster credential fetchno
roks_cluster_dependency_idstringnullroks_cluster sentinel ID — when set, defers runtime_config fetch to apply time after roks_cluster completesno
cneinstance_dependency_idstringnullcneinstance_ready_id from ws4 — when set, ensures License CRD is available before applying License CRno
deploy_bnkbooltrueDeploy BIG-IP Next for Kubernetes — when false the inner license module is disabled and no License resources are createdno
kubeconfig_dirstring"/work/.bnk/scratch/kubeconfig/license"Persistent, writable dir for ibm_container_cluster_config kubeconfig downloads. Defaults to a host-bind-mounted, module-scoped path under .bnk/scratch.no

Module: roks_cluster

Source: terraform/modules/roks_cluster/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API keyyes
ibmcloud_cluster_regionstringrequiredIBM Cloud region for all cluster resourcesno
ibmcloud_resource_groupstring"default"IBM Cloud resource group nameno
create_roks_clusterbooltrueCreate a new ROKS cluster. When false, supply roks_cluster_id_or_name instead.no
roks_cluster_id_or_namestring""ID or name of an existing ROKS cluster — used when create_roks_cluster = falseno
create_roks_transit_gatewaybooltrueCreate Transit Gateway and VPC connectionsno
create_roks_registry_cos_instancebooltrueCreate Cloud Object Storage instance for the OpenShift image registryno
roks_cluster_vpc_namestring"tf-cluster-vpc"Name of the cluster VPCno
openshift_cluster_namestring"tf-openshift-cluster"Name of the OpenShift clusterno
openshift_cluster_versionstring"4.18"OpenShift cluster version (e.g. 4.18)no
roks_workers_per_zonenumber1Number of worker nodes per availability zoneno
roks_min_worker_vcpu_countnumber16Minimum vCPU count when auto-selecting the worker node flavorno
roks_min_worker_memory_gbnumber64Minimum memory in GB when auto-selecting the worker node flavorno
roks_cos_instance_namestring"tf-openshift-cos-instance"Name of the COS instance for the OpenShift image registryno
roks_transit_gateway_namestring"tf-tgw"Name of the Transit Gatewayno

Module: testing

Source: terraform/modules/testing/variables.tf

VariableTypeDefaultDescriptionSensitive
ibmcloud_api_keystringrequiredIBM Cloud API Keyyes
ibmcloud_cluster_regionstring"ca-tor"IBM Cloud region where the referenced cluster residesno
ibmcloud_resource_groupstring""IBM Cloud Resource Group name (leave empty to use account default)no
roks_cluster_name_or_idstringrequiredName or ID of the existing OpenShift ROKS clusterno
testing_create_tgw_jumphostbooltrueCreate a jumphost in a client VPC and (optionally) connect it to the cluster via a Transit Gatewayno
testing_create_cluster_jumphostsboolfalseCreate one jumphost per availability zone directly inside the cluster VPCno
testing_ssh_key_namestring""Name of the SSH key to inject into all jumphosts. Must exist in client_vpc_region (for TGW jumphost) and in ibmcloud_cluster_region (for cluster jumphosts)no
testing_jumphost_profilestring""Instance profile for all jumphosts (leave empty to auto-select from min_vcpu_count and min_memory_gb)no
testing_min_vcpu_countnumber4Minimum vCPU count when auto-selecting the instance profileno
testing_min_memory_gbnumber8Minimum memory in GB when auto-selecting the instance profileno
testing_create_client_vpcboolfalseCreate a new client VPC for the TGW jumphost. When false, client_vpc_name must reference an existing VPCno
testing_client_vpc_namestring"tf-testing-vpc"Name of the client VPC — created when create_client_vpc = true, or looked up when create_client_vpc = falseno
testing_client_vpc_regionstring"ca-tor"IBM Cloud region for the client VPC and TGW jumphostno
testing_transit_gateway_namestring""Name of an existing Transit Gateway to connect the client VPC to (leave empty to skip TGW attachment)no
testing_tgw_jumphost_namestring"tf-testing-jumphost-tgw"Name of the TGW-connected jumphost instance (used as prefix for subnet, gateway, security group, and floating IP)no
testing_cluster_jumphost_name_prefixstring"tf-testing-jumphost-cluster"Name prefix for cluster jumphosts — zone name is appended (<prefix>-<zone>)no
roks_cluster_dependency_idstringnullroks_cluster sentinel ID — when set, defers cluster/TGW data source reads to apply time after roks_cluster completesno
create_roks_clusterboolfalseSet to true when the ROKS cluster is being created in this run — skips cluster-VPC-derived data sources that require a pre-existing clusterno
cluster_vpc_idstring""ID of the cluster VPC — pass module.roks_cluster.roks_cluster_vpc_id directly; avoids deriving via worker-pool subnet chain which is deferred to apply timeno