Skip to content

help settings

James Nesbitt edited this page Sep 4, 2015 · 7 revisions

project architecture

Coach is primarily configured by the inclusion of a .coach folder into a project. Inside this folder are a number of configuration files that coach recognizes, and parses to read the project settings.

Most of the configuration files are parsed as YAML.

.coach folder

.coach/conf.yml

This file is a YAML file that configures project level settings such as the name of the project.

  • Project : project name, often used in generation of image and container names
  • Tokens : an optional map of tokens, which can be used for substitution in other configuration files.

.coach/nodes.yml

This YAML file lists a map of nodes, each node corresponding to a set of containers based on a single build/image.

.coach/secrets/secrets.yml

A map of tokens, which can also be used for substitution in further config files. This file is kept separate so that the entire secrets folder is easily targeted for ignores in git.

The purpose of this file is to centralize sensitive, or user specific information for a project, which should not be shared as a part of a project configuration.

~/.coach folder

If a ~/.coach folder exists, it can be used to provide settings and tokens that can be shared across all projects.

~/.coach/secrets/secrets.yml

A user level secrets file functions that same as the project secrets file, but keeps secrets across all projects for a user. The user secrets files is parsed before the project file, so project secrets take precendence over user secrets.

~/.coach/templates folder

If a templates folder exists, it can container subfolders that can be used as init templates using the syntax:

$/> coach init user {template}

In this case, the matching template subfolder contents would be copied into the current folder in order to create a new project.