Files
hunfabric/modules/datafusion
Hemanand eaa420534b Add agent engine BYOC support (#3885)
* feat(agent-engine): add support for container and custom image specs

- Add container_config to deployment_files.
- Add image_spec with build_args to source_config.
- Make agent_framework optional and document supported values.
- Implement dynamic specs for container and source deployments.
- Add examples and automated tests for new deployment types.

* chore: update Google provider version to 7.28.0 across modules

Mechanical update of versions.tf and versions.tofu files using tools/versions.py.

* feat(agent-engine): refactor for container deployments and API alignment

- Group deployment settings under 'deployment_config' (renamed from 'deployment_files').
- Support container-based deployments via 'container_config' and 'image_spec'.
- Refactor 'source_files_config' (renamed from 'source_config') to include mutually exclusive 'python_spec' and 'image_spec'.
- Support 'developer_connect_config' as a source code type.
- Group engine settings (framework, env, secrets) under 'agent_engine_config'.
- Add support for 'memory_bank_config' persistent memory.
- Overhaul reasoning engine resources with dynamic blocks to match provider schema.
- Update all documentation examples, add TOC, and refresh test inventories.

* Update dynamic python_spec block and related example yamls

* Ignore changes setting for developer_connect_source under lifecycle management

* fixing review comments for `try` and default path for `source_path`

---------

Co-authored-by: Hemanand <hemr@google.com>
Co-authored-by: Julio Castillo <jccb@google.com>
2026-04-21 17:46:20 +00:00
..
2026-04-18 10:07:14 +02:00

Google Cloud Data Fusion Module

This module allows simple management of 'Google Data Fusion' instances. It supports creating Basic or Enterprise, public or private instances.

Examples

Auto-managed IP allocation

module "datafusion" {
  source     = "./fabric/modules/datafusion"
  name       = "my-datafusion"
  region     = "europe-west1"
  project_id = "my-project"
  network    = "my-network-name"
  # TODO: remove the following line
  firewall_create = false
}
# tftest modules=1 resources=3

Externally managed IP allocation

module "datafusion" {
  source               = "./fabric/modules/datafusion"
  name                 = "my-datafusion"
  region               = "europe-west1"
  project_id           = "my-project"
  network              = "my-network-name"
  ip_allocation_create = false
  ip_allocation        = "10.0.0.0/22"
}
# tftest modules=1 resources=3

Variables

name description type required default
name Name of the DataFusion instance. string
network Name of the network in the project with which the tenant project will be peered for executing pipelines in the form of projects/{project-id}/global/networks/{network}. string
project_id Project ID. string
region DataFusion region. string
description DataFuzion instance description. string "Terraform managed."
enable_stackdriver_logging Option to enable Stackdriver Logging. bool false
enable_stackdriver_monitoring Option to enable Stackdriver Monitorig. bool false
firewall_create Create Network firewall rules to enable SSH. bool true
ip_allocation Ip allocated for datafusion instance when not using the auto created one and created outside of the module. string null
ip_allocation_create Create Ip range for datafusion instance. bool true
labels The resource labels for instance to use to annotate any related underlying resources, such as Compute Engine VMs. map(string) {}
network_peering Create Network peering between project and DataFusion tenant project. bool true
private_instance Create private instance. bool true
type Datafusion Instance type. It can be BASIC or ENTERPRISE (default value). string "ENTERPRISE"

Outputs

name description sensitive
id Fully qualified instance id.
ip_allocation IP range reserved for Data Fusion instance in case of a private instance.
resource DataFusion resource.
service_account DataFusion Service Account.
service_endpoint DataFusion Service Endpoint.
version DataFusion version.