How are you handling OCI instance updates?

Over the weekend I’ve done some testing and evaluating of Incus and I’m very pleased with it. I especially like the native OCI support and the obsolescence of having container-host-containers.

I have quite a few containerized services that I use and I’m using the wonderful doco-cd to manage the deployment and lifecycle from a git repo.

So I was wondering how other community members manage the lifecycle and especially updates of your OCI instances.

For me right now an acceptable path might be to utilize incus-compose in combination with ansible, to redeploy on new commits, but I still have to try that.

I’m looking forward to your answers! :slight_smile:

for oci instances ive mostly been doing image refresh + rebuild.

-incus image refresh IMAGE
-incus rebuild INSTANCE IMAGE --force

that keeps instance config/devices and swaps the rootfs from the new image. if app data is on a separate disk device it survives. if its all in rootfs, snapshot first:
-incus snapshot create INSTANCE pre-upd

incus-compose recreate on new commits works too if ur already on that flow.

Let me/us know if you’r using incus-compose with ansible how it works for you!


I have been thinking about a “watchtower” a like project for incus and oci, something that checks the registries for updates and either automatically applies updates or notices us somehow.

Will take some time until I get the time to implement that. Please let me know if someone else does it.

In my homelab I combine OpenTofu Incus orchestration with some custom Renovate matchers to have automated but traceable updates on my infrastructure.