LaunchFlow YAML

launchflow.yaml describes the LaunchFlow configuration for all subdirectories similar to a git respository. A basic launchflow.yaml file looks like this:

1
project: my-project
2
environment: dev

With this yaml when you run LaunchFlow commands such as launchflow create or launchflow deploy it will use the my-project project and dev environment by default. You can override these commands at any time by using the --project and --environment flags. For example:

1
launchflow create --environment prod

will create a new environment using the prod environment in the my-project project.

The yaml configuration also describes what services are connected, this is what launchflow deploy will use to deploy your services. An basic example of a launchflow.yaml file with services looks like this:

1
project: my-project
2
environment: dev
3
services:
4
- name: my-service1
5
product: gcp_cloud_run
6
dockerfile: service1/Dockerfile
7
- name: my-service2
8
product: gcp_cloud_run
9
dockerfile: service2/Dockerfile

When you run launchflow deploy it will look up what services you have defined to initiate the deployment for each one.

Schema

project

The project name that you want to use for all commands.

  • Required: Yes
  • Type: string
  • Pattern: ^[a-z0-9-]+$
  • Min Length: 3
  • Max Length: 63

environment

The environment name that you want to use for all commands.

  • Required: Yes
  • Type: string
  • Pattern: ^[a-z0-9-]+$
  • Min Length: 3
  • Max Length: 15

services

Your configured services. You can have multiple services configured in one yaml file.

services.name

The name of the service.

  • Required: Yes
  • Type: string
  • Pattern: ^[a-z0-9-]+$
  • Min Length: 3
  • Max Length: 63

services.product

The product that you want to use for the service.

  • Required: Yes
  • Type: string
  • Pattern: ^(gcp_cloud_run|aws_ecs_fargate)$

services.build_directory

The directory to initiate building your service from. This is the directory that will be zipped up and sent to the build engine on your cloud provider (GCP Cloud Build or AWS Code Build). The dockerfile for the service should be in this directory.

  • Required: No
  • Type: string
  • Default: .

services.dockerfile

The path to the Dockerfile for the service. This path is relative to the build_directory path.

  • Required: No
  • Type: string
  • Default: Dockerfile

services.build_ignore

A list of files or directories to ignore when building the service. This is useful for ignoring files that you don't want to be included in the build. These files will not be included in the zip file that is sent to your build engine.

  • Required: No
  • Type: array<string>
  • Default: []