Before You Start
You run two small Terraform configurations from your own machine: one that creates the identity Cielara deploys with, and one that creates the network Cielara deploys into. Both are required. You need:terraform version and your CLI’s version command (gcloud version, aws --version, az version) show whether you have them.
Where the Files Go
The form names one folder per deployment, with a subfolder for each Terraform configuration. Each holds its ownmain.tf and Terraform state:
Deployment Flow
1
Sign Up for a Cielara Account
Go to console.cielara.ai/signup and sign up. Enter your details and verify your email. Once your account is created you receive a 30-day trial license and access to the Cielara console.If the console shows Your license is being set up after you sign in, your trial license is still being issued. This usually takes a few minutes.
2
Open the Deploy Form
Sign in to the Cielara console. A new account with no deployment opens the deploy form directly. You can also reach it from Deployments in the sidebar.The footer names the one thing still blocking the current step, for example Upload cielara-key.json to continue, and Continue stays disabled until it is done. The steps along the top show where you are. Click a completed step to go back to it.
3
Cloud
Under Which cloud are you deploying to?, pick Google Cloud, AWS or Azure. Every later step is tailored to that cloud. The Deployment guide link beside the title opens this page. What you need for each cloud is listed under Before You Start.
4
Target, Prepare and Infrastructure
- GCP
- AWS
- Azure
Target
Prepare Your GCP Project
This step creates the service account Cielara deploys with. You need Terraform 1.7 or later and thegcloud CLI, signed in as a project owner.-
Sign in to your cloud. Google expires these credentials on its own schedule, so repeat this before every apply.
Then check that your project ID exists. The form fills in your Project ID.If it prints the project, the ID is right and your account can see it. An error such as
does not have permission to access projects instancemeans the Project ID or the signed-in account is wrong. Fix it before you apply: Terraform fails the same way, only later. -
Make a folder for this deployment.
-
Download main.tf into the /prepare folder you created. Click Download main.tf. The file is pre-filled with your project and region. Then move it into the folder:
-
Apply. The apply enables the required APIs, creates the service account with the minimum IAM roles, and writes
cielara-key.json.By default Terraform keeps its state in this folder. This is not recommended: the state exists only on this machine, and it holds the service account’s private key. Keep it in a GCS bucket you own instead.main.tfcarries ready-madebackendblocks: uncomment the one you want beforeterraform init. If you already applied with local state, runterraform init -migrate-stateafter uncommenting it. -
Upload the cielara-key.json. It is in
~/cielara/<name>/prepare. Drop it on Drop cielara-key.json here, or click Browse. Treat the file like a password and do not commit it to git.
Infrastructure
The network is required. Continue stays disabled, with Upload cielara-network.json to continue in the footer, until you upload the file from the steps below. Node pools, database and version have defaults you can leave alone.Network
Cielara deploys into a network you own. The form gives you a pre-filled Terraform file for Cielara’scielara-network module. It creates a VPC, a regional subnet with pods and services ranges, private Google access, and Cloud NAT with a static egress IP.-
Make a folder for the network. It sits next to the prepare folder, not inside it: the network is its own Terraform configuration with its own state.
-
Download main.tf into the /network folder you created. Click Download main.tf. The file is pre-filled with your project and region. Move it into the network folder:
If your browser saved it as
main (1).tfbecause the preparemain.tfwas still in the download folder, move that file instead. -
Apply it and write its output.
-
Upload cielara-network.json. It is in
~/cielara/<name>/network. The form lists the values it read from the file, and Review shows them again.
- is empty. The command ran before the apply finished, or the apply failed. Terraform printed why in your terminal
- describes a network in a different project or region than the Target step
- is missing a value, or has a value Cielara cannot use. Nothing from the file is kept
- A regional subnet in the deploy region and the deploy project. Shared VPC host and service projects are not supported
- Two secondary ranges on that subnet, one for pods and one for services. The pods range needs a
/24per node of free space - Private Google access enabled on the subnet
- Working egress (Cloud NAT or equivalent) with a stable IP.
nat_ipis required when the deployment uses Cielara’s managed RabbitMQ, because the broker’s firewall admits exactly that address - Address space that does not overlap
172.16.0.0/28(the Kubernetes control plane range) or the Cloud SQL private services range,10.96.0.0/16by default
default network a new project gets, has no secondary ranges or Cloud NAT and does not meet this contract.Node Pools
The defaults suit most deployments. The Node pools row shows the default pool’s machine type and capacity, for examplen2-standard-8 · on-demand. Click Change to pick another. Change a machine type only when the region lacks capacity for the default. Types that are too small for a pool are greyed out with the reason.Recommended machine types by size of your codebase:
Database
The Database row reads Sized by Cielara. Leave it to let Cielara size the managed Postgres instance, or pick a size from the list. Your cloud decides what is orderable in the region. You can change it after deployment from the deployment’s Database tab.Version
Latest deploys the latest release and is recommended. Choose Pin to pick a specific release from the history; pre-release versions are markedpre.5
Review and Deploy
Review and deploy lists everything before anything is created: the target, including the resource prefix every resource is named with; the credentials; the network values from
cielara-network.json; and the node pools, database and version. What gets created lists the resources Cielara adds in your account. Click Edit on any group to go back to its step. The region and name cannot be changed after deployment.Click Deploy Cielara. The footer shows how long a deployment usually takes. Cielara creates the infrastructure and installs itself. No manual steps are required.Deployment started confirms the deployment, the cloud and the region. Click View deployment to follow its progress, or Start another.If the deploy is refused with client already has a deployment ... destroy it before creating another, your account already has a Cielara deployment. Each account runs one at a time: destroy the existing deployment first, then deploy again.6
Verify
When the status reaches Deployment complete, the Deployments page shows your Cielara URL. Open it, sign in with the invitation sent to your email, and continue with the Quickstart.If the status reaches Deployment failed, expand the deployment to read the message. Common causes are a missing permission on the prepare role, a region without capacity for the chosen machine type, or a network that does not meet the contract above. Fix the cause and click Retry.
Terraform Module Reference
The preparemain.tf you download pins a release of Cielara’s prepare module for your cloud. The form links to the exact version it pinned under Module docs. The full module documentation is on the Terraform Registry:
The network
main.tf pins the same release of Cielara’s network module. It also re-exports the module’s handback output, which is what terraform output -raw handback reads. A main.tf you write yourself needs the same block, or the command writes an empty file: