seto 2.2.0__tar.gz → 2.2.1__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.0 → seto-2.2.1}/PKG-INFO +1 -1
- {seto-2.2.0 → seto-2.2.1}/pyproject.toml +1 -1
- {seto-2.2.0 → seto-2.2.1}/seto/commands/deploy.py +37 -38
- {seto-2.2.0 → seto-2.2.1}/LICENSE +0 -0
- {seto-2.2.0 → seto-2.2.1}/LICENSE_HEADER.txt +0 -0
- {seto-2.2.0 → seto-2.2.1}/README.md +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/__init__.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/__main__.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/config.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/down.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/mount.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/setup.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/umount.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/commands/volumes.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/command.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/dns.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/docker.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/driver.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/network.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/parser.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/permissions.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/shell.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/swarm.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/traefik.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/core/volume.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/drivers/gluster.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/drivers/nfs.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/seto/shells/local.py +0 -0
- {seto-2.2.0 → seto-2.2.1}/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.1"
|
|
8
8
|
description = "A Docker Swarm Deployment Manager"
|
|
9
9
|
keywords = ["docker", "swarm", "manager"]
|
|
10
10
|
authors = ["Sébastien Demanou <demsking@gmail.com>"]
|
|
@@ -43,12 +43,12 @@ def parse_service_vars(entries: dict[str, Any], hostname: str) -> None:
|
|
|
43
43
|
entries[key] = re.sub(NODE_HOSTNAME_RE, hostname, value)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
def pick_label_value(labels: dict[str, Any], name: str) -> Any |
|
|
46
|
+
def pick_label_value(labels: dict[str, Any], name: str) -> Any | str:
|
|
47
47
|
for label, value in labels.items():
|
|
48
48
|
if label.endswith(name):
|
|
49
49
|
del labels[label]
|
|
50
50
|
return value
|
|
51
|
-
return
|
|
51
|
+
return ''
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
def parse_compose_config(
|
|
@@ -98,45 +98,44 @@ def parse_compose_config(
|
|
|
98
98
|
parse_service_vars(service_labels, compose.node_hostname)
|
|
99
99
|
parse_service_vars(service_environment, compose.node_hostname)
|
|
100
100
|
|
|
101
|
+
service['ports'] = service_ports
|
|
102
|
+
service_traefik_rule = pick_label_value(service_labels, '.rule')
|
|
103
|
+
service_traefik_middlewares = pick_label_value(service_labels, '.middlewares')
|
|
101
104
|
service_traefik_port = pick_label_value(service_labels, '.loadbalancer.server.port')
|
|
105
|
+
service_traefik_entryPoints = pick_label_value(service_labels, '.entryPoints')
|
|
106
|
+
service_traefik_tls_certresolver = pick_label_value(service_labels, '.tls.certresolver')
|
|
107
|
+
service_traefik_service = pick_label_value(service_labels, '.service')
|
|
108
|
+
published_port = random.randint(53100, 64200)
|
|
109
|
+
|
|
110
|
+
if not service_traefik_port:
|
|
111
|
+
raise ValueError(f'Service "{service_name}" error: port is missing')
|
|
112
|
+
|
|
113
|
+
service_ports.append(f'{published_port}:{service_traefik_port}')
|
|
114
|
+
|
|
115
|
+
traefik_http_provider_routers[service_name] = {
|
|
116
|
+
'entryPoints': [service_traefik_entryPoints],
|
|
117
|
+
'service': service_traefik_service or service_name,
|
|
118
|
+
'rule': service_traefik_rule,
|
|
119
|
+
'middlewares': service_traefik_middlewares.split(','),
|
|
120
|
+
'tls': {
|
|
121
|
+
'certresolver': service_traefik_tls_certresolver,
|
|
122
|
+
},
|
|
123
|
+
}
|
|
102
124
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
traefik_http_provider_routers[service_name] = {
|
|
115
|
-
'entryPoints': [service_traefik_entryPoints],
|
|
116
|
-
'service': service_traefik_service or service_name,
|
|
117
|
-
'rule': service_traefik_rule,
|
|
118
|
-
'middlewares': service_traefik_middlewares.split(','),
|
|
119
|
-
'tls': {
|
|
120
|
-
'certresolver': service_traefik_tls_certresolver,
|
|
121
|
-
},
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
node_ip = resolve_hostname(compose.node_hostname)
|
|
125
|
-
traefik_http_provider_services[service_name] = {
|
|
126
|
-
'loadBalancer': {
|
|
127
|
-
'servers': [
|
|
128
|
-
{
|
|
129
|
-
'url': f'http://{node_ip}:{published_port}',
|
|
130
|
-
},
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
}
|
|
125
|
+
node_ip = resolve_hostname(compose.node_hostname)
|
|
126
|
+
traefik_http_provider_services[service_name] = {
|
|
127
|
+
'loadBalancer': {
|
|
128
|
+
'servers': [
|
|
129
|
+
{
|
|
130
|
+
'url': f'http://{node_ip}:{published_port}',
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
}
|
|
134
135
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
else:
|
|
139
|
-
print(f'No exposed port found for service "{service_name}"')
|
|
136
|
+
traefik_http_provider_middlewares.update(
|
|
137
|
+
convert_middlewares_to_dict(service_labels),
|
|
138
|
+
)
|
|
140
139
|
|
|
141
140
|
|
|
142
141
|
def deploy_seto_stack(args, driver: Driver, replica: list[Setting]) -> None:
|
|
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
|
|
File without changes
|
|
File without changes
|