civo / kubernetes-marketplace

Marketplace of Kubernetes applications available for quick and easy installation in to Civo Kubernetes clusters
https://www.civo.com/
MIT License
216 stars 181 forks source link

SpinKube applications fail to run #744

Open mikkelhegn opened 2 months ago

mikkelhegn commented 2 months ago

This issue is a:

If the issue concerns an existing Marketplace application, please tag the maintainer of the application (found in manifest.yaml) below: @saiyam1814

Bug Reports

If the issue is a Bug Report, please detail the following:

After having installed SpinKube on my cluster, the application will not start due.

Here's the pod with error messages at the bottom.

kubectl describe pod mikkelhegn-demo-598686dfff-gn5gm

Name:                mikkelhegn-demo-598686dfff-gn5gm
Namespace:           default
Priority:            0
Runtime Class Name:  wasmtime-spin-v2
Service Account:     default
Node:                k3s-raspy-oasis-bf5b-a5d7be-node-pool-6617-xc3dy/192.168.1.5
Start Time:          Thu, 11 Apr 2024 12:42:57 +0200
Labels:              core.spinoperator.dev/app-name=mikkelhegn-demo
                     core.spinoperator.dev/app.mikkelhegn-demo.status=ready
                     pod-template-hash=598686dfff
Annotations:         <none>
Status:              Pending
IP:                  
IPs:                 <none>
Controlled By:       ReplicaSet/mikkelhegn-demo-598686dfff
Containers:
  mikkelhegn-demo:
    Container ID:  
    Image:         ttl.sh/mikkelhegn-demo:1h
    Image ID:      
    Port:          80/TCP
    Host Port:     0/TCP
    Command:
      /
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /runtime-config.toml from spin-runtime-config (ro,path="runtime-config.toml")
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tw245 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  spin-runtime-config:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  mikkelhegn-demo-760b133c
    Optional:    true
  kube-api-access-tw245:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason                  Age                  From               Message
  ----     ------                  ----                 ----               -------
  Normal   Scheduled               3m10s                default-scheduler  Successfully assigned default/mikkelhegn-demo-598686dfff-gn5gm to k3s-raspy-oasis-bf5b-a5d7be-node-pool-6617-xc3dy
  Warning  FailedMount             3m9s                 kubelet            MountVolume.SetUp failed for volume "spin-runtime-config" : failed to sync secret cache: timed out waiting for the condition
  Warning  FailedCreatePodSandBox  10s (x15 over 3m9s)  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to get sandbox runtime: no runtime for "spin" is configured

There may be multiple things:

I'm not sure if the errors impact eachother.

Cluster was created using this command

civo kubernetes create --nodes 2

I also have an open PR, which fixes the install script, to wait properly for cert-manager is here: https://github.com/civo/kubernetes-marketplace/pull/743. I used that to install SpinKube.

And I noticed it already has the runtimeclasses and containerd configuration, but I believe those may be from a previous release of some of the components, and may conflict with the new installation. E.g., I observe wtho runtime classes using the spin handler, after having installed SpinKube:

> kubectl get runtimeclasses.node.k8s.io
NAME                  HANDLER               AGE
crun                  crun                  11m
lunatic               lunatic               11m
nvidia                nvidia                11m
nvidia-experimental   nvidia-experimental   11m
slight                slight                11m
spin                  spin                  11m
wasmedge              wasmedge              11m
wasmer                wasmer                11m
wasmtime              wasmtime              11m
wws                   wws                   11m
wasmtime-spin-v2      spin                  9m19s