Fixed swarm network mapping and default docker network type to swarm (overlay)
This commit is contained in:
+5
-3
@@ -59,9 +59,9 @@ services:
|
|||||||
- HTTPS_PROXY=${HTTPS_PROXY}
|
- HTTPS_PROXY=${HTTPS_PROXY}
|
||||||
- SHUFFLE_PASS_WORKER_PROXY=${SHUFFLE_PASS_WORKER_PROXY}
|
- SHUFFLE_PASS_WORKER_PROXY=${SHUFFLE_PASS_WORKER_PROXY}
|
||||||
- SHUFFLE_PASS_APP_PROXY=${SHUFFLE_PASS_APP_PROXY}
|
- SHUFFLE_PASS_APP_PROXY=${SHUFFLE_PASS_APP_PROXY}
|
||||||
|
- SHUFFLE_SWARM_NETWORK_NAME=shuffle_swarm_executions
|
||||||
- SHUFFLE_SCALE_REPLICAS=1
|
- SHUFFLE_SCALE_REPLICAS=1
|
||||||
- SHUFFLE_SWARM_CONFIG=runn
|
- SHUFFLE_SWARM_CONFIG=run
|
||||||
- SHUFFLE_SWARM_NETWORK_NAME=shuffle-executions
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
opensearch:
|
opensearch:
|
||||||
image: opensearchproject/opensearch:1.2.3
|
image: opensearchproject/opensearch:1.2.3
|
||||||
@@ -93,4 +93,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
shuffle:
|
shuffle:
|
||||||
driver: bridge
|
driver: overlay
|
||||||
|
|
||||||
|
#driver: bridge
|
||||||
|
|||||||
@@ -199,7 +199,8 @@ func deployServiceWorkers(image string) {
|
|||||||
|
|
||||||
//docker network create --driver=overlay workers
|
//docker network create --driver=overlay workers
|
||||||
networkCreateOptions := types.NetworkCreate{
|
networkCreateOptions := types.NetworkCreate{
|
||||||
Driver: "overlay",
|
Driver: "overlay",
|
||||||
|
Attachable: true,
|
||||||
}
|
}
|
||||||
_, err := dockercli.NetworkCreate(
|
_, err := dockercli.NetworkCreate(
|
||||||
ctx,
|
ctx,
|
||||||
@@ -209,21 +210,27 @@ func deployServiceWorkers(image string) {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if strings.Contains(fmt.Sprintf("%s", err), "already exists") {
|
if strings.Contains(fmt.Sprintf("%s", err), "already exists") {
|
||||||
|
// Try patching for attachable
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
log.Printf("[DEBUG] Failed to create network %s for workers: %s. This is not critical, and containers will still be added", networkName, err)
|
log.Printf("[DEBUG] Failed to create network %s for workers: %s. This is not critical, and containers will still be added", networkName, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//containerId = strings.TrimSpace(string(out))
|
defaultNetworkAttach := false
|
||||||
if containerId != "" {
|
if containerId != "" {
|
||||||
log.Printf("\n\nShould connect orborus container to worker network as it's running in Docker with name %#v!\n\n", containerId)
|
log.Printf("[WARNING] Should connect orborus container to worker network as it's running in Docker with name %#v!", containerId)
|
||||||
// https://pkg.go.dev/github.com/docker/docker@v20.10.12+incompatible/api/types/network#EndpointSettings
|
// https://pkg.go.dev/github.com/docker/docker@v20.10.12+incompatible/api/types/network#EndpointSettings
|
||||||
networkConfig := &network.EndpointSettings{}
|
networkConfig := &network.EndpointSettings{}
|
||||||
err := dockercli.NetworkConnect(ctx, networkName, containerId, networkConfig)
|
err := dockercli.NetworkConnect(ctx, networkName, containerId, networkConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("[WARNING] Failed connecting to Orborus to docker network %s: %s", networkName, err)
|
log.Printf("[WARNING] Failed connecting to Orborus to docker network %s: %s", networkName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(containerId) == 64 && baseUrl == "http://shuffle-backend:5001" {
|
||||||
|
log.Printf("[WARNING] Network MAY not work due to backend being %s and container length 64. Will try to attach shuffle_shuffle network", baseUrl)
|
||||||
|
defaultNetworkAttach = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//serviceOptions := types.ServiceCreateOptions{}
|
//serviceOptions := types.ServiceCreateOptions{}
|
||||||
@@ -329,6 +336,15 @@ func deployServiceWorkers(image string) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if defaultNetworkAttach == true {
|
||||||
|
serviceSpec.Networks = append(serviceSpec.Networks, swarm.NetworkAttachmentConfig{
|
||||||
|
Target: "shuffle_shuffle",
|
||||||
|
})
|
||||||
|
|
||||||
|
// FIXM: Remove this if deployment fails?
|
||||||
|
serviceSpec.TaskTemplate.ContainerSpec.Env = append(serviceSpec.TaskTemplate.ContainerSpec.Env, fmt.Sprintf("SHUFFLE_SWARM_OTHER_NETWORK=shuffle_shuffle"))
|
||||||
|
}
|
||||||
|
|
||||||
if dockerApiVersion != "" {
|
if dockerApiVersion != "" {
|
||||||
serviceSpec.TaskTemplate.ContainerSpec.Env = append(serviceSpec.TaskTemplate.ContainerSpec.Env, fmt.Sprintf("DOCKER_API_VERSION=%s", dockerApiVersion))
|
serviceSpec.TaskTemplate.ContainerSpec.Env = append(serviceSpec.TaskTemplate.ContainerSpec.Env, fmt.Sprintf("DOCKER_API_VERSION=%s", dockerApiVersion))
|
||||||
}
|
}
|
||||||
@@ -351,6 +367,21 @@ func deployServiceWorkers(image string) {
|
|||||||
} else {
|
} else {
|
||||||
if !strings.Contains(fmt.Sprintf("%s", err), "Already Exists") && !strings.Contains(fmt.Sprintf("%s", err), "is already in use by service") {
|
if !strings.Contains(fmt.Sprintf("%s", err), "Already Exists") && !strings.Contains(fmt.Sprintf("%s", err), "is already in use by service") {
|
||||||
log.Printf("[ERROR] Failed making service: %s", err)
|
log.Printf("[ERROR] Failed making service: %s", err)
|
||||||
|
} else {
|
||||||
|
log.Printf("[WARNING] Failed deploying workers: %s", err)
|
||||||
|
if len(serviceSpec.Networks) > 1 {
|
||||||
|
serviceSpec.Networks = []swarm.NetworkAttachmentConfig{
|
||||||
|
swarm.NetworkAttachmentConfig{
|
||||||
|
Target: "shuffle_shuffle",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
_, _ = dockercli.ServiceCreate(
|
||||||
|
ctx,
|
||||||
|
serviceSpec,
|
||||||
|
serviceOptions,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2542,6 +2542,11 @@ func deploySwarmService(dockercli *dockerclient.Client, name, image string, depl
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(os.Getenv("SHUFFLE_SWARM_OTHER_NETWORK")) > 0 {
|
||||||
|
serviceSpec.Networks = append(serviceSpec.Networks, swarm.NetworkAttachmentConfig{
|
||||||
|
Target: "shuffle_shuffle",
|
||||||
|
})
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
Mounts: []mount.Mount{
|
Mounts: []mount.Mount{
|
||||||
mount.Mount{
|
mount.Mount{
|
||||||
|
|||||||
Reference in New Issue
Block a user