Application SettingsΒΆ
GCasC allows configuring Application Settings. It consists of plenty of configuration options, that can be set only through UI or API. They are key to make your GitLab instance work as you intend to.
Reference: https://docs.gitlab.com/12.4/ee/api/settings.html
Settings the structure is flexible. It starts with a root key settings
. Then you provide
configuration options as defined in these docs. For example
settings:
elasticsearch:
url: http://elasticsearch.mygitlab.com
username: elastic_user
password: elastic_password
and
settings:
elasticsearch_url: http://elasticsearch.mygitlab.com
elasticsearch_username: elastic_user
elasticsearch_password: elastic_password
are exactly the same and match elasticsearch_url
, elasticsearch_username
and elasticsearch_password
settings.
This means you can flexibly structure your configuration Yaml, where a map child keys are prefixed by parent key (here
elasticsearch
parent key was a prefix for url
, username
and password
keys). Simply:
settings:
prefix1:
prefix2:
value21: 'value21'
value1: 'value1'
prefix1_value2: 'value2'
will try to configure following properties: prefix_value1
, prefix_value2
and prefix1_prefix2_value21
.
You only need to follow available Application Settings.
Note: Any invalid keys will be discarded, warn message will be presented, but GCasC will continue execution.
You can adjust your Yamls by splitting them into multiple or injecting environment variables into certain values using
!include
or !env
directives respectively. Example is shown below:
settings:
elasticsearch: !include config/elasticseach.yml
terms: !include tos.md
where:
settings.elasticsearch
is injected from file under./config/elasticsearch.yml
path. Its configuration may look like this:url: http://elasticsearch.mygitlab.com username: !env ELASTICSEARCH_USERNAME password: !env ELASTICSEARCH_PASSWORD
Note that here also
ELASTICSEARCH_USERNAME
,ELASTICSEARCH_PASSWORD
are used to inject username and password from environment variablessettings.terms
is injected from./tos.md
file