kubernator 1.0.19__py3-none-any.whl → 1.0.20.dev20250518194115__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 kubernator might be problematic. Click here for more details.
- kubernator/__init__.py +1 -1
- kubernator/api.py +24 -7
- kubernator/plugins/helm.py +24 -7
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/METADATA +1 -1
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/RECORD +10 -10
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/WHEEL +1 -1
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/entry_points.txt +0 -0
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/namespace_packages.txt +0 -0
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/top_level.txt +0 -0
- {kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/zip-safe +0 -0
kubernator/__init__.py
CHANGED
kubernator/api.py
CHANGED
|
@@ -39,6 +39,7 @@ from typing import Optional, Union, MutableSequence
|
|
|
39
39
|
import requests
|
|
40
40
|
import yaml
|
|
41
41
|
from diff_match_patch import diff_match_patch
|
|
42
|
+
from gevent import sleep
|
|
42
43
|
from jinja2 import (Environment,
|
|
43
44
|
ChainableUndefined,
|
|
44
45
|
make_logging_undefined,
|
|
@@ -108,13 +109,29 @@ def _load_file(logger, path: Path, file_type: FileType, source=None) -> Iterable
|
|
|
108
109
|
|
|
109
110
|
|
|
110
111
|
def _download_remote_file(url, file_name, cache: dict):
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
if
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
retry_delay = 0
|
|
113
|
+
while True:
|
|
114
|
+
if retry_delay:
|
|
115
|
+
sleep(retry_delay)
|
|
116
|
+
|
|
117
|
+
with requests.get(url, headers=cache, stream=True) as r:
|
|
118
|
+
if r.status_code == 429:
|
|
119
|
+
if not retry_delay:
|
|
120
|
+
retry_delay = 0.2
|
|
121
|
+
else:
|
|
122
|
+
retry_delay *= 2.0
|
|
123
|
+
if retry_delay > 2.5:
|
|
124
|
+
retry_delay = 2.5
|
|
125
|
+
continue
|
|
126
|
+
|
|
127
|
+
r.raise_for_status()
|
|
128
|
+
if r.status_code != 304:
|
|
129
|
+
with open(file_name, "wb") as out:
|
|
130
|
+
for chunk in r.iter_content(chunk_size=65535):
|
|
131
|
+
out.write(chunk)
|
|
132
|
+
return dict(r.headers)
|
|
133
|
+
else:
|
|
134
|
+
return None
|
|
118
135
|
|
|
119
136
|
|
|
120
137
|
def get_app_cache_dir():
|
kubernator/plugins/helm.py
CHANGED
|
@@ -85,7 +85,7 @@ HELM_SCHEMA = {
|
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
87
|
"type": "object",
|
|
88
|
-
"required": ["
|
|
88
|
+
"required": ["chart", "name", "namespace"]
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
Draft7Validator.check_schema(HELM_SCHEMA)
|
|
@@ -130,7 +130,7 @@ class HelmPlugin(KubernatorPlugin):
|
|
|
130
130
|
helm_tar = tarfile.open(helm_file_dl)
|
|
131
131
|
helm_tar.extractall(self.helm_dir.name)
|
|
132
132
|
|
|
133
|
-
copy(Path(self.helm_dir.name)/f"{get_golang_os()}-{get_golang_machine()}"/"helm", helm_file)
|
|
133
|
+
copy(Path(self.helm_dir.name) / f"{get_golang_os()}-{get_golang_machine()}" / "helm", helm_file)
|
|
134
134
|
|
|
135
135
|
os.chmod(helm_file, 0o500)
|
|
136
136
|
prepend_os_path(self.helm_dir.name)
|
|
@@ -215,17 +215,34 @@ class HelmPlugin(KubernatorPlugin):
|
|
|
215
215
|
|
|
216
216
|
return repository_hash
|
|
217
217
|
|
|
218
|
-
def _internal_add_helm(self, source, *,
|
|
219
|
-
values=None, values_file=None):
|
|
218
|
+
def _internal_add_helm(self, source, *, chart, name, namespace, include_crds,
|
|
219
|
+
values=None, values_file=None, repository=None, version=None):
|
|
220
220
|
if values and values_file:
|
|
221
221
|
raise RuntimeError(f"In {source} either values or values file may be specified, but not both")
|
|
222
222
|
|
|
223
|
+
if (repository and chart and chart.startswith("oci://") or
|
|
224
|
+
not repository and chart and not chart.startswith("oci://")):
|
|
225
|
+
raise RuntimeError(
|
|
226
|
+
f"In {source} either repository must be specified or OCI-chart must be used, but not both")
|
|
227
|
+
|
|
228
|
+
if not version and repository:
|
|
229
|
+
raise RuntimeError(f"In {source} version must be specified unless OCI-chart is used")
|
|
230
|
+
|
|
223
231
|
if values_file:
|
|
224
232
|
values_file = Path(values_file)
|
|
225
233
|
if not values_file.is_absolute():
|
|
226
234
|
values_file = self.context.app.cwd / values_file
|
|
227
235
|
|
|
228
|
-
|
|
236
|
+
version_spec = []
|
|
237
|
+
if repository:
|
|
238
|
+
repository_hash = self._add_repository(repository)
|
|
239
|
+
chart_name = f"{repository_hash}/{chart}"
|
|
240
|
+
else:
|
|
241
|
+
chart_name = chart
|
|
242
|
+
|
|
243
|
+
if version:
|
|
244
|
+
version_spec = ["--version", version]
|
|
245
|
+
|
|
229
246
|
stdin = DEVNULL
|
|
230
247
|
|
|
231
248
|
if values:
|
|
@@ -237,11 +254,11 @@ class HelmPlugin(KubernatorPlugin):
|
|
|
237
254
|
resources = self.context.app.run_capturing_out(self.stanza() +
|
|
238
255
|
["template",
|
|
239
256
|
name,
|
|
240
|
-
|
|
241
|
-
"--version", version,
|
|
257
|
+
chart_name,
|
|
242
258
|
"-n", namespace,
|
|
243
259
|
"-a", ",".join(self.context.k8s.get_api_versions())
|
|
244
260
|
] +
|
|
261
|
+
version_spec +
|
|
245
262
|
(["--include-crds"] if include_crds else []) +
|
|
246
263
|
(["-f", values_file] if values_file else []) +
|
|
247
264
|
(["-f", "-"] if values else []),
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
kubernator/LICENSE,sha256=wKKdOCMTCPQRV5gDkVLAsXX8qSnRJ5owk7yWPO1KZNo,11387
|
|
2
|
-
kubernator/__init__.py,sha256=
|
|
2
|
+
kubernator/__init__.py,sha256=3I8NxAiSeKmmDgyNzoooHnO6JlQ6jMZq5KqCGjYos7M,933
|
|
3
3
|
kubernator/__main__.py,sha256=f0S60wgpLu--1UlOhzfWail-xt8zyIuODodX98_yPN0,707
|
|
4
4
|
kubernator/_json_path.py,sha256=pjQKXxgbpQWETYBIrIuJZHgugF92IbEAM19AC7JUmAQ,3162
|
|
5
5
|
kubernator/_k8s_client_patches.py,sha256=PEeWPInnW38NDyK7G24_Dmw-x7xHpN3vJWZeckdqgK0,76892
|
|
6
|
-
kubernator/api.py,sha256=
|
|
6
|
+
kubernator/api.py,sha256=cU_dsS4PcTkRUcQqnRxsaqzeoApjhwRd2-l4CfwFZpU,27201
|
|
7
7
|
kubernator/app.py,sha256=ZtQm60Cb1z2SkD338B6nue3wLOo_auRqZRW5ou_-d84,20949
|
|
8
8
|
kubernator/merge.py,sha256=eW5fajnDdI2n8aUqRfTmdG6GWDvDtcVKPKsp3fiB5Nk,5882
|
|
9
9
|
kubernator/proc.py,sha256=8YlgbppyHic_51fVTPD7OP8x5yuRuL8j1kThR8MJjNI,5119
|
|
10
10
|
kubernator/plugins/__init__.py,sha256=h9TLYK8UFEi53ipZSZsTBjp0ljKhisWsgPpt_PkWrO8,670
|
|
11
11
|
kubernator/plugins/awscli.py,sha256=S6X7-qFiaZ7NDVDl2Jg0t-ih9KAJ45cUjjzd5Qe93ZM,4252
|
|
12
12
|
kubernator/plugins/eks.py,sha256=xe7vyPHNwuP8gEYDSzPyBkm-RkAtP64wCOqs9U5I7xI,2273
|
|
13
|
-
kubernator/plugins/helm.py,sha256=
|
|
13
|
+
kubernator/plugins/helm.py,sha256=8oa2LJoGd1-b9_e-PW2c5--zNaYZTykIFtgX0u5VHIw,11136
|
|
14
14
|
kubernator/plugins/istio.py,sha256=oERwbVtIk9vMJp_miBXK3-XJKF6SDbh6PPe0p3QIekY,14924
|
|
15
15
|
kubernator/plugins/k8s.py,sha256=Zj3q_bUmbOADfjSHy2X0BhgrbXuH-fM8Vq75sYFy0nE,24496
|
|
16
16
|
kubernator/plugins/k8s_api.py,sha256=w2aB7CU0rPqRgzhI5mLMJUUSpWlJGCsX_bHl4SjfzM8,27594
|
|
@@ -21,10 +21,10 @@ kubernator/plugins/minikube.py,sha256=FFGW8Rkap4CPEydEgxXhIuK3A263khjli0adC5j09M
|
|
|
21
21
|
kubernator/plugins/template.py,sha256=KEiPfI7TbYXmF4a8ATWuFhxxWbcASHttFM_ekYEZ8Ps,8371
|
|
22
22
|
kubernator/plugins/terraform.py,sha256=a1MPl9G8Rznjd28uMRdYWrjpFDLlFAVmLFH4hFEsMsQ,5285
|
|
23
23
|
kubernator/plugins/terragrunt.py,sha256=-qN8tTqPUXJ9O7CEiJVUB0GSUQU3DUTkv-aWdIIsm7Q,5051
|
|
24
|
-
kubernator-1.0.
|
|
25
|
-
kubernator-1.0.
|
|
26
|
-
kubernator-1.0.
|
|
27
|
-
kubernator-1.0.
|
|
28
|
-
kubernator-1.0.
|
|
29
|
-
kubernator-1.0.
|
|
30
|
-
kubernator-1.0.
|
|
24
|
+
kubernator-1.0.20.dev20250518194115.dist-info/METADATA,sha256=4EpIoRQfCd8qIruzqksTd6DwfElkEN9LswQWSotwswE,10867
|
|
25
|
+
kubernator-1.0.20.dev20250518194115.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
|
26
|
+
kubernator-1.0.20.dev20250518194115.dist-info/entry_points.txt,sha256=IWDtHzyTleRqDSuVRXEr5GImrI7z_kh21t5DWZ8ldcQ,47
|
|
27
|
+
kubernator-1.0.20.dev20250518194115.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
28
|
+
kubernator-1.0.20.dev20250518194115.dist-info/top_level.txt,sha256=_z1CxWeKMI55ckf2vC8HqjbCn_E2Y_P5RdrhE_QWcIs,11
|
|
29
|
+
kubernator-1.0.20.dev20250518194115.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
30
|
+
kubernator-1.0.20.dev20250518194115.dist-info/RECORD,,
|
{kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{kubernator-1.0.19.dist-info → kubernator-1.0.20.dev20250518194115.dist-info}/namespace_packages.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|