InfraDots logo
Documentation

Workspaces

Workspaces are where you manage your infrastructure configurations and their associated resources.

Workspaces overview

What is a Workspace?

A workspace in InfraDots Platform represents a single infrastructure configuration. Each workspace:

  • Has its own Terraform state
  • Contains its own variables
  • Can be connected to a specific branch in your version control system
  • Tracks the history of infrastructure changes

Managing Workspaces

Creating a Workspace

  1. Navigate to your organization
  2. Click "Create Workspace"
  3. Enter a name and description
  4. Connect to your version control system (optional)
  5. Specify the source repository and branch
  6. Select the Terraform version
  7. Configure additional settings like execution mode and auto-apply
  8. Click "Create Workspace"

Workspace Settings

  • General: Update name, description, and other basic settings
  • Version Control: Connect to GitHub, GitLab, or other VCS providers
  • Execution Mode: Choose between remote or local execution
  • Terraform Version: Select the version of Terraform to use
  • Auto Apply: Enable to automatically apply changes after a successful plan
  • Worker Pool: Assign a specific worker pool for job execution
  • Tags: Add key-value pairs to organize and filter your workspaces

Workspace Operations

  • Plan: Preview changes before applying them
  • Apply: Apply the proposed changes to your infrastructure
  • Destroy: Remove all resources managed by this workspace
  • Lock/Unlock: Prevent concurrent operations on the workspace

Variables

Variables allow you to customize your infrastructure configurations without changing the code.

Types of Variables

InfraDots Platform supports two types of variables:

  • Terraform Variables: Used as input variables in your Terraform configurations
  • Environment Variables: Set as environment variables during Terraform execution

For example, if your Terraform configuration expects these variables:

variable "region" {
  type    = string
  default = "us-east-1"
}

variable "instance_type" {
  type    = string
  default = "t3.micro"
}

You can set them in InfraDots as Terraform variables with keys region and instance_type. Environment variables like AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set as Environment type variables and marked as sensitive.

Variable Scopes

Variables can be defined at two levels:

  • Organization Variables: Applied to all workspaces in the organization
  • Workspace Variables: Applied only to a specific workspace (override organization variables with the same name)

Managing Variables

Creating Variables

  1. Navigate to your organization or workspace
  2. Click "Variables"
  3. Click "Add Variable"
  4. Enter the key and value
  5. Select the category (Terraform or Environment)
  6. Toggle "Sensitive" if the value contains sensitive information
  7. Toggle "HCL" if the value should be parsed as HashiCorp Configuration Language
  8. Add an optional description
  9. Click "Save"

Editing Variables

  1. Navigate to the variables page
  2. Find the variable you want to edit
  3. Click the edit icon
  4. Update the value or settings
  5. Click "Save"

Deleting Variables

  1. Navigate to the variables page
  2. Find the variable you want to delete
  3. Click the delete icon
  4. Confirm the deletion

📝 Note

[!note] Organization variables act as defaults. If a workspace defines a variable with the same key, the workspace value takes precedence.

Schedules

Schedules allow you to automate infrastructure operations on a recurring basis.

What are Schedules?

Schedules in InfraDots Platform let you automatically run operations like plan, apply, or refresh at specified times. This is useful for:

  • Regular infrastructure updates
  • Scheduled maintenance windows
  • Periodic state refreshes
  • Nightly builds or deployments

Managing Schedules

Creating a Schedule

  1. Navigate to your workspace
  2. Click "Schedules"
  3. Click "Add Schedule"
  4. Select the operation type (Plan, Apply, Destroy, or Refresh)
  5. Configure the schedule using cron syntax or the schedule builder
  6. Enable or disable the schedule
  7. Click "Save"

Schedule Types

  • Plan Only: Generate a plan without applying changes
  • Plan and Apply: Generate a plan and apply changes if successful
  • Destroy: Plan to destroy resources
  • Refresh: Refresh state only

Editing Schedules

  1. Navigate to the schedules page
  2. Find the schedule you want to edit
  3. Click the edit icon
  4. Update the settings
  5. Click "Save"

Enabling/Disabling Schedules

  1. Navigate to the schedules page
  2. Find the schedule you want to enable/disable
  3. Toggle the enable/disable switch

Deleting Schedules

  1. Navigate to the schedules page
  2. Find the schedule you want to delete
  3. Click the delete icon
  4. Confirm the deletion