User Data & Cloud-Init
Automate instance configuration with cloud-init, scripts, and templates. Version-controlled, reusable, and instantly applied at boot.
At a Glance
User Data Types
Choose the right format for your needs
cloud-config (YAML)
Declarative YAML. Users, packages, services, files, commands, runcmd. Full cloud-init spec supported.
Shell Script
Raw bash/sh. Runs as root at boot. Full system access. Shebang required.
Template
Reusable templates with variables. {{ instance_id }}, {{ region }}, {{ project_id }}. Version-controlled.
Capabilities
Everything you need to bootstrap infrastructure
User Management
Create users, SSH keys, sudo access, groups. Lock root, enforce key-only.
Package Installation
apt, yum, dnf, apk, pip, npm. Pin versions. Private repo support.
Service Management
systemd units: enable, start, restart, mask. Custom unit files.
File Management
Create files, set permissions/owner, write content, append, templating.
Network Config
Static IPs, DNS, routes, firewall rules, interfaces. Netplan, ifupdown.
Disk & Filesystem
Partition, format (ext4/xfs/btrfs), mount, LVM, RAID, encryption.
Container Runtime
Docker, containerd, Podman. Images, networks, volumes, systemd services.
Kubernetes
kubeadm, k3s, RKE2. Join clusters, labels, taints, CNI, CSI.
Security Hardening
SSH config, fail2ban, auditd, AppArmor/SELinux, kernel params.
How It Works
From template to configured instance in seconds.
Infrastructure as Code for Boot
Your instance configuration lives in Git. Reviewed via PR. Tested in staging. Promoted to production. Same workflow as your application code.
And when you need help, our engineers are a Slack message away.
Automate Your Instance Boot
cloud-init, scripts, templates. Version-controlled. Instant apply. Zero egress.