Developer Center

Workspace schema

Configure your PowerTools workspace with a simple yaml schema at .powertools/workspace.yml in your code repository.

Workspace schema

Each workspace is configured using a simple yaml schema file that lives at .powertools/workspace.yml in your team's code repository.

A basic workspace schema consists of:

You should never need to create a workspace schema from scratch. Use pt new --kind=workspace  instead.

Root domains

Root domains are how you configure which domain names PowerTools can create for your service routes. Each root domain name added should be a domain you have access to, and can update NS records to point to PowerTools.

root_domains:
  - example.com
  - powertools.example.com

Learn more

Dns records

When you migrate a domain into PowerTools for full management, you often need to add additional DNS entries for various configurations (such as Gsuite, Sendgrid and more).

dns_records:
  - name: record.example.com
    type: cname
    ttl: 3600
    records:
      - s2.domainkey.ul67.
  • name - the full record to create
  • type - the record type (such as mx, a, cname, ns)
  • ttl - record ttl in seconds
  • records - record values

Learn more

Owners

Users who are listed as owners have access to run pt workspace sync.

owners:
  - user@example.com

Users

Users who are listed as users have access to develop, build and deploy apps.

users:
  - user@example.com

Environment

Environments represent stages for your software.

  - name: prod
    cloud: aws
    cloud_region: us-west-1
    cloud_account_id: 491187160246

    zones: 2
    create_group_node_pools: true
    release_target: true
    enable_serverless: true
    enable_containers: true
    primary: true
  • name - environment name

  • cloud - cloud to use (aws or gcp)

  • cloud_region - cloud region to use

  • cloud_account_id - cloud account id

  • create_group_node_pools - whether to create individual node pools for each group

  • enable_serverless - enable serverless apps in this environment

  • enable_containers - enable serverless apps in this environment

The following currently only allow a single environment per workspace:

  • release_target - denotes if an environment is release
  • primary - denotes a primary environment where PowerTools schemas are stored
If you only want to deploy static sites, set both enable_serverless andenable_containers to false.

Set create_group_node_pools to false to save on infrastructure costs in testing environments.

We are planning on adding support for multiple release environments, to support live-livedeployments.

Learn more

Groups

Groups are how you split services in your workspace.

groups:
  - name: main
    default: true
    users:
      - jm@powertools.dev
    machine_type: c3.xlarge

    gpu_enabled: false
    spot_enabled: false

    disk_size: 500
    nodes: 1 -> 6
  • name - group name
  • default - whether services with no group declared belong to this group
  • users - list of users who can build, develop and deploy these services
  • machine_type - the machine type to use for nodes in this group
  • spot_enabled - use spot machines for this group
  • disk_size - disk size to use for each node
  • nodes - range of nodes to auto scale for the group

Learn more