wiki.js exec user process caused: exec format error on postgress container

344 Views Asked by At

I'm trying to deploy a wiki.js into my K3S cluster of four RPi4.

For this, I run this commands according to the install instructions (https://docs.requarks.io/install/kubernetes):

$ helm repo add requarks https://charts.js.wiki
$ helm repo update
$ helm install wikijs requarks/wiki

After those commands, I get the following:

NAME: wikijs
LAST DEPLOYED: Tue Jun 14 13:25:30 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
  http://wiki.minikube.localmap[path:/ pathType:Prefix]

However, when I get the pods, I get the following:

$ kubectl get pods
NAME                       READY   STATUS              RESTARTS   AGE
wikijs-7f6c8b9f54-lz55k    0/1     ContainerCreating   0          3s
wikijs-postgresql-0        0/1     Error               0          3s

Finally, viewing the postgres logs, I get:

$ kubectl logs wikijs-postgresql-0
standard_init_linux.go:228: exec user process caused: exec format error

I believe this is an error about an executable running in the wrong architecture but, both, wikijs and postgresql support ARM64 so, by deploying the app, the right architecture should be selected, shouldn't it?

If I need to select the architecture manually, how can I do so? I've viewed the chart for wikijs and I can't find the place to select the postgres image.

Many thanks!

1

There are 1 best solutions below

0
Andy On BEST ANSWER

I was running into the same issue. The issue is running the postgres image on your rpi. I was able to get this to work on my rpi4 using this image for my postgresql statefulset: arm64v8/postgres:14 from docker.io.

I had to change this image in two places within the helm chart:

# charts/postgresql/values.yaml

image:
  registry: docker.io
  repository: arm64v8/postgres
  tag: 14

volumePermissions:
  enabled: true
  image:
    registry: docker.io
    repository: arm64v8/postgres
    tag: 14

The latter is for the initContainer (see statefulset template within the postgresql chart).