Open smartnexus opened 2 years ago
The key would be to add another condition to the if statement checking options var https://github.com/portainer/agent/blob/52536ce32c7a2377d35cd19ba5e0301bb759fdd6/cmd/agent/main.go#L80
For Portainer to work across a Swarm cluster, even when deploying containers to specific swarm nodes, the agent needs to be running on all the nodes in the cluster. Without it, functionality would be severely limited.
With this the agent is going to be running in all swarm nodes, but not as a swarm cluster, just a bunch of nodes that are accesible by L3. When the agent runs in swarm mode, deploy is done by "docker stack deploy" and sometimes makes sense to use "docker compose" in just one node
Hey, i have just ran into simmilar problem, and i love proposed solution.
My docker nodes are separate instances, mostly running container in macvlans. They are joined in swarm only for prometheus monitoring, no more services use swarm. I would like portainer agents to ignore swarm mode and act like on single docker. Swarm is only to provide an overlay network for monitoring, nodes are hosting dedicated services, as they are required to work separately, even if all other nodes are not reachable.
At last, they are managed separately even when connected as swarm.
I have the same issue. It would be nice to have this feature implemented.
Same issue. Would be great to have an env var to disable auto switch
I would love this as well. I have a docker swarm set up specifically for the easy routing of a few items behind my reverse proxy. Portainer agents are not one of those items, and I'd very much love for them to run standalone specifically to be able to monitor the containers of the machine without the entire swarm network being displayed.
Basically, I'm hoping to clean up the portainer interface by having each of my machines (some of which are nodes in a swarm, but only for certain items) only display a list of the services they're running, rather than the entirety of the cluster.
I have a Swarm cluster for some network reasons, but I deploy containers in a specific node each time (depending on some requirements). So I want to launch my agent running on Docker standalone but it detects node is part of Swarm cluster, and switches to cluster mode, failing start.
This is the cmd I am using:
docker run -it --rm -p 9001:9001 --name portainer_agent -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes -e LOG_LEVEL=DEBUG portainer/agent:2.13.1
I think it will be nice to have an environment variable to disable auto swtiching.