How to setup Agola NON test

This link:
Has this comment:
The dockerhub sorintlab/agola-demo is a demo image to easily test agola, it comes with a predefined configuration that uses an embedded etcd. Don’t use it in production but build your own image or use the sorintlab/agola image.

Which makes me wonder; is there a better image to use if I DO want the embedded etcd?

@carlokok Can you explain what you are trying to achieve? i.e. what kind of agola deployment you’re trying to do?

Consider that the embedded etcd should be used only for tests, for a real world deployment you should use a real etcd cluster (at least 3 nodes) and a real “object storage” (i.e. a s3 like objectstorage or a shared posix FS like nfs or cephfs).

See also the deployment examples provided here:

hrmm. That seems a bit overkill. I was hoping to just setup a single "server’ that controlled a few agents on different machines, without having setup a full cluster of servers.

@carlokok You can easily do that. Just use the sorintlab/agola image with your custom config to start all the components except the executor (or also the executor as you prefer). Then start the executor in all the other server. You’ll have a single management process (that you cannot scale) and multiple executors.

You can use the example config as a starting point and update the various urls.

Since it looks like you are working with machines (not a k8s cluster) you can do all of this also without running agola inside docker but just as a system service. If you want to instead run agola inside docker then you should also remember to put all the agola data (also the embedded etcd server data) on a persistent volume.

This is an example starting command:

Agola management components

agola serve --config ./config.yml --embedded-etcd --embedded-etcd-data-dir /path/to/etcd/datadir --components all-base

Agola executor

agola serve --config ./config.yml --components executor

There’re many possible combinations, you could also start a separate single node etcd on the same machine and point to it instead of using the embedded etcd (better than the embedded etcd also if single instance). You’re free to do what you want but consider all the possible pros and cons (and don’t complain if you lose your data due to bad decisions :smile:).

1 Like