Skip to content
This repository has been archived by the owner on Aug 18, 2022. It is now read-only.

Symphony v2 Draft Proposal

Ben Coleman edited this page Jun 9, 2021 · 9 revisions

Current working draft, this up for discussion and not fixed. This will be amended pending further input

As of 9th June this has stabilised, the changes are as follows:

  • Added toplevel symphonyVersion field which is checked for by Rover v2
  • Paths are relative to where rover is being executed NOT the location of the config file
  • landingZonePath must not end with "caf_solution" or "caf_launchpad". This is appended internally by Rover v2
  • tfState key must not end with ".tfstate". This is appended internally by Rover v2
  • tfState key is optional, when not supplied the name of the stack is used
  • Added toplevel workspace key
  • type field is ignored

Suggestion: Use YAML aliases to prevent repetition e.g. with the landingzone path

Below is a sample YAML config, it's provided as an example only. For a working config to use as a reference please see the samples/ref-app direectory

symphonyVersion: 2

# The CAF environment name
environment: benc

# We can use YAML aliases to save repetition 
aliases: &lzPath samples/ref-app/caf_modules/landingzones

# It is critical that this matches the container names in launchpad storage_accounts.tfvars
workspace: tfstate

levels:
  - level: level0
    launchpad: true
    type: platform
    stacks:
      - stack: lp
        landingZonePath: *lzPath 
        configurationPath: ./local/configs/level0/launchpad
  - level: level1
    type: platform # What is this key for?
    stacks:
      - stack: web
        landingZonePath: *lzPath 
        configurationPath: ./local/configs/level1/web
        tfState: web-state 
      - stack: test
        landingZonePath: *lzPath 
        configurationPath: ./local/configs/level1/test
        # tfState key is optional in v2, and the stack name is used instead 
Clone this wiki locally