Configure the Interlock service¶
This topic describes how to update the ucp-interlock
service with a new
Docker configuration.
Obtain the current configuration for the
ucp-interlock
service and save it as a TOML file namedconfig.toml
:CURRENT_CONFIG_NAME=$(docker service inspect --format \ '{{ (index .Spec.TaskTemplate.ContainerSpec.Configs 0).ConfigName }}' \ ucp-interlock) && docker config inspect --format \ '{{ printf "%s" .Spec.Data }}' $CURRENT_CONFIG_NAME > config.toml
Configure
config.toml
as required. Refer to Configuration file options for layer 7 routing for layer 7 routing customization options.Create a new Docker configuration object from the
config.toml
file:NEW_CONFIG_NAME="com.docker.ucp.interlock.conf-$\ (( $(cut -d '-' -f 2 <<< "$CURRENT_CONFIG_NAME") + 1 ))" docker config create $NEW_CONFIG_NAME config.toml
Verify that the configuration was successfully created:
docker config ls --filter name=com.docker.ucp.interlock
Example output:
ID NAME CREATED UPDATED vsnakyzr12z3zgh6tlo9mqekx com.docker.ucp.interlock.conf-1 6 hours ago 6 hours ago 64wp5yggeu2c262z6flhaos37 com.docker.ucp.interlock.conf-2 54 seconds ago 54 seconds ago
Optional. If you provide an invalid configuration, the
ucp-interlock
service is configured to roll back to a previous stable configuration, by default. Configure the service to pause instead of rolling back:docker service update \ --update-failure-action pause \ ucp-interlock
Update the
ucp-interlock
service to begin using the new configuration:docker service update \ --config-rm $CURRENT_CONFIG_NAME \ --config-add source=$NEW_CONFIG_NAME,target=/config.toml \ ucp-interlock
Enable Interlock proxy NGINX debugging mode¶
As Interlock proxy NGINX debugging mode generates copious log files and can produce core dumps, you can only set it manually to run.
Caution
Mirantis strongly recommends that you use debugging mode only for as long as is necessary, and that you do not use it in production environments.
Obtain the current configuration for the
ucp-interlock
service and save it as a TOML file namedconfig.toml
:CURRENT_CONFIG_NAME=$(docker service inspect --format \ '{{ (index .Spec.TaskTemplate.ContainerSpec.Configs 0).ConfigName }}' \ ucp-interlock) docker config inspect --format \ '{{ printf "%s" .Spec.Data }}' $CURRENT_CONFIG_NAME > config.toml
Add the
ProxyArgs
attribute to theconfig.toml
file, if it is not already present, and assign to it the following value:ProxyArgs = ["/entrypoint.sh","nginx-debug","-g","daemon off;"]
Set the value of
ProxyArgs
to["/entrypoint.sh","nginx-debug","-g","daemon off;"]
.Create a new Docker configuration object from the
config.toml
file:NEW_CONFIG_NAME="com.docker.ucp.interlock.conf-$\ (( $(cut -d '-' -f 2 <<< "$CURRENT_CONFIG_NAME") + 1 ))" docker config create $NEW_CONFIG_NAME config.toml
Update the
ucp-interlock
service to begin using the new configuration:docker service update \ --config-rm $CURRENT_CONFIG_NAME \ --config-add source=$NEW_CONFIG_NAME,target=/config.toml \ ucp-interlock