Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 1.92 KB

separate_config.md

File metadata and controls

42 lines (32 loc) · 1.92 KB

Separate configuration files per environment

When using the file plugin, instead of placing all your environment configuration in common.yaml you can split environment definitions out into separate files.

This was the default behaviour of Tiller < 0.7.0, although it will remain supported in future versions. To do this, create a /etc/tiller/environments directory, and then a yaml file named after your environment.

For example, consider a /etc/tiller/common.yaml that had a block like this:

environments:
  staging:
    mongodb.erb:
    	target: /etc/mongodb.conf
    	user: root
    	group: root
    	perms: 0644
    	config:
    		replSet: 'staging'
   production:
    ... rest of content snipped ...

You would create a /etc/tiller/environments/staging.yaml file with the following content:

mongodb.erb:
	target: /etc/mongodb.conf
	user: root
	group: root
	perms: 0644
	config:
		replSet: 'staging'

And so on, one for each environment. You would then remove the environments: block from common.yaml, and Tiller will switch to loading these individual files.

Separate config files under config.d

If you want to further split out your configuration, you can create a config.d directory (usually at /etc/tiller/config.d) and place configuration fragments in separate YAML files under it. All these files will be loaded in order and merged together. Any configuration variable or block that would normally go in common.yaml can be split out into these separate files.

This is particularly useful for creating layered Docker images which inherit from a base. The base image could contain your default Tiller configuration, and you can then drop additional files under config.d to over-ride the defaults, or to specify new templates for that particular container.

See the test fixture for some examples.