raijin-server 0.2.39__py3-none-any.whl → 0.2.40__py3-none-any.whl
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.
Potentially problematic release.
This version of raijin-server might be problematic. Click here for more details.
- raijin_server/__init__.py +1 -1
- raijin_server/modules/minio.py +107 -2
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/METADATA +1 -1
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/RECORD +8 -8
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/WHEEL +0 -0
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/entry_points.txt +0 -0
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/licenses/LICENSE +0 -0
- {raijin_server-0.2.39.dist-info → raijin_server-0.2.40.dist-info}/top_level.txt +0 -0
raijin_server/__init__.py
CHANGED
raijin_server/modules/minio.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Deploy do MinIO via Helm com configuracoes production-ready."""
|
|
2
2
|
|
|
3
|
+
import json
|
|
3
4
|
import secrets
|
|
4
5
|
import socket
|
|
5
6
|
import tempfile
|
|
@@ -107,6 +108,102 @@ def _list_storage_classes(ctx: ExecutionContext) -> list:
|
|
|
107
108
|
return []
|
|
108
109
|
|
|
109
110
|
|
|
111
|
+
def _patch_local_path_provisioner_tolerations(ctx: ExecutionContext) -> None:
|
|
112
|
+
"""Adiciona tolerations ao local-path-provisioner para rodar em control-plane."""
|
|
113
|
+
typer.echo(" Configurando tolerations no local-path-provisioner...")
|
|
114
|
+
|
|
115
|
+
# Patch no deployment para tolerar control-plane
|
|
116
|
+
patch_deployment = textwrap.dedent(
|
|
117
|
+
"""
|
|
118
|
+
spec:
|
|
119
|
+
template:
|
|
120
|
+
spec:
|
|
121
|
+
tolerations:
|
|
122
|
+
- key: node-role.kubernetes.io/control-plane
|
|
123
|
+
operator: Exists
|
|
124
|
+
effect: NoSchedule
|
|
125
|
+
- key: node-role.kubernetes.io/master
|
|
126
|
+
operator: Exists
|
|
127
|
+
effect: NoSchedule
|
|
128
|
+
"""
|
|
129
|
+
).strip()
|
|
130
|
+
|
|
131
|
+
result = run_cmd(
|
|
132
|
+
[
|
|
133
|
+
"kubectl", "-n", "local-path-storage", "patch", "deployment",
|
|
134
|
+
"local-path-provisioner", "--patch", patch_deployment,
|
|
135
|
+
],
|
|
136
|
+
ctx,
|
|
137
|
+
check=False,
|
|
138
|
+
)
|
|
139
|
+
if result.returncode == 0:
|
|
140
|
+
typer.secho(" ✓ Deployment patched com tolerations.", fg=typer.colors.GREEN)
|
|
141
|
+
|
|
142
|
+
# Patch no ConfigMap para os helper pods (que criam os dirs no node)
|
|
143
|
+
# O local-path-provisioner usa um ConfigMap com helperPod template
|
|
144
|
+
helper_pod_config = {
|
|
145
|
+
"nodePathMap": [
|
|
146
|
+
{
|
|
147
|
+
"node": "DEFAULT_PATH_FOR_NON_LISTED_NODES",
|
|
148
|
+
"paths": ["/opt/local-path-provisioner"]
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"setupCommand": None,
|
|
152
|
+
"teardownCommand": None,
|
|
153
|
+
"helperPod": {
|
|
154
|
+
"apiVersion": "v1",
|
|
155
|
+
"kind": "Pod",
|
|
156
|
+
"metadata": {},
|
|
157
|
+
"spec": {
|
|
158
|
+
"tolerations": [
|
|
159
|
+
{"key": "node-role.kubernetes.io/control-plane", "operator": "Exists", "effect": "NoSchedule"},
|
|
160
|
+
{"key": "node-role.kubernetes.io/master", "operator": "Exists", "effect": "NoSchedule"}
|
|
161
|
+
],
|
|
162
|
+
"containers": [
|
|
163
|
+
{
|
|
164
|
+
"name": "helper-pod",
|
|
165
|
+
"image": "busybox:stable",
|
|
166
|
+
"imagePullPolicy": "IfNotPresent"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
# Converte para JSON string para o patch
|
|
174
|
+
config_json_str = json.dumps(helper_pod_config)
|
|
175
|
+
patch_data = json.dumps({"data": {"config.json": config_json_str}})
|
|
176
|
+
|
|
177
|
+
# Aplica via patch no ConfigMap
|
|
178
|
+
result = run_cmd(
|
|
179
|
+
[
|
|
180
|
+
"kubectl", "-n", "local-path-storage", "patch", "configmap",
|
|
181
|
+
"local-path-config", "--type=merge", "-p", patch_data,
|
|
182
|
+
],
|
|
183
|
+
ctx,
|
|
184
|
+
check=False,
|
|
185
|
+
)
|
|
186
|
+
if result.returncode == 0:
|
|
187
|
+
typer.secho(" ✓ ConfigMap patched para helper pods.", fg=typer.colors.GREEN)
|
|
188
|
+
|
|
189
|
+
# Reinicia o deployment para aplicar as mudanças
|
|
190
|
+
run_cmd(
|
|
191
|
+
["kubectl", "-n", "local-path-storage", "rollout", "restart", "deployment/local-path-provisioner"],
|
|
192
|
+
ctx,
|
|
193
|
+
check=False,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Aguarda rollout
|
|
197
|
+
run_cmd(
|
|
198
|
+
[
|
|
199
|
+
"kubectl", "-n", "local-path-storage", "rollout", "status",
|
|
200
|
+
"deployment/local-path-provisioner", "--timeout=60s",
|
|
201
|
+
],
|
|
202
|
+
ctx,
|
|
203
|
+
check=False,
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
|
|
110
207
|
def _install_local_path_provisioner(ctx: ExecutionContext) -> bool:
|
|
111
208
|
"""Instala local-path-provisioner para usar storage local (NVMe/SSD)."""
|
|
112
209
|
typer.echo("Instalando local-path-provisioner para storage local...")
|
|
@@ -120,7 +217,7 @@ def _install_local_path_provisioner(ctx: ExecutionContext) -> bool:
|
|
|
120
217
|
typer.secho(" Falha ao instalar local-path-provisioner.", fg=typer.colors.RED)
|
|
121
218
|
return False
|
|
122
219
|
|
|
123
|
-
# Aguarda deployment ficar pronto
|
|
220
|
+
# Aguarda deployment ficar pronto inicialmente
|
|
124
221
|
typer.echo(" Aguardando local-path-provisioner ficar Ready...")
|
|
125
222
|
run_cmd(
|
|
126
223
|
[
|
|
@@ -131,7 +228,10 @@ def _install_local_path_provisioner(ctx: ExecutionContext) -> bool:
|
|
|
131
228
|
check=False,
|
|
132
229
|
)
|
|
133
230
|
|
|
134
|
-
|
|
231
|
+
# Aplica tolerations para control-plane (single-node clusters)
|
|
232
|
+
_patch_local_path_provisioner_tolerations(ctx)
|
|
233
|
+
|
|
234
|
+
typer.secho(" ✓ local-path-provisioner instalado e configurado.", fg=typer.colors.GREEN)
|
|
135
235
|
return True
|
|
136
236
|
|
|
137
237
|
|
|
@@ -172,9 +272,12 @@ def _ensure_storage_class(ctx: ExecutionContext) -> str:
|
|
|
172
272
|
# Se ja houver StorageClass dedicada do Raijin, usa ela
|
|
173
273
|
if default_sc == RAIJIN_LOCAL_PATH_SC_NAME:
|
|
174
274
|
typer.echo(f"StorageClass default detectada: {default_sc}")
|
|
275
|
+
# Garante que o provisioner tem tolerations (pode ter sido instalado antes do fix)
|
|
276
|
+
_patch_local_path_provisioner_tolerations(ctx)
|
|
175
277
|
return default_sc
|
|
176
278
|
if RAIJIN_LOCAL_PATH_SC_NAME in available:
|
|
177
279
|
typer.echo(f"StorageClass '{RAIJIN_LOCAL_PATH_SC_NAME}' detectada.")
|
|
280
|
+
_patch_local_path_provisioner_tolerations(ctx)
|
|
178
281
|
_set_default_storage_class(ctx, RAIJIN_LOCAL_PATH_SC_NAME)
|
|
179
282
|
return RAIJIN_LOCAL_PATH_SC_NAME
|
|
180
283
|
|
|
@@ -185,6 +288,8 @@ def _ensure_storage_class(ctx: ExecutionContext) -> str:
|
|
|
185
288
|
|
|
186
289
|
# Se local-path estiver disponivel (default ou nao), cria uma classe dedicada com binding imediato
|
|
187
290
|
if "local-path" in available or default_sc == "local-path":
|
|
291
|
+
# Garante tolerations no provisioner existente
|
|
292
|
+
_patch_local_path_provisioner_tolerations(ctx)
|
|
188
293
|
if _create_raijin_local_path_sc(ctx):
|
|
189
294
|
_set_default_storage_class(ctx, RAIJIN_LOCAL_PATH_SC_NAME)
|
|
190
295
|
return RAIJIN_LOCAL_PATH_SC_NAME
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
raijin_server/__init__.py,sha256=
|
|
1
|
+
raijin_server/__init__.py,sha256=PET19zpBabvgsdbOZwr8T9CyQlc69zOhgFzYRP5DDI8,95
|
|
2
2
|
raijin_server/cli.py,sha256=2m7q1znMLbBdnUwN6oOUrCZXEqC2e7SfbjYkymbP4lQ,37884
|
|
3
3
|
raijin_server/config.py,sha256=QNiEVvrbW56XgvNn5-h3bkJm46Xc8mjNqPbvixXD8N0,4829
|
|
4
4
|
raijin_server/healthchecks.py,sha256=lzXdFw6S0hOYbUKbqksh4phb04lXgXdTspP1Dsz4dx8,15401
|
|
@@ -22,7 +22,7 @@ raijin_server/modules/kong.py,sha256=eDSagvEP9_BCs9pZ-pCVs1BDdlYOoJfY5PnUSiTvvgc
|
|
|
22
22
|
raijin_server/modules/kubernetes.py,sha256=9E6zV0zGQWZW92NVpxwYctpi-4JDmi6YzF3tKRI4HlU,13343
|
|
23
23
|
raijin_server/modules/loki.py,sha256=aNiUpnOFppZMXoQwYhn7IoPMzwUz4aHi6pbiqj1PRjc,5022
|
|
24
24
|
raijin_server/modules/metallb.py,sha256=uUuklc_RsQ-W2qDVRMQAxQm9HKGEqso444b1IwBpM6w,8554
|
|
25
|
-
raijin_server/modules/minio.py,sha256=
|
|
25
|
+
raijin_server/modules/minio.py,sha256=XvWg4XJ2URZhiJYHrqf1Eg5tvLGXMxu45Rr_9C58SP4,18915
|
|
26
26
|
raijin_server/modules/network.py,sha256=QRlYdcryCCPAWG3QQ_W7ld9gJgETI7H8gwntOU7UqFE,4818
|
|
27
27
|
raijin_server/modules/observability_dashboards.py,sha256=fVz0WEOQrUTF5rJ__Nu_onyBuwL_exFmysWMmg8AE9w,7319
|
|
28
28
|
raijin_server/modules/observability_ingress.py,sha256=Fh1rlFWueBNHnOkHuoHYyhILmpO-iQXINybSUYbYsHQ,5738
|
|
@@ -38,9 +38,9 @@ raijin_server/scripts/checklist.sh,sha256=j6E0Kmk1EfjLvKK1VpCqzXJAXI_7Bm67LK4ndy
|
|
|
38
38
|
raijin_server/scripts/install.sh,sha256=Y1ickbQ4siQ0NIPs6UgrqUr8WWy7U0LHmaTQbEgavoI,3949
|
|
39
39
|
raijin_server/scripts/log_size_metric.sh,sha256=Iv4SsX8AuCYRou-klYn32mX41xB6j0xJGLBO6riw4rU,1208
|
|
40
40
|
raijin_server/scripts/pre-deploy-check.sh,sha256=XqMo7IMIpwUHF17YEmU0-cVmTDMoCGMBFnmS39FidI4,4912
|
|
41
|
-
raijin_server-0.2.
|
|
42
|
-
raijin_server-0.2.
|
|
43
|
-
raijin_server-0.2.
|
|
44
|
-
raijin_server-0.2.
|
|
45
|
-
raijin_server-0.2.
|
|
46
|
-
raijin_server-0.2.
|
|
41
|
+
raijin_server-0.2.40.dist-info/licenses/LICENSE,sha256=kJsMCjOiRZE0AQNtxWqBa32z9kMAaF4EUxyHj3hKaJo,1105
|
|
42
|
+
raijin_server-0.2.40.dist-info/METADATA,sha256=gpXIeSzpsrBImaDzxLWQgddp1QZa3rOJmn3fZJ18HfA,22851
|
|
43
|
+
raijin_server-0.2.40.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
44
|
+
raijin_server-0.2.40.dist-info/entry_points.txt,sha256=3ZvxDX4pvcjkIRsXAJ69wIfVmKa78LKo-C3QhqN2KVM,56
|
|
45
|
+
raijin_server-0.2.40.dist-info/top_level.txt,sha256=Yz1xneCRtsZOzbPIcTAcrSxd-1p80pohMXYAZ74dpok,14
|
|
46
|
+
raijin_server-0.2.40.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|