Update Interlock services

There are two parts to the update process:

  1. Update the Interlock configuration to specify the new extension and/or proxy image versions.

  2. Update the Interlock service to use the new configuration and image.

Update the Interlock configuration

Create the new configuration:

$> docker config create service.interlock.conf.v2 <path-to-new-config>

Update the Interlock service

Remove the old configuration and specify the new configuration:

$> docker service update --config-rm service.interlock.conf ucp-interlock
$> docker service update --config-add source=service.interlock.conf.v2,target=/config.toml ucp-interlock

Next, update the Interlock service to use the new image. To pull the latest version of MKE, run the following:

$> docker pull v/ucp:latest

Example output

latest: Pulling from mirantis/ucp
cd784148e348: Already exists
3871e7d70c20: Already exists
cad04e4a4815: Pull complete
Digest: sha256:63ca6d3a6c7e94aca60e604b98fccd1295bffd1f69f3d6210031b72fc2467444
Status: Downloaded newer image for mirantis/ucp:latest
docker.io/mirantis/ucp:latest

Next, list all the latest MKE images.

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
mirantis/ucp images --list

Example output

mirantis/ucp-agent:3.4.6
mirantis/ucp-auth-store:3.4.6
mirantis/ucp-auth:3.4.6
mirantis/ucp-azure-ip-allocator:3.4.6
mirantis/ucp-calico-cni:3.4.6
mirantis/ucp-calico-kube-controllers:3.4.6
mirantis/ucp-calico-node:3.4.6
mirantis/ucp-cfssl:3.4.6
mirantis/ucp-compose:3.4.6
mirantis/ucp-controller:3.4.6
mirantis/ucp-dsinfo:3.4.6
mirantis/ucp-etcd:3.4.6
mirantis/ucp-hyperkube:3.4.6
mirantis/ucp-interlock-extension:3.4.6
mirantis/ucp-interlock-proxy:3.4.6
mirantis/ucp-interlock:3.4.6
mirantis/ucp-kube-compose-api:3.4.6
mirantis/ucp-kube-compose:3.4.6
mirantis/ucp-kube-dns-dnsmasq-nanny:3.4.6
mirantis/ucp-kube-dns-sidecar:3.4.6
mirantis/ucp-kube-dns:3.4.6
mirantis/ucp-metrics:3.4.6
mirantis/ucp-pause:3.4.6
mirantis/ucp-swarm:3.4.6
mirantis/ucp:3.4.6

Interlock starts and checks the config object, which has the new extension version, and performs a rolling deploy to update all extensions.

$> docker service update \
    --image mirantis/ucp-interlock:3.4.6 \
    ucp-interlock