diff --git a/fast/stages/03-gke-multitenant/_module/README.md b/fast/stages/03-gke-multitenant/_module/README.md
index e1876258..7afc74d5 100644
--- a/fast/stages/03-gke-multitenant/_module/README.md
+++ b/fast/stages/03-gke-multitenant/_module/README.md
@@ -41,13 +41,13 @@ TODO
| name | description | type | required | default | producer |
|---|---|:---:|:---:|:---:|:---:|
| [billing_account_id](variables.tf#L27) | Billing account id. | string
| ✓ | | |
-| [clusters](variables.tf#L63) | | map(object({…}))
| ✓ | | |
+| [clusters](variables.tf#L63) | | map(object({…}))
| ✓ | | |
| [folder_id](variables.tf#L165) | Folder used for the GKE project in folders/nnnnnnnnnnn format. | string
| ✓ | | |
| [nodepools](variables.tf#L201) | | map(map(object({…})))
| ✓ | | |
| [prefix](variables.tf#L218) | Prefix used for resources that need unique names. | string
| ✓ | | |
-| [vpc_config](variables.tf#L223) | Shared VPC project and VPC details. | object({…})
| ✓ | | |
+| [vpc_config](variables.tf#L230) | Shared VPC project and VPC details. | object({…})
| ✓ | | |
| [authenticator_security_group](variables.tf#L21) | Optional group used for Groups for GKE. | string
| | null
| |
-| [cluster_defaults](variables.tf#L32) | Default values for optional cluster configurations. | object({…})
| | {…}
| |
+| [cluster_defaults](variables.tf#L32) | Default values for optional cluster configurations. | object({…})
| | {…}
| |
| [dns_domain](variables.tf#L96) | Domain name used for clusters, prefixed by each cluster name. Leave null to disable Cloud DNS for GKE. | string
| | null
| |
| [fleet_configmanagement_clusters](variables.tf#L102) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string))
| | {}
| |
| [fleet_configmanagement_templates](variables.tf#L110) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…}))
| | {}
| |
@@ -56,6 +56,7 @@ TODO
| [group_iam](variables.tf#L170) | Project-level IAM bindings for groups. Use group emails as keys, list of roles as values. | map(list(string))
| | {}
| |
| [labels](variables.tf#L177) | Project-level labels. | map(string)
| | {}
| |
| [nodepool_defaults](variables.tf#L183) | | object({…})
| | {…}
| |
+| [project_services](variables.tf#L223) | Additional project services to enable. | list(string)
| | []
| |
## Outputs
diff --git a/fast/stages/03-gke-multitenant/dev/README.md b/fast/stages/03-gke-multitenant/dev/README.md
index 894c8698..6ed71da3 100644
--- a/fast/stages/03-gke-multitenant/dev/README.md
+++ b/fast/stages/03-gke-multitenant/dev/README.md
@@ -45,30 +45,33 @@ TODO
| name | description | type | required | default | producer |
|---|---|:---:|:---:|:---:|:---:|
-| [billing_account](variables.tf#L27) | Billing account id and organization id ('nnnnnnnn' or null). | object({…})
| ✓ | | 00-bootstrap
|
-| [clusters](variables.tf#L67) | | map(object({…}))
| ✓ | | |
-| [folder_ids](variables.tf#L169) | Folders to be used for the networking resources in folders/nnnnnnnnnnn format. If null, folder will be created. | object({…})
| ✓ | | 01-resman
|
-| [host_project_ids](variables.tf#L184) | Host project for the shared VPC. | object({…})
| ✓ | | 02-networking
|
-| [nodepools](variables.tf#L216) | | map(map(object({…})))
| ✓ | | |
-| [prefix](variables.tf#L233) | Prefix used for resources that need unique names. | string
| ✓ | | |
-| [vpc_self_links](variables.tf#L238) | Self link for the shared VPC. | object({…})
| ✓ | | 02-networking
|
-| [authenticator_security_group](variables.tf#L21) | Optional group used for Groups for GKE. | string
| | null
| |
-| [cluster_defaults](variables.tf#L36) | Default values for optional cluster configurations. | object({…})
| | {…}
| |
-| [dns_domain](variables.tf#L100) | Domain name used for clusters, prefixed by each cluster name. Leave null to disable Cloud DNS for GKE. | string
| | null
| |
-| [fleet_configmanagement_clusters](variables.tf#L106) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string))
| | {}
| |
-| [fleet_configmanagement_templates](variables.tf#L114) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…}))
| | {}
| |
-| [fleet_features](variables.tf#L149) | Enable and configue fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…})
| | null
| |
-| [fleet_workload_identity](variables.tf#L162) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool
| | true
| |
-| [group_iam](variables.tf#L177) | Project-level IAM bindings for groups. Use group emails as keys, list of roles as values. | map(list(string))
| | {}
| |
-| [labels](variables.tf#L192) | Project-level labels. | map(string)
| | {}
| |
-| [nodepool_defaults](variables.tf#L198) | | object({…})
| | {…}
| |
+| [automation](variables.tf#L21) | Automation resources created by the bootstrap stage. | object({…})
| ✓ | | 00-bootstrap
|
+| [billing_account](variables.tf#L35) | Billing account id and organization id ('nnnnnnnn' or null). | object({…})
| ✓ | | 00-bootstrap
|
+| [clusters](variables.tf#L75) | | map(object({…}))
| ✓ | | |
+| [folder_ids](variables.tf#L177) | Folders to be used for the networking resources in folders/nnnnnnnnnnn format. If null, folder will be created. | object({…})
| ✓ | | 01-resman
|
+| [host_project_ids](variables.tf#L192) | Host project for the shared VPC. | object({…})
| ✓ | | 02-networking
|
+| [nodepools](variables.tf#L224) | | map(map(object({…})))
| ✓ | | |
+| [prefix](variables.tf#L247) | Prefix used for resources that need unique names. | string
| ✓ | | |
+| [vpc_self_links](variables.tf#L259) | Self link for the shared VPC. | object({…})
| ✓ | | 02-networking
|
+| [authenticator_security_group](variables.tf#L29) | Optional group used for Groups for GKE. | string
| | null
| |
+| [cluster_defaults](variables.tf#L44) | Default values for optional cluster configurations. | object({…})
| | {…}
| |
+| [dns_domain](variables.tf#L108) | Domain name used for clusters, prefixed by each cluster name. Leave null to disable Cloud DNS for GKE. | string
| | null
| |
+| [fleet_configmanagement_clusters](variables.tf#L114) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string))
| | {}
| |
+| [fleet_configmanagement_templates](variables.tf#L122) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…}))
| | {}
| |
+| [fleet_features](variables.tf#L157) | Enable and configue fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…})
| | null
| |
+| [fleet_workload_identity](variables.tf#L170) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool
| | true
| |
+| [group_iam](variables.tf#L185) | Project-level IAM bindings for groups. Use group emails as keys, list of roles as values. | map(list(string))
| | {}
| |
+| [labels](variables.tf#L200) | Project-level labels. | map(string)
| | {}
| |
+| [nodepool_defaults](variables.tf#L206) | | object({…})
| | {…}
| |
+| [outputs_location](variables.tf#L241) | Path where providers, tfvars files, and lists for the following stages are written. Leave empty to disable. | string
| | null
| |
+| [project_services](variables.tf#L252) | Additional project services to enable. | list(string)
| | []
| |
## Outputs
| name | description | sensitive | consumers |
|---|---|:---:|---|
-| [cluster_ids](outputs.tf#L62) | Cluster ids. | | |
-| [clusters](outputs.tf#L57) | Cluster resources. | | |
-| [project_id](outputs.tf#L67) | GKE project id. | | |
+| [cluster_ids](outputs.tf#L63) | Cluster ids. | | |
+| [clusters](outputs.tf#L57) | Cluster resources. | ✓ | |
+| [project_id](outputs.tf#L68) | GKE project id. | | |