Open
Description
Hi, and thanks for your work !
We use cronjob to start jobs in our clusters and for some reasons we need for one of our container to set the mac_address (licensing stuff). We found that adding cap_add: - NET_ADMIN allow us to override that value and we are ok with that.
We then tried to deploy such a container in our swarm and found that :
- if the container is started with deploy: replica: 1, it is running well
- if the container is started by the scheduler : swarm.cronjob.schedule=* * * * * for example, we see the error : ip: ioctl 0x8914 failed: Operation not permitted
In the docker documentation, we can see that :
`Note when using docker stack deploy
The cap_add and cap_drop options are ignored when deploying a stack in swarm mode`
But it seems that with our used version of docker (20.10.10) and cronjob (1.10.0, latest) the cap_add is NOT ignored, or at least for the replica :1 option.
Here is an example of our iml file :
version: '3.8'
services:
stream:
image: alpine
entrypoint: [ "/bin/sh","-c" ]
command: >
"ip link set dev eth0 down
&& ip link set dev eth0 address fa:16:3e:87:02:d7
&& ip link set dev eth0 up"
deploy:
replicas: 0
labels:
- "swarm.cronjob.enable=true"
- "swarm.cronjob.schedule=* * * * *"
- "swarm.cronjob.skip-running=true"
cap_add:
- NET_ADMIN
Metadata
Metadata
Assignees
Labels
No labels
Activity