Merge "templates: separate genesis and join sources"
This commit is contained in:
commit
aea0c9d1e9
|
@ -46,44 +46,127 @@ data:
|
||||||
helm:
|
helm:
|
||||||
helm: lachlanevenson/k8s-helm:v2.14.0
|
helm: lachlanevenson/k8s-helm:v2.14.0
|
||||||
packages:
|
packages:
|
||||||
repositories:
|
common:
|
||||||
- deb http://apt.dockerproject.org/repo ubuntu-xenial main
|
repositories:
|
||||||
keys:
|
- deb http://apt.dockerproject.org/repo ubuntu-xenial main
|
||||||
- |-
|
keys:
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
- |-
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
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
|
||||||
TvBR8Q==
|
TvBR8Q==
|
||||||
=Fm3p
|
=Fm3p
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
additional:
|
additional:
|
||||||
- ceph-common
|
- ceph-common
|
||||||
- curl
|
- curl
|
||||||
- jq
|
- jq
|
||||||
required:
|
required:
|
||||||
docker: docker-engine
|
docker: docker-engine
|
||||||
socat: socat
|
socat: socat
|
||||||
|
genesis:
|
||||||
|
repositories:
|
||||||
|
- deb http://apt.dockerproject.org/repo ubuntu-xenial main
|
||||||
|
keys:
|
||||||
|
- |-
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o
|
||||||
|
ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R
|
||||||
|
mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn
|
||||||
|
TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK
|
||||||
|
dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT
|
||||||
|
X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG
|
||||||
|
HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c
|
||||||
|
NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ
|
||||||
|
hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U
|
||||||
|
65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM
|
||||||
|
zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB
|
||||||
|
tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv
|
||||||
|
Y2tlci5jb20+iQI4BBMBAgAiBQJVpZ9uAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIe
|
||||||
|
AQIXgAAKCRD3YiFXLFJgnbRfEAC9Uai7Rv20QIDlDogRzd+Vebg4ahyoUdj0CH+n
|
||||||
|
Ak40RIoq6G26u1e+sdgjpCa8jF6vrx+smpgd1HeJdmpahUX0XN3X9f9qU9oj9A4I
|
||||||
|
1WDalRWJh+tP5WNv2ySy6AwcP9QnjuBMRTnTK27pk1sEMg9oJHK5p+ts8hlSC4Sl
|
||||||
|
uyMKH5NMVy9c+A9yqq9NF6M6d6/ehKfBFFLG9BX+XLBATvf1ZemGVHQusCQebTGv
|
||||||
|
0C0V9yqtdPdRWVIEhHxyNHATaVYOafTj/EF0lDxLl6zDT6trRV5n9F1VCEh4Aal8
|
||||||
|
L5MxVPcIZVO7NHT2EkQgn8CvWjV3oKl2GopZF8V4XdJRl90U/WDv/6cmfI08GkzD
|
||||||
|
YBHhS8ULWRFwGKobsSTyIvnbk4NtKdnTGyTJCQ8+6i52s+C54PiNgfj2ieNn6oOR
|
||||||
|
7d+bNCcG1CdOYY+ZXVOcsjl73UYvtJrO0Rl/NpYERkZ5d/tzw4jZ6FCXgggA/Zxc
|
||||||
|
jk6Y1ZvIm8Mt8wLRFH9Nww+FVsCtaCXJLP8DlJLASMD9rl5QS9Ku3u7ZNrr5HWXP
|
||||||
|
HXITX660jglyshch6CWeiUATqjIAzkEQom/kEnOrvJAtkypRJ59vYQOedZ1sFVEL
|
||||||
|
MXg2UCkD/FwojfnVtjzYaTCeGwFQeqzHmM241iuOmBYPeyTY5veF49aBJA1gEJOQ
|
||||||
|
TvBR8Q==
|
||||||
|
=Fm3p
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
additional:
|
||||||
|
- ceph-common
|
||||||
|
- curl
|
||||||
|
- jq
|
||||||
|
required:
|
||||||
|
docker: docker-engine
|
||||||
|
socat: socat
|
||||||
|
join:
|
||||||
|
repositories:
|
||||||
|
- deb http://apt.dockerproject.org/repo ubuntu-xenial main
|
||||||
|
keys:
|
||||||
|
- |-
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o
|
||||||
|
ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R
|
||||||
|
mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn
|
||||||
|
TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK
|
||||||
|
dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT
|
||||||
|
X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG
|
||||||
|
HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c
|
||||||
|
NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ
|
||||||
|
hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U
|
||||||
|
65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM
|
||||||
|
zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB
|
||||||
|
tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv
|
||||||
|
Y2tlci5jb20+iQI4BBMBAgAiBQJVpZ9uAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIe
|
||||||
|
AQIXgAAKCRD3YiFXLFJgnbRfEAC9Uai7Rv20QIDlDogRzd+Vebg4ahyoUdj0CH+n
|
||||||
|
Ak40RIoq6G26u1e+sdgjpCa8jF6vrx+smpgd1HeJdmpahUX0XN3X9f9qU9oj9A4I
|
||||||
|
1WDalRWJh+tP5WNv2ySy6AwcP9QnjuBMRTnTK27pk1sEMg9oJHK5p+ts8hlSC4Sl
|
||||||
|
uyMKH5NMVy9c+A9yqq9NF6M6d6/ehKfBFFLG9BX+XLBATvf1ZemGVHQusCQebTGv
|
||||||
|
0C0V9yqtdPdRWVIEhHxyNHATaVYOafTj/EF0lDxLl6zDT6trRV5n9F1VCEh4Aal8
|
||||||
|
L5MxVPcIZVO7NHT2EkQgn8CvWjV3oKl2GopZF8V4XdJRl90U/WDv/6cmfI08GkzD
|
||||||
|
YBHhS8ULWRFwGKobsSTyIvnbk4NtKdnTGyTJCQ8+6i52s+C54PiNgfj2ieNn6oOR
|
||||||
|
7d+bNCcG1CdOYY+ZXVOcsjl73UYvtJrO0Rl/NpYERkZ5d/tzw4jZ6FCXgggA/Zxc
|
||||||
|
jk6Y1ZvIm8Mt8wLRFH9Nww+FVsCtaCXJLP8DlJLASMD9rl5QS9Ku3u7ZNrr5HWXP
|
||||||
|
HXITX660jglyshch6CWeiUATqjIAzkEQom/kEnOrvJAtkypRJ59vYQOedZ1sFVEL
|
||||||
|
MXg2UCkD/FwojfnVtjzYaTCeGwFQeqzHmM241iuOmBYPeyTY5veF49aBJA1gEJOQ
|
||||||
|
TvBR8Q==
|
||||||
|
=Fm3p
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
additional:
|
||||||
|
- ceph-common
|
||||||
|
- curl
|
||||||
|
- jq
|
||||||
|
required:
|
||||||
|
docker: docker-engine
|
||||||
|
socat: socat
|
||||||
...
|
...
|
||||||
|
|
|
@ -92,10 +92,11 @@ class Builder:
|
||||||
|
|
||||||
def build_genesis_script(self):
|
def build_genesis_script(self):
|
||||||
LOG.info('Building genesis script')
|
LOG.info('Building genesis script')
|
||||||
|
genesis_roles = ['common', 'genesis']
|
||||||
sub_config = self.config.extract_genesis_config()
|
sub_config = self.config.extract_genesis_config()
|
||||||
tarball = renderer.build_tarball_from_roles(
|
tarball = renderer.build_tarball_from_roles(
|
||||||
config=sub_config,
|
config=sub_config,
|
||||||
roles=['common', 'genesis'],
|
roles=genesis_roles,
|
||||||
file_specs=self.file_cache.values())
|
file_specs=self.file_cache.values())
|
||||||
|
|
||||||
(encrypted_tarball, decrypt_setup_command, decrypt_command,
|
(encrypted_tarball, decrypt_setup_command, decrypt_command,
|
||||||
|
@ -109,7 +110,8 @@ class Builder:
|
||||||
'decrypt_setup_command': decrypt_setup_command,
|
'decrypt_setup_command': decrypt_setup_command,
|
||||||
'decrypt_teardown_command': decrypt_teardown_command,
|
'decrypt_teardown_command': decrypt_teardown_command,
|
||||||
'encrypted_tarball': encrypted_tarball,
|
'encrypted_tarball': encrypted_tarball,
|
||||||
})
|
},
|
||||||
|
roles=genesis_roles)
|
||||||
|
|
||||||
def _build_genesis_validate_script(self):
|
def _build_genesis_validate_script(self):
|
||||||
sub_config = self.config.extract_genesis_config()
|
sub_config = self.config.extract_genesis_config()
|
||||||
|
@ -129,13 +131,14 @@ class Builder:
|
||||||
validate_script)
|
validate_script)
|
||||||
|
|
||||||
def build_node_script(self, node_name):
|
def build_node_script(self, node_name):
|
||||||
|
build_roles = ['common', 'join']
|
||||||
sub_config = self.config.extract_node_config(node_name)
|
sub_config = self.config.extract_node_config(node_name)
|
||||||
file_spec_paths = [
|
file_spec_paths = [
|
||||||
f['path'] for f in self.config.get_path('HostSystem:files', [])
|
f['path'] for f in self.config.get_path('HostSystem:files', [])
|
||||||
]
|
]
|
||||||
file_specs = [self.file_cache[p] for p in file_spec_paths]
|
file_specs = [self.file_cache[p] for p in file_spec_paths]
|
||||||
tarball = renderer.build_tarball_from_roles(
|
tarball = renderer.build_tarball_from_roles(
|
||||||
config=sub_config, roles=['common', 'join'], file_specs=file_specs)
|
config=sub_config, roles=build_roles, file_specs=file_specs)
|
||||||
|
|
||||||
(encrypted_tarball, decrypt_setup_command, decrypt_command,
|
(encrypted_tarball, decrypt_setup_command, decrypt_command,
|
||||||
decrypt_teardown_command) = _encrypt_node(sub_config, tarball)
|
decrypt_teardown_command) = _encrypt_node(sub_config, tarball)
|
||||||
|
@ -148,7 +151,8 @@ class Builder:
|
||||||
'decrypt_setup_command': decrypt_setup_command,
|
'decrypt_setup_command': decrypt_setup_command,
|
||||||
'decrypt_teardown_command': decrypt_teardown_command,
|
'decrypt_teardown_command': decrypt_teardown_command,
|
||||||
'encrypted_tarball': encrypted_tarball,
|
'encrypted_tarball': encrypted_tarball,
|
||||||
})
|
},
|
||||||
|
roles=build_roles)
|
||||||
|
|
||||||
def _build_node_validate_script(self, node_name):
|
def _build_node_validate_script(self, node_name):
|
||||||
sub_config = self.config.extract_node_config(node_name)
|
sub_config = self.config.extract_node_config(node_name)
|
||||||
|
|
|
@ -82,10 +82,13 @@ def render_template_into_bundler(*, bundler, config, destination_path,
|
||||||
bundler.add(path=destination_path, data=data, mode=mode)
|
bundler.add(path=destination_path, data=data, mode=mode)
|
||||||
|
|
||||||
|
|
||||||
def render_template(config, *, template, context=None):
|
def render_template(config, *, template, context=None, roles=None):
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
|
if roles is None:
|
||||||
|
roles = {}
|
||||||
|
|
||||||
template_contents = pkg_resources.resource_string(
|
template_contents = pkg_resources.resource_string(
|
||||||
'promenade', os.path.join('templates', template))
|
'promenade', os.path.join('templates', template))
|
||||||
|
|
||||||
|
@ -93,7 +96,7 @@ def render_template(config, *, template, context=None):
|
||||||
|
|
||||||
template_obj = env.from_string(template_contents.decode('utf-8'))
|
template_obj = env.from_string(template_contents.decode('utf-8'))
|
||||||
try:
|
try:
|
||||||
return template_obj.render(config=config, **context)
|
return template_obj.render(config=config, roles=roles, **context)
|
||||||
except jinja2.exceptions.TemplateRuntimeError as e:
|
except jinja2.exceptions.TemplateRuntimeError as e:
|
||||||
LOG.exception('Error rendering template (%s)' % template)
|
LOG.exception('Error rendering template (%s)' % template)
|
||||||
raise exceptions.TemplateRenderException(
|
raise exceptions.TemplateRenderException(
|
||||||
|
|
|
@ -124,36 +124,104 @@ data:
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
common:
|
||||||
additional:
|
type: object
|
||||||
type: array
|
properties:
|
||||||
items:
|
additional:
|
||||||
$ref: '#/definitions/package'
|
type: array
|
||||||
keys:
|
items:
|
||||||
type: array
|
$ref: '#/definitions/package'
|
||||||
items:
|
keys:
|
||||||
$ref: '#/definitions/public_key'
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/public_key'
|
||||||
|
|
||||||
|
required:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
docker:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
socat:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
required:
|
||||||
|
- docker
|
||||||
|
- socat
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
repositories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/apt_source_line'
|
||||||
|
|
||||||
required:
|
required:
|
||||||
type: object
|
- required
|
||||||
properties:
|
additionalProperties: false
|
||||||
docker:
|
|
||||||
$ref: '#/definitions/package'
|
genesis:
|
||||||
socat:
|
type: object
|
||||||
|
properties:
|
||||||
|
additional:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
$ref: '#/definitions/package'
|
$ref: '#/definitions/package'
|
||||||
|
keys:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/public_key'
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- docker
|
type: object
|
||||||
- socat
|
properties:
|
||||||
additionalProperties: false
|
docker:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
socat:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
required:
|
||||||
|
- docker
|
||||||
|
- socat
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
repositories:
|
repositories:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/definitions/apt_source_line'
|
$ref: '#/definitions/apt_source_line'
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- required
|
- required
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
|
join:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
additional:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
keys:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/public_key'
|
||||||
|
|
||||||
|
required:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
docker:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
socat:
|
||||||
|
$ref: '#/definitions/package'
|
||||||
|
required:
|
||||||
|
- docker
|
||||||
|
- socat
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
repositories:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/apt_source_line'
|
||||||
|
|
||||||
|
required:
|
||||||
|
- required
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
validation:
|
validation:
|
||||||
type: object
|
type: object
|
||||||
|
|
|
@ -32,11 +32,13 @@ set +x
|
||||||
log
|
log
|
||||||
log === Adding APT Keys===
|
log === Adding APT Keys===
|
||||||
set -x
|
set -x
|
||||||
{%- for key in config.get_path('HostSystem:packages.keys', []) %}
|
{% for role in roles %}
|
||||||
|
{%- for key in config.get_path('HostSystem:packages.' + role + '.keys', []) %}
|
||||||
apt-key add - <<"ENDKEY"
|
apt-key add - <<"ENDKEY"
|
||||||
{{ key }}
|
{{ key }}
|
||||||
ENDKEY
|
ENDKEY
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
# Disable swap
|
# Disable swap
|
||||||
#
|
#
|
||||||
|
@ -79,24 +81,28 @@ while true; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
end=$(($(date +%s) + 600))
|
{% for role in roles %}
|
||||||
while true; do
|
{%- if config['HostSystem:packages.' + role + '.repositories'] is defined %}
|
||||||
if ! DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
end=$(($(date +%s) + 600))
|
||||||
{%- for package in config['HostSystem:packages.additional'] | default([]) %}
|
while true; do
|
||||||
{{ package }} \
|
if ! DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
{%- endfor %}
|
{%- for package in config['HostSystem:packages.' + role + '.additional'] | default([]) %}
|
||||||
{{ config['HostSystem:packages.required.docker'] }} \
|
{{ package }} \
|
||||||
{{ config['HostSystem:packages.required.socat'] }}; then
|
{%- endfor %}
|
||||||
now=$(date +%s)
|
{{ config['HostSystem:packages.' + role + '.required.docker'] }} \
|
||||||
if [[ ${now} -gt ${end} ]]; then
|
{{ config['HostSystem:packages.' + role + '.required.socat'] }}; then
|
||||||
log Failed to install apt packages.
|
now=$(date +%s)
|
||||||
exit 1
|
if [[ ${now} -gt ${end} ]]; then
|
||||||
fi
|
log Failed to install apt packages.
|
||||||
sleep 10
|
exit 1
|
||||||
else
|
fi
|
||||||
break
|
sleep 10
|
||||||
fi
|
else
|
||||||
done
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
{%- endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
# Start core processes
|
# Start core processes
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{%- for repo in config.get_path('HostSystem:packages.repositories', []) %}
|
{%- for repo in config.get_path('HostSystem:packages.common.repositories', []) %}
|
||||||
{{ repo }}
|
{{ repo }}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{%- for repo in config.get_path('HostSystem:packages.genesis.repositories', []) %}
|
||||||
|
{{ repo }}
|
||||||
|
{%- endfor %}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{%- for repo in config.get_path('HostSystem:packages.join.repositories', []) %}
|
||||||
|
{{ repo }}
|
||||||
|
{%- endfor %}
|
|
@ -10,6 +10,8 @@ log () {
|
||||||
TO_RM=(
|
TO_RM=(
|
||||||
"/etc/apt/apt.conf.d/20-proxy.conf"
|
"/etc/apt/apt.conf.d/20-proxy.conf"
|
||||||
"/etc/apt/sources.list.d/promenade-sources.list"
|
"/etc/apt/sources.list.d/promenade-sources.list"
|
||||||
|
"/etc/apt/sources.list.d/promenade-genesis-sources.list"
|
||||||
|
"/etc/apt/sources.list.d/promenade-join-sources.list"
|
||||||
"/etc/cni"
|
"/etc/cni"
|
||||||
"/etc/coredns"
|
"/etc/coredns"
|
||||||
"/etc/docker/daemon.json"
|
"/etc/docker/daemon.json"
|
||||||
|
|
Loading…
Reference in New Issue