{"tests":[{"name":"cl.internet/UpdateEngine","result":"PASS","duration":366993574,"output":""},{"name":"cl.internet/DockerPing","result":"FAIL","duration":3622009640,"output":"        cluster.go:85: kolet: Process exited with status 1\n"},{"name":"cl.internet/DockerEcho","result":"FAIL","duration":674317486,"output":"        cluster.go:85: kolet: Process exited with status 1\n"},{"name":"cl.internet/NTPDate","result":"PASS","duration":7154902469,"output":""},{"name":"cl.internet","result":"FAIL","duration":103353349769,"output":"    --- PASS: cl.internet/UpdateEngine (0.37s)\n        cluster.go:82: kolet:\n2026-07-21T18:45:51Z kolet: exit status 139\n    --- FAIL: cl.internet/DockerPing (3.62s)\n            cluster.go:85: kolet: Process exited with status 1\n        cluster.go:82: kolet:\n2026-07-21T18:45:51Z kolet: DockerEcho: exit status 139\n    --- FAIL: cl.internet/DockerEcho (0.67s)\n            cluster.go:85: kolet: Process exited with status 1\n    --- PASS: cl.internet/NTPDate (7.15s)\n"},{"name":"docker.network-openbsd-nc","result":"FAIL","duration":129026441840,"output":"        docker.go:413: creating netcat containers\n        cluster.go:125: #0 building with \"default\" instance using docker driver\n        cluster.go:125: \n        cluster.go:125: #1 [internal] load build definition from Dockerfile\n        cluster.go:125: #1 transferring dockerfile: 108B done\n        cluster.go:125: #1 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #2 [internal] load .dockerignore\n        cluster.go:125: #2 transferring context: 2B done\n        cluster.go:125: #2 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #3 [internal] load build context\n        cluster.go:125: #3 transferring context: 3.74MB 0.0s done\n        cluster.go:125: #3 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #4 [1/1] COPY . /\n        cluster.go:125: #4 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #5 exporting to image\n        cluster.go:125: #5 exporting layers\n        cluster.go:125: #5 exporting layers 0.2s done\n        cluster.go:125: #5 exporting manifest sha256:9dfc8e3da85071f6050a661f3e1efb7da7fd7bf435cabfaa24e7a1b860f260b9\n        cluster.go:125: #5 exporting manifest sha256:9dfc8e3da85071f6050a661f3e1efb7da7fd7bf435cabfaa24e7a1b860f260b9 done\n        cluster.go:125: #5 exporting config sha256:9edab021da76518b4f36e650011f5db023181c6745895b8ae4d9c6c9caaf95c4 done\n        cluster.go:125: #5 exporting attestation manifest sha256:3fac59d318ad74a64be53a57c0e5fbb70a561afaddc590bc0c3189a8f3b7b485 0.0s done\n        cluster.go:125: #5 exporting manifest list sha256:6cad1c95dc009048d488fc88a3d27aacea1098913bca151124176e7982adafcf done\n        cluster.go:125: #5 naming to docker.io/library/netcat:latest done\n        cluster.go:125: #5 unpacking to docker.io/library/netcat:latest 0.0s done\n        cluster.go:125: #5 DONE 0.3s\n        cluster.go:125: #0 building with \"default\" instance using docker driver\n        cluster.go:125: \n        cluster.go:125: #1 [internal] load build definition from Dockerfile\n        cluster.go:125: #1 transferring dockerfile: 108B done\n        cluster.go:125: #1 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #2 [internal] load .dockerignore\n        cluster.go:125: #2 transferring context: 2B done\n        cluster.go:125: #2 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #3 [internal] load build context\n        cluster.go:125: #3 transferring context: 3.74MB 0.0s done\n        cluster.go:125: #3 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #4 [1/1] COPY . /\n        cluster.go:125: #4 DONE 0.0s\n        cluster.go:125: \n        cluster.go:125: #5 exporting to image\n        cluster.go:125: #5 exporting layers\n        cluster.go:125: #5 exporting layers 0.2s done\n        cluster.go:125: #5 exporting manifest sha256:96688210d3532c1c9816362b870a656fbe567609b40cae8bdb7ebc9a6e0c6a32 done\n        cluster.go:125: #5 exporting config sha256:3cf42957416f4313149c399f073c557f50a4312445dfd11a6d2048af1b5c4ede done\n        cluster.go:125: #5 exporting attestation manifest sha256:92b9878289a39edf0323c12f61bfb6f0ce65cb665034a5eecccd9a96fc1cf1d7 0.0s done\n        cluster.go:125: #5 exporting manifest list sha256:6433685e225a36dc2f68e4996f40b36cc38e3a73930956c496d5b9e03fb1905f done\n        cluster.go:125: #5 naming to docker.io/library/netcat:latest done\n        cluster.go:125: #5 unpacking to docker.io/library/netcat:latest 0.0s done\n        cluster.go:125: #5 DONE 0.3s\n        docker.go:471: [0] Process exited with status 139 [1] timeout waiting for server\n"},{"name":"kubeadm.v1.36.1.flannel.base/node_readiness","result":"PASS","duration":11310724062,"output":""},{"name":"kubeadm.v1.36.1.flannel.base/nginx_deployment","result":"PASS","duration":6324112718,"output":""},{"name":"kubeadm.v1.36.1.flannel.base/NFS_deployment","result":"PASS","duration":13220089758,"output":"        cluster.go:125: jq: error (at \u003cstdin\u003e:123): Cannot iterate over null (null)\n        cluster.go:125: jq: error (at \u003cstdin\u003e:123): Cannot iterate over null (null)\n"},{"name":"kubeadm.v1.36.1.flannel.base","result":"PASS","duration":320328898026,"output":"        cluster.go:125: [config/images] Pulled registry.k8s.io/kube-apiserver:v1.36.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/kube-controller-manager:v1.36.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/kube-scheduler:v1.36.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/kube-proxy:v1.36.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/coredns/coredns:v1.14.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/pause:3.10.2\n        cluster.go:125: [config/images] Pulled registry.k8s.io/etcd:3.6.8-0\n        cluster.go:125: [init] Using Kubernetes version: v1.36.2\n        cluster.go:125: [preflight] Running pre-flight checks\n        cluster.go:125: \t[WARNING Hostname]: hostname \"ci-9999-0-102-2eaa4cc32d\" could not be reached\n        cluster.go:125: \t[WARNING Hostname]: hostname \"ci-9999-0-102-2eaa4cc32d\": lookup ci-9999-0-102-2eaa4cc32d on 185.12.64.1:53: no such host\n        cluster.go:125: \t[WARNING Service-kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'\n        cluster.go:125: [preflight] Pulling images required for setting up a Kubernetes cluster\n        cluster.go:125: [preflight] This might take a minute or two, depending on the speed of your internet connection\n        cluster.go:125: [preflight] You can also perform this action beforehand using 'kubeadm config images pull'\n        cluster.go:125: [certs] Using certificateDir folder \"/etc/kubernetes/pki\"\n        cluster.go:125: [certs] Generating \"ca\" certificate and key\n        cluster.go:125: [certs] Generating \"apiserver\" certificate and key\n        cluster.go:125: [certs] apiserver serving cert is signed for DNS names [ci-9999-0-102-2eaa4cc32d kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 77.42.127.80]\n        cluster.go:125: [certs] Generating \"apiserver-kubelet-client\" certificate and key\n        cluster.go:125: [certs] Generating \"front-proxy-ca\" certificate and key\n        cluster.go:125: [certs] Generating \"front-proxy-client\" certificate and key\n        cluster.go:125: [certs] External etcd mode: Skipping etcd/ca certificate authority generation\n        cluster.go:125: [certs] External etcd mode: Skipping etcd/server certificate generation\n        cluster.go:125: [certs] External etcd mode: Skipping etcd/peer certificate generation\n        cluster.go:125: [certs] External etcd mode: Skipping etcd/healthcheck-client certificate generation\n        cluster.go:125: [certs] External etcd mode: Skipping apiserver-etcd-client certificate generation\n        cluster.go:125: [certs] Generating \"sa\" key and public key\n        cluster.go:125: [kubeconfig] Using kubeconfig folder \"/etc/kubernetes\"\n        cluster.go:125: [kubeconfig] Writing \"admin.conf\" kubeconfig file\n        cluster.go:125: [kubeconfig] Writing \"super-admin.conf\" kubeconfig file\n        cluster.go:125: [kubeconfig] Writing \"kubelet.conf\" kubeconfig file\n        cluster.go:125: [kubeconfig] Writing \"controller-manager.conf\" kubeconfig file\n        cluster.go:125: [kubeconfig] Writing \"scheduler.conf\" kubeconfig file\n        cluster.go:125: [control-plane] Using manifest folder \"/etc/kubernetes/manifests\"\n        cluster.go:125: [control-plane] Creating static Pod manifest for \"kube-apiserver\"\n        cluster.go:125: [control-plane] Creating static Pod manifest for \"kube-controller-manager\"\n        cluster.go:125: [control-plane] Creating static Pod manifest for \"kube-scheduler\"\n        cluster.go:125: [kubelet-start] Writing kubelet environment file with flags to file \"/var/lib/kubelet/kubeadm-flags.env\"\n        cluster.go:125: [kubelet-start] Writing kubelet configuration to file \"/var/lib/kubelet/instance-config.yaml\"\n        cluster.go:125: [patches] Applied patch of type \"application/strategic-merge-patch+json\" to target \"kubeletconfiguration\"\n        cluster.go:125: [kubelet-start] Writing kubelet configuration to file \"/var/lib/kubelet/config.yaml\"\n        cluster.go:125: [kubelet-start] Starting the kubelet\n        cluster.go:125: [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory \"/etc/kubernetes/manifests\"\n        cluster.go:125: [kubelet-check] Waiting for a healthy kubelet at http://127.0.0.1:10248/healthz. This can take up to 4m0s\n        cluster.go:125: [kubelet-check] The kubelet is healthy after 9.253664ms\n        cluster.go:125: [control-plane-check] Waiting for healthy control plane components. This can take up to 30m0s\n        cluster.go:125: [control-plane-check] Checking kube-apiserver at https://77.42.127.80:6443/livez\n        cluster.go:125: [control-plane-check] Checking kube-controller-manager at https://127.0.0.1:10257/healthz\n        cluster.go:125: [control-plane-check] Checking kube-scheduler at https://127.0.0.1:10259/livez\n        cluster.go:125: [control-plane-check] kube-controller-manager is healthy after 2.662615ms\n        cluster.go:125: [control-plane-check] kube-scheduler is healthy after 5.063748ms\n        cluster.go:125: [control-plane-check] kube-apiserver is healthy after 1.501892325s\n        cluster.go:125: [upload-config] Storing the configuration used in ConfigMap \"kubeadm-config\" in the \"kube-system\" Namespace\n        cluster.go:125: [kubelet] Creating a ConfigMap \"kubelet-config\" in namespace kube-system with the configuration for the kubelets in the cluster\n        cluster.go:125: [upload-certs] Skipping phase. Please see --upload-certs\n        cluster.go:125: [mark-control-plane] Marking the node ci-9999-0-102-2eaa4cc32d as control-plane by adding the labels: [node-role.kubernetes.io/control-plane node.kubernetes.io/exclude-from-external-load-balancers]\n        cluster.go:125: [mark-control-plane] Marking the node ci-9999-0-102-2eaa4cc32d as control-plane by adding the taints [node-role.kubernetes.io/control-plane:NoSchedule]\n        cluster.go:125: [bootstrap-token] Using token: w1mi6f.p3ckbekax5v1y1fx\n        cluster.go:125: [bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles\n        cluster.go:125: [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes\n        cluster.go:125: [bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials\n        cluster.go:125: [bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token\n        cluster.go:125: [bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster\n        cluster.go:125: [bootstrap-token] Configured RBAC rules to allow the API server kubelet client certificate to access the kubelet API\n        cluster.go:125: [bootstrap-token] Creating the \"cluster-info\" ConfigMap in the \"kube-public\" namespace\n        cluster.go:125: [kubelet-finalize] Updating \"/etc/kubernetes/kubelet.conf\" to point to a rotatable kubelet client certificate and key\n        cluster.go:125: [addons] Applied essential addon: CoreDNS\n        cluster.go:125: [addons] Applied essential addon: kube-proxy\n        cluster.go:125: \n        cluster.go:125: Your Kubernetes control-plane has initialized successfully!\n        cluster.go:125: \n        cluster.go:125: To start using your cluster, you need to run the following as a regular user:\n        cluster.go:125: \n        cluster.go:125:   mkdir -p $HOME/.kube\n        cluster.go:125:   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config\n        cluster.go:125:   sudo chown $(id -u):$(id -g) $HOME/.kube/config\n        cluster.go:125: \n        cluster.go:125: Alternatively, if you are the root user, you can run:\n        cluster.go:125: \n        cluster.go:125:   export KUBECONFIG=/etc/kubernetes/admin.conf\n        cluster.go:125: \n        cluster.go:125: You should now deploy a pod network to the cluster.\n        cluster.go:125: Run \"kubectl apply -f [podnetwork].yaml\" with one of the options listed at:\n        cluster.go:125:   https://kubernetes.io/docs/concepts/cluster-administration/addons/\n        cluster.go:125: \n        cluster.go:125: Then you can join any number of worker nodes by running the following on each as root:\n        cluster.go:125: \n        cluster.go:125: kubeadm join 77.42.127.80:6443 --token w1mi6f.p3ckbekax5v1y1fx \\\n        cluster.go:125: \t--discovery-token-ca-cert-hash sha256:67a7eeaa0ed53723d91edf8c0cf5fe4adfbaa4d289fa1654c97d1247641d55a6 \n        cluster.go:125: namespace/kube-flannel created\n        cluster.go:125: clusterrole.rbac.authorization.k8s.io/flannel created\n        cluster.go:125: clusterrolebinding.rbac.authorization.k8s.io/flannel created\n        cluster.go:125: serviceaccount/flannel created\n        cluster.go:125: configmap/kube-flannel-cfg created\n        cluster.go:125: daemonset.apps/kube-flannel-ds created\n        cluster.go:125: W0721 18:47:59.638784    2309 joinconfiguration.go:112] [config] WARNING: Ignored configuration document with GroupVersionKind kubelet.config.k8s.io/v1beta1, Kind=KubeletConfiguration\n        cluster.go:125: \t[WARNING Service-kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'\n        cluster.go:125: W0721 18:47:59.784650    2309 utils.go:69] The recommended value for \"bindAddress\" in \"KubeProxyConfiguration\" is: ::; the provided value is: 0.0.0.0\n    --- PASS: kubeadm.v1.36.1.flannel.base/node_readiness (11.31s)\n    --- PASS: kubeadm.v1.36.1.flannel.base/nginx_deployment (6.32s)\n    --- PASS: kubeadm.v1.36.1.flannel.base/NFS_deployment (13.22s)\n            cluster.go:125: jq: error (at \u003cstdin\u003e:123): Cannot iterate over null (null)\n            cluster.go:125: jq: error (at \u003cstdin\u003e:123): Cannot iterate over null (null)\n"}],"result":"FAIL","platform":"hetzner","version":"9999.0.102"}
