Skip to content

chore: upgrade testcontainers-go and use the clickhouse module and upgrade many related dependencies

Joe Shaw requested to merge joe/upgrade_testcontainers into main

As part of query-api(clickhouse): use type constraints fo... (!2537 - merged) I decided to upgrade testcontainers-go which was lagging behind somewhat, especially to use the ClickHouse module.

This upgrade resulted in many dependency conflicts, which this MR resolves:

  • the github.com/docker/docker module, which has no go.mod had many breaking changes.
  • the dependency on devvm also uses the docker client, which needed to be updated to ensure e2e tests build. See also chore: upgrade various dependencies to deal wit... (devvm!59 - merged) where devvm is upgraded to an equivalent docker version.
  • the docker client uses otel libraries that wouldn't build with current versions (missing internal packages). This meant having to ugprade all the otel dependencies.
  • this also required k8s module upgrades, which caused breaking changes to the APIs used in the clickhouse-operator (volume claims using new struct type).
  • backwards incompatible OTEL factory API changes required, in particular RetrySettings replaced with configretry.BackOffConfig. This was previously an alias, so still builds and the same fields.
  • deprecated changes in testcontainers-go library fixed, particularly deprecated VolumeMount usage and networks APIs which no longer allow setting of their name.
  • docker client v25 has issues with local v26 daemon, so bumped to v26 and once again bumped devvm - chore: upgrade to docker client v26 (devvm!61 - merged)
  • upgraded docker image versions in CI. Note that the -git image variant was deprecated and is now just -dind.

Resulting go.work and significant go.mod/sum changes synced with go work sync. make go-mod-tidy did not handle the changes properly.

Edited by Joe Shaw

Merge request reports