A New Take On IaC

Cloudscript combines the functionalities of Terraform, Kubernetes, and Ansible, under one simple syntax.

Write Less, Do More

Define your infrastructure, CI/CD, and more via a single, intuitive syntax.

Cloudscript vs. Traditional IaC
providers {
aws {
provider = "aws"
region = "us-west-2"
version = "~> 4.0"
}
}
service "frontend" {
provider = "aws"
infrastructure {
network "vpc" {
cidr_block = "10.10.0.0/16"
enable_dns_hostnames = true
resource_type = "aws_vpc"
}
network "public_subnet1" {
vpc_id = "$infrastructure.network.vpc.id"
cidr_block = "10.10.1.0/24"
map_public_ip_on_launch = true
availability_zone = "us-west-2a"
resource_type = "aws_subnet"
}
network "public_subnet2" {
vpc_id = "$infrastructure.network.vpc.id"
map_public_ip_on_launch = true
cidr_block = "10.10.2.0/24"
availability_zone = "us-west-2b"
resource_type = "aws_subnet"
}
network "alb" {
name = "frontend-alb"
load_balancer_type = "application"
subnets = ["$infrastructure.network.public_subnet1.id", "$infrastructure.network.public_subnet2.id"]
resource_type = "aws_lb"
}
compute "web_server" {
instance_type = "t3.micro"
ami = "ami-061dd8b45bc7deb3d"
subnet_id = "$infrastructure.network.public_subnet1.id"
resource_type = "aws_instance"
}
}
configuration {
play "web_role" {
name = "Setup Web Role"
hosts = "{{ target_servers | default('all') }}"
become = true
task {
name = "Install Apache"
package {
name = "httpd"
state = "present"
}
}
task {
name = "Start Apache"
service {
name = "httpd"
state = "started"
enabled = "yes"
}
}
}
}
containers {
app "frontend_app" {
image = "nginx:latest"
type = "Deployment"
replicas = 2
ports = [
{
container_port = 80
service_port = 80
}
]
auto_scaling {
min_replicas = 2
max_replicas = 10
target_cpu_utilization_percentage = 75
}
service {
type = "LoadBalancer"
annotations = {
"service.beta.kubernetes.io/aws-load-balancer-type" = "nlb"
}
}
}
}
deployment {
"infrastructure.compute.web_server" maps_to "configuration.play.web_role"
}
}
# Terraform JSON
{
"terraform": {
"required_providers": {
"aws": {
"source": "hashicorp/aws",
"version": "~> 4.0"
}
}
},
"provider": {
"aws": {
"region": "us-west-2"
}
},
"resource": {
"aws_vpc": {
"vpc": {
"cidr_block": "10.10.0.0/16",
"enable_dns_hostnames": true,
"provider": "aws"
}
},
"aws_subnet": {
"public_subnet1": {
"vpc_id": "$aws_vpc.vpc.id",
"cidr_block": "10.10.1.0/24",
"map_public_ip_on_launch": true,
"availability_zone": "us-west-2a",
"provider": "aws"
},
"public_subnet2": {
"vpc_id": "$aws_vpc.vpc.id",
"map_public_ip_on_launch": true,
"cidr_block": "10.10.2.0/24",
"availability_zone": "us-west-2b",
"provider": "aws"
}
},
"aws_lb": {
"alb": {
"name": "frontend-alb",
"load_balancer_type": "application",
"subnets": [
"$aws_subnet.public_subnet1.id",
"$aws_subnet.public_subnet2.id"
],
"provider": "aws"
}
},
"aws_instance": {
"web_server": {
"instance_type": "t3.micro",
"ami": "ami-061dd8b45bc7deb3d",
"subnet_id": "$aws_subnet.public_subnet1.id",
"provider": "aws"
}
}
}
}
# Ansible YAML
- name: Setup Web Role
hosts: '{{ target_servers | default('all') }}'
become: true
tasks:
- name: Install Apache
package:
name: httpd
state: present
- name: Start Apache
service:
name: httpd
state: started
enabled: 'yes'
# Kubernetes YAML
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-app
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: frontend-app
template:
metadata:
labels:
app: frontend-app
spec:
containers:
- image: nginx:latest
name: frontend-app
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
name: frontend-app
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: frontend-app
type: LoadBalancer
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: frontend-app-hpa
namespace: default
spec:
maxReplicas: 10
metrics:
- resource:
name: cpu
target:
averageUtilization: 75
type: Utilization
type: Resource
minReplicas: 2
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: frontend-app

The Future of IaC

Dive deep into how Cloudscript is revolutionizing infrastructure management. Our whitepaper explores the technical architecture, benefits, and real-world applications of our unified approach.

Download Whitepaper
Whitepaper preview page 3
Whitepaper preview page 2
Whitepaper preview page 1

One Platform, Multiple Tools

Cloudscript brings together the best features of leading infrastructure tools in a single, cohesive platform.

Terraform

Infrastructure provisioning and management across multiple cloud providers.

  • Multi-cloud support
  • State management
  • Resource graph

Ansible

Configuration management and application deployment.

  • Agentless architecture
  • Playbooks
  • Idempotent operations

Kubernetes

Container orchestration and application scaling.

  • Pod management
  • Service discovery
  • Rolling updates

Cloudscript vs. Traditional IaC

See how Cloudscript simplifies and enhances your infrastructure management compared to traditional tools.

FeatureCloudscriptTerraformAnsibleKubernetes
Infrastructure ProvisioningLimited
Configuration ManagementLimitedLimited
Container OrchestrationVia providersLimited
Unified Syntax for IaC, Config, and Containers
Multi-Cloud Native SupportVia cloud providers
Custom Type DefinitionsVia complex objectsVia custom modulesVia CRDs
Calculated FieldsVia localsVia set_factVia annotations
Simplified For-LoopsVia count/for_eachVia loops
Single Tool for Entire Infrastructure Stack

Supercharge Your Workflow

Enhance your Cloudscript development experience with our powerful VSCode extension.

Intelligent Autocomplete

Get context-aware suggestions as you type

Syntax Highlighting

Enjoy clear, readable code with custom highlighting

Integrated Terminal

Run Cloudscript commands directly from VSCode

Get VSCode Extension
VSCode Extension Preview
Cloudscript Community

Join Our Community

Connect with fellow developers, share experiences, and get help from the Cloudscript community.

Networking Opportunities

Connect with professionals in the IaC space

Real-time Support

Get quick answers to your questions from the community

Share Your Projects

Showcase your Cloudscript implementations and get feedback

Join Our Discord

Ready to unify your infrastructure management?

Join developers who are writing less code, deploying faster, and managing their entire infrastructure stack with a single tool.

Join Community

Connect & Learn

Get help from the community and share your Cloudscript experiences.

Join Discord

Get Started

Try Cloudscript

Download and start building with our unified infrastructure tool.

Download

IDE Support

Enhanced Development

Get intelligent autocomplete and validation in VSCode.

Install Extension