From 7d293a9dd4efd42ef73f19fec9669f5eb242ed78 Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Fri, 2 Feb 2024 10:39:23 +0000 Subject: [PATCH 1/3] patch: fix isroutable patch to work properly Just make everything routable, much more robust for us! --- src/templates/isroutable.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/isroutable.patch b/src/templates/isroutable.patch index 96b36eb27..1a2234f58 100644 --- a/src/templates/isroutable.patch +++ b/src/templates/isroutable.patch @@ -7,7 +7,7 @@ index 7530334db1..b66cfe5c2f 100644 bool CNetAddr::IsRoutable() const { - return IsValid() && !(IsRFC1918() || IsRFC2544() || IsRFC3927() || IsRFC4862() || IsRFC6598() || IsRFC5737() || IsRFC4193() || IsRFC4843() || IsRFC7343() || IsLocal() || IsInternal()); -+ return IsValid() && !(IsLocal() || IsInternal()); ++ return true; } /** From df68da2ce5b850fcdf0df264c40a585fdbb7f96c Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Fri, 2 Feb 2024 10:38:46 +0000 Subject: [PATCH 2/3] images: fixup torrc path --- src/backends/compose/compose_backend.py | 4 +++- src/templates/Dockerfile | 2 +- src/templates/Dockerfile_k8 | 2 +- src/templates/tor/Dockerfile_tor_da | 4 ++-- src/templates/tor/Dockerfile_tor_relay | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/backends/compose/compose_backend.py b/src/backends/compose/compose_backend.py index 6aee488d7..4bdc468b6 100644 --- a/src/backends/compose/compose_backend.py +++ b/src/backends/compose/compose_backend.py @@ -341,8 +341,10 @@ def default_config_args(self, tank): return defaults def copy_configs(self, tank): + warnet_tor_dir = tank.config_dir / "tor" + warnet_tor_dir.mkdir() shutil.copyfile(TEMPLATES / DOCKERFILE_NAME, tank.config_dir / DOCKERFILE_NAME) - shutil.copyfile(TEMPLATES / "tor" / TORRC_NAME, tank.config_dir / TORRC_NAME) + shutil.copyfile(TEMPLATES / "tor" / TORRC_NAME, warnet_tor_dir / TORRC_NAME) shutil.copyfile(TEMPLATES / ENTRYPOINT_NAME, tank.config_dir / ENTRYPOINT_NAME) set_execute_permission(tank.config_dir / ENTRYPOINT_NAME) diff --git a/src/templates/Dockerfile b/src/templates/Dockerfile index 13613c279..6acc27b77 100644 --- a/src/templates/Dockerfile +++ b/src/templates/Dockerfile @@ -86,7 +86,7 @@ RUN set -ex \ COPY --from=builder /usr/local/bin/bitcoind /usr/local/bin/bitcoin-cli /usr/local/bin/ COPY entrypoint.sh /entrypoint.sh # Warnet torrc using test network -COPY torrc /etc/tor/warnet-torr +COPY tor/torrc /etc/tor/warnet-torr VOLUME ["/home/bitcoin/.bitcoin"] EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 diff --git a/src/templates/Dockerfile_k8 b/src/templates/Dockerfile_k8 index 10e53a338..b1d63f515 100644 --- a/src/templates/Dockerfile_k8 +++ b/src/templates/Dockerfile_k8 @@ -77,7 +77,7 @@ RUN set -ex \ COPY --from=builder /usr/local/bin/bitcoind /usr/local/bin/bitcoin-cli /usr/local/bin/ COPY entrypoint.sh /entrypoint.sh # Warnet torrc using test network -COPY torrc /etc/tor/warnet-torr +COPY tor/torrc /etc/tor/warnet-torr VOLUME ["/home/bitcoin/.bitcoin"] EXPOSE 8332 8333 18332 18333 18443 18444 38333 38332 diff --git a/src/templates/tor/Dockerfile_tor_da b/src/templates/tor/Dockerfile_tor_da index e12f5f7df..bbc2ecd2d 100644 --- a/src/templates/tor/Dockerfile_tor_da +++ b/src/templates/tor/Dockerfile_tor_da @@ -8,9 +8,9 @@ RUN chown -R debian-tor:debian-tor /home/debian-tor RUN mkdir -p /var/log/tor RUN chown -R debian-tor:debian-tor /var/log/tor -COPY tor-keys /home/debian-tor/.tor/keys +COPY tor/tor-keys /home/debian-tor/.tor/keys RUN chown -R debian-tor:debian-tor /home/debian-tor/.tor/keys -COPY torrc.da /etc/tor/torrc +COPY tor/torrc.da /etc/tor/torrc EXPOSE 9050 diff --git a/src/templates/tor/Dockerfile_tor_relay b/src/templates/tor/Dockerfile_tor_relay index 79531bb98..bf03346a4 100644 --- a/src/templates/tor/Dockerfile_tor_relay +++ b/src/templates/tor/Dockerfile_tor_relay @@ -8,10 +8,10 @@ RUN chown -R debian-tor:debian-tor /home/debian-tor RUN mkdir -p /var/log/tor RUN chown -R debian-tor:debian-tor /var/log/tor -COPY torrc.relay /etc/tor/torrc +COPY tor/torrc.relay /etc/tor/torrc EXPOSE 9050 -COPY tor-entrypoint.sh /entrypoint.sh +COPY tor/tor-entrypoint.sh /entrypoint.sh ENTRYPOINT /entrypoint.sh CMD ["tor", "-f", "/etc/tor/torrc"] From f9ab9791103928455015b4b640a19bc6a0af0557 Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Fri, 2 Feb 2024 10:40:04 +0000 Subject: [PATCH 3/3] cli: make image build command more robust handle builder already existing, and cleanup even on failure --- src/utils/image_build.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/utils/image_build.py b/src/utils/image_build.py index f7aa6a5f2..81eaf3c2d 100644 --- a/src/utils/image_build.py +++ b/src/utils/image_build.py @@ -55,13 +55,20 @@ def build_and_upload_images( # Setup buildkit builder_name = "warnet-builder" - if not run_command(f"docker buildx create --name {builder_name} --use"): - return False + create_builder_cmd = f"docker buildx create --name {builder_name} --use" + use_builder_cmd = f"docker buildx use --builder {builder_name}" + cleanup_builder_cmd = f"docker buildx rm {builder_name}" + + if not run_command(create_builder_cmd): # noqa: SIM102 + # try to use existing + if not run_command(use_builder_cmd): + print(f"Could create or use builder {builder_name} and create new builder") + return False image_full_name = f"{docker_registry}:{tag}" print(f"Image full name: {image_full_name}") - platforms = ','.join([f"linux/{arch}" for arch in build_arches]) + platforms = ",".join([f"linux/{arch}" for arch in build_arches]) build_command = ( f"docker buildx build" @@ -76,14 +83,13 @@ def build_and_upload_images( ) print(f"{build_command=:}") - if not run_command(build_command): - return False - - # Tidy up the buildx builder - cleanup_command = f"docker buildx rm {builder_name}" - if not run_command(cleanup_command): - print("Warning: Failed to remove the buildx builder.") - else: - print("Buildx builder removed successfully.") - - return True + try: + res = run_command(build_command) + finally: + # Tidy up the buildx builder + if not run_command(cleanup_builder_cmd): + print("Warning: Failed to remove the buildx builder.") + else: + print("Buildx builder removed successfully.") + + return bool(res)