1. The Guarantee of Zero Vendor Lock-in
One of the greatest fears when adopting a new developer tool or infrastructure abstraction is vendor lock-in. What happens if your company decides to standardize on HashiCorp Terraform Cloud? What if a client mandates pure HCL deliverables?
TellIaC was engineered from day one with a Zero Lock-in Promise. TellIaC is not a proprietary silo; it serves as a high-velocity accelerator for the global Terraform ecosystem.
You can draft a complex multi-cloud architecture in 30 seconds using intuitive plain English sentences, then instantly generate standard, fully compliant Terraform HCL files with a single command:
telliac export --out-dir ./tf_export
telliac export and immediately gets production-grade HCL files ready for code review and deployment.
2. How the HCL Code Synthesis Engine Works
When you invoke telliac export, the compiler executes an AST transpilation pipeline:
- Provider Generation: Translates
Use provider "aws" region "us-east-1"into a standardprovider "aws"block with appropriate provider version constraints. - Variable Extraction: Emits a dedicated
variables.tffile with proper HCL type specifications (string, number, bool, list) and default values. - Resource Synthesis: Maps resource declarations into idiomatic Terraform resource blocks in
main.tf, automatically resolving cross-resource reference syntax (e.g.vpc_id = aws_vpc.prod_vpc.id). - Outputs Generation: Creates
outputs.tfmapping exported outputs with descriptive labels.
3. Side-by-Side Code Walkthrough
Observe the direct translation between a TellIaC plain English configuration and the generated Terraform files:
A. Source TellIaC Configuration (`main.hiac`)
# Declare provider and variables
Use provider "aws" region "us-east-1" for environment "production".
instance_count = 3
vpc_cidr = "10.100.0.0/16"
# Declare network and compute
Create 1 "aws_vpc" resource named "prod_vpc" with cidr_block vpc_cidr in environment "production".
Create 1 "aws_subnet" resource named "prod_subnet" with cidr_block "10.100.1.0/24", vpc "prod_vpc", depending on "prod_vpc" in environment "production".
Create 1 "aws_instance" resource named "web_server" with instance_type "t3.medium", subnet "prod_subnet", count instance_count in environment "production".
Output "vpc_id" as the id of "prod_vpc" in environment "production".
B. Synthesized Terraform Configuration (`main.tf`)
# Synthesized by TellIaC HCL Export Engine
provider "aws" {
region = "us-east-1"
default_tags {
tags = {
Environment = "production"
ManagedBy = "TellIaC-Export"
}
}
}
resource "aws_vpc" "prod_vpc" {
cidr_block = var.vpc_cidr
tags = {
Name = "prod_vpc"
}
}
resource "aws_subnet" "prod_subnet" {
vpc_id = aws_vpc.prod_vpc.id
cidr_block = "10.100.1.0/24"
depends_on = [aws_vpc.prod_vpc]
}
resource "aws_instance" "web_server" {
count = var.instance_count
instance_type = "t3.medium"
subnet_id = aws_subnet.prod_subnet.id
}
C. Synthesized Variables (`variables.tf`)
variable "instance_count" {
type = number
default = 3
}
variable "vpc_cidr" {
type = string
default = "10.100.0.0/16"
}
D. Synthesized Outputs (`outputs.tf`)
output "vpc_id" {
description = "The ID of aws_vpc.prod_vpc"
value = aws_vpc.prod_vpc.id
}
4. Verifying and Deploying with Standard Terraform
Once exported, the files are completely decoupled from TellIaC. You can run standard HashiCorp CLI commands immediately:
cd ./tf_export
terraform init
terraform validate
terraform plan
terraform apply
5. Frequently Asked Questions
Does the export support all four providers (AWS, Azure, GCP, K8s)?
Yes. The export engine generates standard HashiCorp official provider blocks for hashicorp/aws, hashicorp/azurerm, hashicorp/google, and hashicorp/kubernetes.
Can I run the export in CI/CD?
Absolutely. Many teams use TellIaC in their pre-commit hooks to automatically generate and verify HCL before merging into their company's centralized Terraform repository.
Explore More Resources: Return to the Learning Center Hub or test your configurations in the Live Playground.