From fe801ec6ad41ef7dab2f1fdafd3f29ac29ae9d1b Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 08:23:56 -0400 Subject: [PATCH 01/18] import ChecksumAlgo --- harmony_assets/src/store/local.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/harmony_assets/src/store/local.rs b/harmony_assets/src/store/local.rs index 0a6486a4..76fded28 100644 --- a/harmony_assets/src/store/local.rs +++ b/harmony_assets/src/store/local.rs @@ -174,6 +174,7 @@ mod tests { #[cfg(feature = "reqwest")] mod download_tests { use super::*; + use crate::ChecksumAlgo; use httptest::{Expectation, Server, matchers::request, responders::*}; fn test_asset_with_url(url: &str, checksum: &str) -> Asset { -- 2.39.5 From 9596c6e50c4b4d44fae81981b4a38e200f4233d8 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 08:33:01 -0400 Subject: [PATCH 02/18] lower debug level for tests --- .cargo/config.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index a0b2a08a..d8baa144 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,3 +6,6 @@ rustflags = ["-C", "link-arg=-Wl,--stack,8000000"] [target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gnu-gcc" + +[profile.test] +debug = 0 -- 2.39.5 From 13cbd6aa894b901bfccd91021ad2ec7852437f25 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 08:44:20 -0400 Subject: [PATCH 03/18] create kubeconfig before creating client --- k3d/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index 193a9eb4..8fba3079 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -220,6 +220,7 @@ impl K3d { debug!("Initializing k3d cluster '{}'", cluster_name); self.create_cluster(cluster_name)?; + self.ensure_k3d_config_is_default(cluster_name)?; self.create_kubernetes_client().await } -- 2.39.5 From d19980505b79a28d116b7910d6c6b03857735ff1 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 08:52:42 -0400 Subject: [PATCH 04/18] explicitly create kube config dir --- k3d/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index 8fba3079..2964e60c 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -401,6 +401,8 @@ impl K3d { } fn ensure_k3d_config_is_default(&self, cluster_name: &str) -> Result<(), String> { + let home = std::env::var("HOME").unwrap_or_else(|_| "/root".to_string()); + std::fs::create_dir_all(format!("{home}/.kube")).map_err(|e| format!("Failed to create ~/.kube dir: {}", e))?; let output = self.run_k3d_command(["kubeconfig", "merge", "-d", cluster_name])?; if !output.status.success() { -- 2.39.5 From 30dfd36bc0647636f8a283d141d02b1ff57b7ba3 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 08:54:42 -0400 Subject: [PATCH 05/18] format line --- k3d/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index 2964e60c..e802b665 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -402,7 +402,8 @@ impl K3d { fn ensure_k3d_config_is_default(&self, cluster_name: &str) -> Result<(), String> { let home = std::env::var("HOME").unwrap_or_else(|_| "/root".to_string()); - std::fs::create_dir_all(format!("{home}/.kube")).map_err(|e| format!("Failed to create ~/.kube dir: {}", e))?; + std::fs::create_dir_all(format!("{home}/.kube")) + .map_err(|e| format!("Failed to create ~/.kube dir: {}", e))?; let output = self.run_k3d_command(["kubeconfig", "merge", "-d", cluster_name])?; if !output.status.success() { -- 2.39.5 From 54a264ff596f68d2380635a1b2cc49d235a3bbb6 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:01:18 -0400 Subject: [PATCH 06/18] logs for debugging --- .gitea/workflows/check.yml | 2 ++ k3d/src/lib.rs | 3 +++ 2 files changed, 5 insertions(+) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 508ebe7a..d08d3148 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -16,3 +16,5 @@ jobs: - name: Run check script run: bash build/check.sh + env: + RUST_LOG: debug diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index e802b665..ae935cf3 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -406,6 +406,9 @@ impl K3d { .map_err(|e| format!("Failed to create ~/.kube dir: {}", e))?; let output = self.run_k3d_command(["kubeconfig", "merge", "-d", cluster_name])?; + log::debug!("k3d kubeconfig merge stdout: {}", String::from_utf8_lossy(&output.stdout)); + log::debug!("k3d kubeconfig merge stderr: {}", String::from_utf8_lossy(&output.stderr)); + if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); return Err(format!("Failed to setup k3d kubeconfig : {}", stderr)); -- 2.39.5 From 00a1a6e6c6d1bd744767ef45bc9af9a14c962f69 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:02:46 -0400 Subject: [PATCH 07/18] format code --- k3d/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index ae935cf3..20b91255 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -406,8 +406,14 @@ impl K3d { .map_err(|e| format!("Failed to create ~/.kube dir: {}", e))?; let output = self.run_k3d_command(["kubeconfig", "merge", "-d", cluster_name])?; - log::debug!("k3d kubeconfig merge stdout: {}", String::from_utf8_lossy(&output.stdout)); - log::debug!("k3d kubeconfig merge stderr: {}", String::from_utf8_lossy(&output.stderr)); + log::debug!( + "k3d kubeconfig merge stdout: {}", + String::from_utf8_lossy(&output.stdout) + ); + log::debug!( + "k3d kubeconfig merge stderr: {}", + String::from_utf8_lossy(&output.stderr) + ); if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); -- 2.39.5 From 6bbffbd4dd48dba4893cd44f022b469b9d5bde24 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:17:06 -0400 Subject: [PATCH 08/18] validate k3d is installed --- .gitea/workflows/check.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index d08d3148..a28fd886 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -14,6 +14,9 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Check tools + run: which k3d || echo "k3d not found" + - name: Run check script run: bash build/check.sh env: -- 2.39.5 From 598454cdf82e2ace8f367d8c3bdfcb216e34cecf Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:19:21 -0400 Subject: [PATCH 09/18] install k3d and check other tools --- .gitea/workflows/check.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index a28fd886..c8900116 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -14,8 +14,14 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Install k3d + run: curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash + - name: Check tools - run: which k3d || echo "k3d not found" + run: | + which k3d || echo "k3d not found" + which helm || echo "helm not found" + which kubectl || echo "kubectl not found" - name: Run check script run: bash build/check.sh -- 2.39.5 From 32c484d0add486bd3e110c650044438da539b912 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:21:30 -0400 Subject: [PATCH 10/18] install tools --- .gitea/workflows/check.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index c8900116..1392f2a5 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -14,14 +14,15 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Install k3d - run: curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash - - - name: Check tools + - name: Install tools run: | - which k3d || echo "k3d not found" - which helm || echo "helm not found" - which kubectl || echo "kubectl not found" + curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash + # helm + curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash + # kubectl + curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + chmod +x kubectl + mv kubectl /usr/local/bin/kubectl - name: Run check script run: bash build/check.sh -- 2.39.5 From 72fa2e310d7f5572fba7e6c297a2f5192ca2b08e Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:28:06 -0400 Subject: [PATCH 11/18] remove installation --- .gitea/workflows/check.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 1392f2a5..d08d3148 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -14,16 +14,6 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Install tools - run: | - curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash - # helm - curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash - # kubectl - curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" - chmod +x kubectl - mv kubectl /usr/local/bin/kubectl - - name: Run check script run: bash build/check.sh env: -- 2.39.5 From b33253dfb2a77c6e3cfde109e9756074dc1cdb45 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:33:52 -0400 Subject: [PATCH 12/18] debug k3d paths --- .gitea/workflows/check.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index d08d3148..50042d4e 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -18,3 +18,10 @@ jobs: run: bash build/check.sh env: RUST_LOG: debug + + - name: Debug k3d paths + if: always() + run: | + ls -la /root/.local/share/harmony/k3d/ || echo "dir not found" + ls -la /tmp/harmony/ || echo "tmp dir not found" + which k3d || echo "k3d not on PATH" -- 2.39.5 From f981fa3d9bb8d6efe44acd2a21816ea3c55afc79 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:37:51 -0400 Subject: [PATCH 13/18] more debugging --- .gitea/workflows/check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 50042d4e..c2199802 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -23,5 +23,5 @@ jobs: if: always() run: | ls -la /root/.local/share/harmony/k3d/ || echo "dir not found" - ls -la /tmp/harmony/ || echo "tmp dir not found" - which k3d || echo "k3d not on PATH" + /root/.local/share/harmony/k3d/k3d --version || echo "k3d binary failed to execute" + /root/.local/share/harmony/k3d/k3d cluster list || echo "k3d cluster list failed" -- 2.39.5 From 29b90d4ec140ccb7f57782b4186a1bc32f5a56e5 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:48:48 -0400 Subject: [PATCH 14/18] reorder instruction --- k3d/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/k3d/src/lib.rs b/k3d/src/lib.rs index 20b91255..200b2533 100644 --- a/k3d/src/lib.rs +++ b/k3d/src/lib.rs @@ -264,12 +264,11 @@ impl K3d { client = self.initialize_cluster().await?; } else { self.start_cluster().await?; - + self.ensure_k3d_config_is_default(self.get_cluster_name()?)?; debug!("K3d and cluster are already properly set up"); client = self.create_kubernetes_client().await?; } - self.ensure_k3d_config_is_default(self.get_cluster_name()?)?; Ok(client) } -- 2.39.5 From 77579728ef933cbf1458ace2c002d3a262f39bb1 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 09:58:14 -0400 Subject: [PATCH 15/18] log PATH --- .gitea/workflows/check.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index c2199802..ae81fbc2 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -19,9 +19,12 @@ jobs: env: RUST_LOG: debug - - name: Debug k3d paths + - name: Debug paths if: always() run: | - ls -la /root/.local/share/harmony/k3d/ || echo "dir not found" - /root/.local/share/harmony/k3d/k3d --version || echo "k3d binary failed to execute" - /root/.local/share/harmony/k3d/k3d cluster list || echo "k3d cluster list failed" + which k3d || true + k3d version || true + which kubectl || true + kubectl version --client || true + echo "$PATH" + -- 2.39.5 From 63895a76fb0a122822c3da0e4451a4174e36763c Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 10:06:58 -0400 Subject: [PATCH 16/18] add kubectl installation step --- .gitea/workflows/check.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index ae81fbc2..9ffd546b 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -14,17 +14,15 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Install kubectl + run: | + KUBECTL_VERSION=v1.31.5 + curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" + chmod +x kubectl + mv kubectl /usr/local/bin/kubectl + kubectl version --client + - name: Run check script run: bash build/check.sh env: RUST_LOG: debug - - - name: Debug paths - if: always() - run: | - which k3d || true - k3d version || true - which kubectl || true - kubectl version --client || true - echo "$PATH" - -- 2.39.5 From 7b772552d1ecac6f477e60454fdb1cf486a384f4 Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 10:13:57 -0400 Subject: [PATCH 17/18] add step for connectivity check --- .gitea/workflows/check.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 9ffd546b..cabfc854 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -24,5 +24,14 @@ jobs: - name: Run check script run: bash build/check.sh - env: - RUST_LOG: debug + + - name: Debug kube connectivity + if: always() + run: | + echo "PATH=$PATH" + kubectl config current-context || true + kubectl config view --minify --raw || true + kubectl cluster-info || true + kubectl get nodes -v=8 || true + docker ps || true + -- 2.39.5 From caf8882964f20668ab4c25a9c8772f39f2a20f6f Mon Sep 17 00:00:00 2001 From: Reda Tarzalt Date: Wed, 20 May 2026 10:19:44 -0400 Subject: [PATCH 18/18] make container share host network --- .gitea/workflows/check.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index cabfc854..a622f2c6 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -10,6 +10,8 @@ jobs: runs-on: docker container: image: hub.nationtech.io/harmony/harmony_composer:latest + options: --network host + steps: - name: Checkout code uses: actions/checkout@v4 -- 2.39.5