Is there an ARM64 version of Tyk Gateway available?

Is there an ARM64 version of Tyk Gateway available? I’m trying to install the gateway using the Helm chart but the gateway pod fails to start up. I see the following error: exec /opt/tyk-gateway/tyk: exec format error
I think this error is do to the fact that the host system running multipass VM with Microk8s is an M2 macbook.

hmm thats is odd. Maybe that system is not selecting the right packages for some reason?

Which charts are you using? Try settings the image tags to v5.x.x-arm64 to force it?

I’m following these steps Tyk Helm Chart

Sorry, I’m not that familiar with Helm; where should I specify the image tags?

Of course! All you need to do is rerun the install command (you will need to use the upgrade command instead of the install command) and add the following flag:

–set gateway.image.tag=v5.0.4-arm64

Full command:

helm upgrade tyk-ce tyk-helm/tyk-headless -f values.yaml --set gateway.image.tag=v5.0.4-arm64 -n tyk

You can also just change line 110 inside the values.yaml to v5.0.4-arm64 to do the same thing. With that all you would need to run is:

helm upgrade tyk-ce tyk-helm/tyk-headless -f values.yaml -n tyk

Thanks @zaid! It’s in the running state. Does the log below look right?

Defaulted container "gateway-tyk-headless" out of: gateway-tyk-headless, setup-directories (init)
time="Aug 03 17:48:31" level=info msg="Tyk API Gateway 5.0.4" prefix=main
time="Aug 03 17:48:31" level=warning msg="Insecure configuration allowed" config.allow_insecure_configs=true prefix=checkup
time="Aug 03 17:48:31" level=warning msg="File descriptor limit 65536 is too low for production use. A minimum of 80000 is recommended.\n\tThis could have a significant negative impact on performance.\n\tPlease refer to the following link for further guidance:\n\t\thttps://tyk.io/docs/deploy-tyk-premise-production/#file-handles--file-descriptors" prefix=checkup
time="Aug 03 17:48:31" level=error msg="Could not set version in versionStore" error="storage: Redis is either down or was not configured" prefix=main
time="Aug 03 17:48:31" level=error msg="cannot set key in pollerCacheKey" error="storage: Redis is either down or was not configured"
time="Aug 03 17:48:31" level=info msg="Starting Poller" prefix=host-check-mgr
time="Aug 03 17:48:31" level=info msg="PIDFile location set to: /mnt/tyk-gateway/tyk.pid" prefix=main
time="Aug 03 17:48:31" level=warning msg="The control_api_port should be changed for production" prefix=main
time="Aug 03 17:48:31" level=info msg="Initialising Tyk REST API Endpoints" prefix=main
time="Aug 03 17:48:31" level=info msg="--> [REDIS] Creating single-node client"
time="Aug 03 17:48:31" level=error msg="Connection to Redis failed, reconnect in 10s" error="storage: Redis is either down or was not configured" prefix=pub-sub
time="Aug 03 17:48:31" level=info msg="--> Standard listener (http)" port=":8080" prefix=main
time="Aug 03 17:48:31" level=warning msg="Starting HTTP server on:[::]:8080" prefix=main
time="Aug 03 17:48:31" level=info msg="Initialising distributed rate limiter" prefix=main
time="Aug 03 17:48:31" level=info msg="Tyk Gateway started (5.0.4)" prefix=main
time="Aug 03 17:48:31" level=info msg="--> Listening on address: (open interface)" prefix=main
time="Aug 03 17:48:31" level=info msg="--> Listening on port: 8080" prefix=main
time="Aug 03 17:48:31" level=info msg="--> PID: 1" prefix=main
time="Aug 03 17:48:31" level=info msg="Loading policies" prefix=main
time="Aug 03 17:48:31" level=info msg="Loading policy from dir /mnt/tyk-gateway/policies/policies.json"
time="Aug 03 17:48:31" level=error msg="Couldn't unmarshal policy configuration from dir: /mnt/tyk-gateway/policies/policies.json : EOF"
time="Aug 03 17:48:31" level=info msg="Policies found (1 total):" prefix=main
time="Aug 03 17:48:31" level=info msg="Detected 0 APIs" prefix=main
time="Aug 03 17:48:31" level=warning msg="No API Definitions found, not reloading" prefix=main
time="Aug 03 17:48:31" level=info msg="Starting gateway rate limiter notifications..."
time="Aug 03 17:48:33" level=info msg="--> [REDIS] Creating single-node client"
time="Aug 03 17:48:33" level=info msg="--> [REDIS] Creating single-node client"

looks right to me! You can also check the state of the gateway at /hello