K8s readOnlyRootFilesystem

Good afternoon, colleagues. I have Temporal 1.17.5 installed in my cluster.
Trying to upgrade from 1.17.5 to 1.22.6 and when trying to run tctl in temporal-admin-tool I get the following error:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x16c9815]

goroutine 1 [running]:
main.main()
/home/builder/tctl/cmd/tctl/main.go:39 +0x35

No error occurs on version 1.17.5.
I have a mandatory policy in my cluster - readOnlyRootFilesystem: true.
I checked separately in docker-compose - if I set read_only: true then the same error, if false then everything works.
Please advise how to be in this situation.

Hi,

Can you verify if you have your permissions set to the $HOME dir on the environment? tctl needs permissions to write the .config file to $HOME dir. Can you give read+write permissions to this dir and then try again?

Thanks for the tip! I can’t grant permissions in the container, but I looked up that $HOME is /home/temporal and added this to the helm-chart and it worked:

volumes:

  • name: builder-volume
    emptyDir: {}

volumeMounts:

  • name: builder-volume
    mountPath: /home/temporal

Thank you.