Error finding account 'admin': relation "accounts" does not exist

I have installed a zrok controller but my database is still empty. There is no schema.
It seems that the bootstrap process has skipped this point.

(zrok v1.0.2 [b15c99f9])

zrok controller ctrl.ym

[   0.083]    INFO zrok/controller.inspectZiti: inspecting ziti controller configuration
[   0.211]    INFO zrok/controller.findZrokProxyConfigType: found 'zrok.proxy.v1' config type with id 'zzz'
[   0.237]    INFO zrok/controller/store.Open: database connected
[   0.238]    INFO zrok/controller/metrics.(*Agent).Start.func1: started
[   0.238]    INFO zrok/controller/metrics.(*amqpSource).run: started
[   0.238]    INFO zrok/controller/metrics.(*amqpSource).run: connecting to 'amqp://guest:guest@localhost:5672'
[   0.238]    INFO zrok/controller.(*maintenanceRegistrationAgent).run: started
[   0.239]    INFO zrok/controller.(*maintenanceResetPasswordAgent).run: started
[   0.253]    INFO zrok/controller/metrics.(*amqpSource).run: connected to 'amqp://guest:guest@localhost:5672'
[   0.261]    INFO zrok/rest_server_zrok.(*Server).Logf: Serving zrok at https://[::]:18080
[  27.037]    INFO zrok/controller.loginHandler: received login request for email 'admin'
[  27.038]   ERROR zrok/controller.loginHandler: error finding account 'admin': error selecting account by email: pq: relation "accounts" does not exist

zrok admin bootstrap ctrl.yml

[   0.047]    INFO zrok/controller/store.Open: database connected
[   0.047]    INFO zrok/controller.Bootstrap: connecting to the ziti edge management api
[   0.131]    INFO zrok/controller.Bootstrap: creating identity for public frontend access
[   0.231]    INFO sdk-golang/ziti/enroll.generateRSAKey: generating 4096 bit RSA key
[   4.958]    INFO zrok/controller/zrokEdgeSdk.EnrollIdentity: enrolled ziti identity 'xxx'
[   4.964]    INFO zrok/controller.assertIdentity: asserted identity 'xxx'
[   4.968]    INFO zrok/controller.assertErpForIdentity: creating erp for 'public' (xxx)
[   4.973]    INFO zrok/controller/zrokEdgeSdk.CreateEdgeRouterPolicy: created edge router policy 'yyy' for ziti identity 'xxx'
[   4.973]    INFO zrok/controller.assertErpForIdentity: asserted erps for 'public' (xxx)
[   4.975] WARNING zrok/controller.Bootstrap: missing public frontend for ziti id 'xxx'; please use 'zrok admin create frontend xxx public https://{token}.your.dns.name' to create a frontend instance
[   4.984]    INFO zrok/controller.assertZrokProxyConfigType: created 'zrok.proxy.v1' config type with id 'zzzz'
[   4.986]    INFO main.(*adminBootstrap).run: bootstrap complete!

psql postgresql://zrok:passwd@127.0.0.1/zrok

zrok=> \dt
Did not find any relations.

By setting to false the disable_auto_migration parameter in ctrl.yml and executing the command zrok admin bootstrap etc/ctrl.yml --skip-frontend I have my schema.

So after creating and starting the frontend I have created the first user

zrok admin create frontend xxx public https://{token}.your.dns.name:port
zrok access public etc/frontend.yml
zrok=> select count(*) from accounts;
 count 
-------
     1
(1 row)

zrok=> select count(*) from accounts;
 count 
-------
     1
(1 row)

It seems to work now :grinning_face:

Is there zrok_xxx.service files to create zrok controller etc/ctrl.yml and zrok access public etc/frontend.yml systemd services?

1 Like

Nice work getting the zrok instance up and running on Linux! No, noone has created Linux packages or system services for the controller or frontend yet. The most relevant work is the Docker zrok instance, which runs BASH scripts to initialize the zrok instance, including bootstrapping the ziti network and creating the public frontend: zrok/docker/compose/zrok-instance at main · openziti/zrok · GitHub, and the Kubernetes zrok instance which uses the same general approach: helm-charts/charts/zrok at main · openziti/helm-charts · GitHub