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
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
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