seto 2.2.2__tar.gz → 2.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seto-2.2.2 → seto-2.2.4}/PKG-INFO +1 -1
- {seto-2.2.2 → seto-2.2.4}/pyproject.toml +1 -1
- {seto-2.2.2 → seto-2.2.4}/seto/commands/config.py +2 -2
- {seto-2.2.2 → seto-2.2.4}/seto/commands/deploy.py +7 -5
- {seto-2.2.2 → seto-2.2.4}/seto/core/docker.py +2 -2
- {seto-2.2.2 → seto-2.2.4}/LICENSE +0 -0
- {seto-2.2.2 → seto-2.2.4}/LICENSE_HEADER.txt +0 -0
- {seto-2.2.2 → seto-2.2.4}/README.md +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/__init__.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/__main__.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/commands/down.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/commands/mount.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/commands/setup.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/commands/umount.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/commands/volumes.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/command.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/dns.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/driver.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/network.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/parser.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/permissions.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/shell.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/swarm.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/traefik.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/core/volume.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/drivers/gluster.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/drivers/nfs.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/shells/local.py +0 -0
- {seto-2.2.2 → seto-2.2.4}/seto/shells/remote.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "seto"
|
|
7
|
-
version = "2.2.
|
|
7
|
+
version = "2.2.4"
|
|
8
8
|
description = "A Docker Swarm Deployment Manager"
|
|
9
9
|
keywords = ["docker", "swarm", "manager"]
|
|
10
10
|
authors = ["Sébastien Demanou <demsking@gmail.com>"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2024 Sébastien Demanou. All Rights Reserved.
|
|
1
|
+
# Copyright 2024-2025 Sébastien Demanou. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -57,7 +57,7 @@ def resolve(
|
|
|
57
57
|
configs = resolved_compose_data.get('configs', {})
|
|
58
58
|
secrets = resolved_compose_data.get('secrets', {})
|
|
59
59
|
|
|
60
|
-
resolved_compose_data['networks'] = {
|
|
60
|
+
resolved_compose_data['networks'] = {**config_networks, **networks_}
|
|
61
61
|
compose['x-placement'] = placement
|
|
62
62
|
compose['networks'].update(networks_)
|
|
63
63
|
compose['services'].update(services)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2024 Sébastien Demanou. All Rights Reserved.
|
|
1
|
+
# Copyright 2024-2025 Sébastien Demanou. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -95,8 +95,9 @@ def parse_compose_config(
|
|
|
95
95
|
'deploy': service_deploy,
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
if compose.node_hostname:
|
|
99
|
+
parse_service_vars(service_labels, compose.node_hostname)
|
|
100
|
+
parse_service_vars(service_environment, compose.node_hostname)
|
|
100
101
|
|
|
101
102
|
service['ports'] = service_ports
|
|
102
103
|
service_traefik_rule = pick_label_value(service_labels, '.rule')
|
|
@@ -108,7 +109,8 @@ def parse_compose_config(
|
|
|
108
109
|
published_port = random.randint(53100, 64200)
|
|
109
110
|
|
|
110
111
|
if not service_traefik_port:
|
|
111
|
-
|
|
112
|
+
print(f'WARN: Service "{service_name}" has no defined port. Skipped from Traefik HTTP Provider')
|
|
113
|
+
continue
|
|
112
114
|
|
|
113
115
|
service_ports.append(f'{published_port}:{service_traefik_port}')
|
|
114
116
|
|
|
@@ -167,7 +169,7 @@ def deploy_seto_stack(args, driver: Driver, replica: list[Setting]) -> None:
|
|
|
167
169
|
'deploy': {
|
|
168
170
|
'mode': 'global',
|
|
169
171
|
'labels': {
|
|
170
|
-
'traefik.discovery.enable
|
|
172
|
+
'traefik.discovery.enable': True,
|
|
171
173
|
},
|
|
172
174
|
},
|
|
173
175
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2024 Sébastien Demanou. All Rights Reserved.
|
|
1
|
+
# Copyright 2024-2025 Sébastien Demanou. All Rights Reserved.
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -110,7 +110,7 @@ class DockerCompose(Docker):
|
|
|
110
110
|
if node.attrs['Spec']['Labels'].get(label_key) == value:
|
|
111
111
|
return node.attrs['Description']['Hostname']
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
raise ValueError(f'Unable to found node for placement "{self.placement}"')
|
|
114
114
|
|
|
115
115
|
def info(self) -> None:
|
|
116
116
|
self._exec(f'docker compose -p {self.driver.stack_id} -f - config')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|