2018-11-15 04:09:57 +01:00
|
|
|
import os
|
|
|
|
|
2019-03-12 12:09:01 +01:00
|
|
|
from g import templates_dir
|
2019-03-18 08:07:19 +01:00
|
|
|
from .configs import parse_versions
|
2018-11-15 04:09:57 +01:00
|
|
|
from .jinja import render_jinja
|
|
|
|
|
|
|
|
docker_compose_template_path = os.path.join(templates_dir, 'docker_compose', 'docker-compose.yml.jinja')
|
2019-03-12 12:09:01 +01:00
|
|
|
docker_compose_yml_path = '/compose_location/docker-compose.yml'
|
2018-11-15 04:09:57 +01:00
|
|
|
|
2019-03-18 08:07:19 +01:00
|
|
|
# render docker-compose
|
2018-11-15 04:09:57 +01:00
|
|
|
def prepare_docker_compose(configs, with_clair, with_notary, with_chartmuseum):
|
2019-03-18 08:07:19 +01:00
|
|
|
versions = parse_versions()
|
|
|
|
VERSION_TAG = versions.get('VERSION_TAG') or 'dev'
|
2019-10-17 06:00:51 +02:00
|
|
|
REGISTRY_VERSION = versions.get('REGISTRY_VERSION') or 'v2.7.1-patch-2819-2553'
|
2019-03-18 08:07:19 +01:00
|
|
|
NOTARY_VERSION = versions.get('NOTARY_VERSION') or 'v0.6.1'
|
2019-08-19 10:19:29 +02:00
|
|
|
CLAIR_VERSION = versions.get('CLAIR_VERSION') or 'v2.0.9'
|
2019-10-17 06:00:51 +02:00
|
|
|
CLAIR_ADAPTER_VERSION = versions.get('CLAIR_ADAPTER_VERSION') or ''
|
2019-07-17 08:38:08 +02:00
|
|
|
CHARTMUSEUM_VERSION = versions.get('CHARTMUSEUM_VERSION') or 'v0.9.0'
|
2018-11-15 04:09:57 +01:00
|
|
|
|
|
|
|
rendering_variables = {
|
|
|
|
'version': VERSION_TAG,
|
|
|
|
'reg_version': "{}-{}".format(REGISTRY_VERSION, VERSION_TAG),
|
2019-03-18 08:07:19 +01:00
|
|
|
'redis_version': VERSION_TAG,
|
|
|
|
'notary_version': '{}-{}'.format(NOTARY_VERSION, VERSION_TAG),
|
|
|
|
'clair_version': '{}-{}'.format(CLAIR_VERSION, VERSION_TAG),
|
2019-10-17 06:00:51 +02:00
|
|
|
'clair_adapter_version': '{}-{}'.format(CLAIR_ADAPTER_VERSION, VERSION_TAG),
|
2019-03-18 08:07:19 +01:00
|
|
|
'chartmuseum_version': '{}-{}'.format(CHARTMUSEUM_VERSION, VERSION_TAG),
|
2018-11-15 04:09:57 +01:00
|
|
|
'data_volume': configs['data_volume'],
|
|
|
|
'log_location': configs['log_location'],
|
2019-03-12 12:09:01 +01:00
|
|
|
'protocol': configs['protocol'],
|
2019-04-02 14:08:26 +02:00
|
|
|
'http_port': configs['http_port'],
|
|
|
|
'registry_custom_ca_bundle_path': configs['registry_custom_ca_bundle_path'],
|
2019-08-26 09:04:57 +02:00
|
|
|
'external_redis': configs['external_redis'],
|
|
|
|
'external_database': configs['external_database'],
|
2018-11-15 04:09:57 +01:00
|
|
|
'with_notary': with_notary,
|
|
|
|
'with_clair': with_clair,
|
|
|
|
'with_chartmuseum': with_chartmuseum
|
|
|
|
}
|
|
|
|
|
2019-06-21 08:18:28 +02:00
|
|
|
# for gcs
|
2019-04-02 14:08:26 +02:00
|
|
|
storage_config = configs.get('storage_provider_config') or {}
|
2019-05-05 10:02:01 +02:00
|
|
|
if storage_config.get('keyfile') and configs['storage_provider_name'] == 'gcs':
|
2019-04-02 14:08:26 +02:00
|
|
|
rendering_variables['gcs_keyfile'] = storage_config['keyfile']
|
|
|
|
|
2019-06-21 08:18:28 +02:00
|
|
|
# for http
|
2019-04-03 10:19:04 +02:00
|
|
|
if configs['protocol'] == 'https':
|
|
|
|
rendering_variables['cert_key_path'] = configs['cert_key_path']
|
|
|
|
rendering_variables['cert_path'] = configs['cert_path']
|
2019-04-30 11:05:27 +02:00
|
|
|
rendering_variables['https_port'] = configs['https_port']
|
2019-04-03 10:19:04 +02:00
|
|
|
|
2019-06-21 08:18:28 +02:00
|
|
|
# for uaa
|
2019-05-06 10:32:00 +02:00
|
|
|
uaa_config = configs.get('uaa') or {}
|
|
|
|
if uaa_config.get('ca_file'):
|
|
|
|
rendering_variables['uaa_ca_file'] = uaa_config['ca_file']
|
|
|
|
|
2019-06-21 08:18:28 +02:00
|
|
|
# for log
|
|
|
|
log_ep_host = configs.get('log_ep_host')
|
|
|
|
if log_ep_host:
|
|
|
|
rendering_variables['external_log_endpoint'] = True
|
|
|
|
|
2019-05-24 09:17:35 +02:00
|
|
|
render_jinja(docker_compose_template_path, docker_compose_yml_path, mode=0o644, **rendering_variables)
|