portainer-devtool/go/repositories/portainer-ee/swarm_deploy.go

68 lines
1.4 KiB
Go
Raw Permalink Normal View History

2023-01-10 18:17:13 +11:00
package portaineree
import (
"ocl/portainer-devtool/configs"
"ocl/portainer-devtool/tasks/common"
"ocl/portainer-devtool/utils"
)
type SwarmDeploySubTask struct {
common.GeneralTask
}
func NewSwarmDeploySubTask(cfg *configs.Config) *SwarmDeploySubTask {
return &SwarmDeploySubTask{
GeneralTask: *common.NewGeneralTask(cfg),
}
}
func (task *SwarmDeploySubTask) Execute() error {
utils.SuccessPrint(`
version: '3.2'
services:
agent:
image: portainer/agent:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainerci/portainer-ee:4803
command: -H tcp://tasks.agent:9001 --tlsskipverify --log-level ERROR
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/oscar/volume/portainer-ee-data-1:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
--------------------------
docker stack deploy -c docker-compose.yaml portainer
`)
return nil
}
func (task *SwarmDeploySubTask) String() string {
return "Deploy Portainer in Swarm"
2023-01-10 18:17:13 +11:00
}