From 1d3db2818dfba2712726462038d3c0b570030f23 Mon Sep 17 00:00:00 2001 From: Tatsuya Sato Date: Mon, 9 Feb 2026 09:21:41 +0000 Subject: [PATCH] Fix KIND cluster creation for test-network-k8s This PR replaces deprecated containerd registry.mirrors configuration with config_path mode and hosts.toml, required for containerd 2.x (KIND v0.27.0+). The old configuration prevents the CRI plugin from loading, causing kubelet to fail on startup. Also, this fixes CA enrollment in create_node_local_MSP() to specify port 443 explicitly, and other minor issues. Signed-off-by: Tatsuya Sato --- test-network-k8s/scripts/kind.sh | 24 ++++++++++++++++++++---- test-network-k8s/scripts/test_network.sh | 8 +++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/test-network-k8s/scripts/kind.sh b/test-network-k8s/scripts/kind.sh index c2126196..33c188ba 100755 --- a/test-network-k8s/scripts/kind.sh +++ b/test-network-k8s/scripts/kind.sh @@ -43,16 +43,32 @@ nodes: #networking: # kubeProxyMode: "ipvs" -# create a cluster with the local registry enabled in containerd +# Create a cluster with the local registry enabled in containerd. +# KIND v0.27.0+ uses containerd 2.x, which requires config_path mode +# instead of the deprecated registry.mirrors configuration. +# See: https://github.com/kubernetes-sigs/kind/releases/tag/v0.27.0 +# See: https://github.com/containerd/containerd/blob/main/docs/hosts.md containerdConfigPatches: - |- - [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:${reg_port}"] - endpoint = ["http://${reg_name}:${reg_port}"] + [plugins."io.containerd.grpc.v1.cri".registry] + config_path = "/etc/containerd/certs.d" EOF + # Configure registry for containerd 2.x using config_path mode + for node in $(kind get nodes --name $CLUSTER_NAME); + do + docker exec "$node" mkdir -p "/etc/containerd/certs.d/localhost:${reg_port}" + docker exec "$node" sh -c "cat > /etc/containerd/certs.d/localhost:${reg_port}/hosts.toml <-.pem) + cp /var/hyperledger/fabric/organizations/${node_type}Organizations/${org}.example.com/${node_type}s/${id_name}.${org}.example.com/msp/cacerts/*.pem \ + /var/hyperledger/fabric/organizations/${node_type}Organizations/${org}.example.com/${node_type}s/${id_name}.${org}.example.com/msp/cacerts/${org}-ca.pem + # Create local MSP config.yaml echo "NodeOUs: Enable: true