kubernator 1.0.16__py3-none-any.whl → 1.0.16.dev20240502034800__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 +0 -3
- kubernator/app.py +23 -30
- kubernator/plugins/k8s.py +9 -38
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/METADATA +2 -2
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/RECORD +11 -11
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/WHEEL +0 -0
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/entry_points.txt +0 -0
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/namespace_packages.txt +0 -0
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/top_level.txt +0 -0
- {kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/zip-safe +0 -0
kubernator/__init__.py
CHANGED
kubernator/api.py
CHANGED
|
@@ -747,9 +747,6 @@ class KubernatorPlugin:
|
|
|
747
747
|
def handle_shutdown(self):
|
|
748
748
|
pass
|
|
749
749
|
|
|
750
|
-
def handle_summary(self):
|
|
751
|
-
pass
|
|
752
|
-
|
|
753
750
|
|
|
754
751
|
def install_python_k8s_client(run, package_major, logger, logger_stdout, logger_stderr, disable_patching):
|
|
755
752
|
cache_dir = get_cache_dir("python")
|
kubernator/app.py
CHANGED
|
@@ -178,49 +178,42 @@ class App(KubernatorPlugin):
|
|
|
178
178
|
self.register_plugin(self)
|
|
179
179
|
|
|
180
180
|
try:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
break
|
|
181
|
+
while True:
|
|
182
|
+
cwd = self.next()
|
|
183
|
+
if not cwd:
|
|
184
|
+
logger.debug("No paths left to traverse")
|
|
185
|
+
break
|
|
187
186
|
|
|
188
|
-
|
|
187
|
+
context = self.context
|
|
189
188
|
|
|
190
|
-
|
|
191
|
-
|
|
189
|
+
logger.debug("Inspecting directory %s", self._display_path(cwd))
|
|
190
|
+
self._run_handlers(KubernatorPlugin.handle_before_dir, False, context, None, cwd)
|
|
192
191
|
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
if (ktor_py := (cwd / ".kubernator.py")).exists():
|
|
193
|
+
self._run_handlers(KubernatorPlugin.handle_before_script, False, context, None, cwd)
|
|
195
194
|
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
for h in self.context._plugins:
|
|
196
|
+
h.set_context(context)
|
|
198
197
|
|
|
199
|
-
|
|
198
|
+
self._exec_ktor(ktor_py)
|
|
200
199
|
|
|
201
|
-
|
|
202
|
-
|
|
200
|
+
for h in self.context._plugins:
|
|
201
|
+
h.set_context(None)
|
|
203
202
|
|
|
204
|
-
|
|
203
|
+
self._run_handlers(KubernatorPlugin.handle_after_script, True, context, None, cwd)
|
|
205
204
|
|
|
206
|
-
|
|
205
|
+
self._run_handlers(KubernatorPlugin.handle_after_dir, True, context, None, cwd)
|
|
207
206
|
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
self.context = self._top_dir_context
|
|
208
|
+
context = self.context
|
|
210
209
|
|
|
211
|
-
|
|
210
|
+
self._run_handlers(KubernatorPlugin.handle_apply, True, context, None)
|
|
212
211
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
self.context = self._top_dir_context
|
|
216
|
-
context = self.context
|
|
217
|
-
self._run_handlers(KubernatorPlugin.handle_shutdown, True, context, None)
|
|
218
|
-
except: # noqa E722
|
|
219
|
-
raise
|
|
220
|
-
else:
|
|
212
|
+
self._run_handlers(KubernatorPlugin.handle_verify, True, context, None)
|
|
213
|
+
finally:
|
|
221
214
|
self.context = self._top_dir_context
|
|
222
215
|
context = self.context
|
|
223
|
-
self._run_handlers(KubernatorPlugin.
|
|
216
|
+
self._run_handlers(KubernatorPlugin.handle_shutdown, True, context, None)
|
|
224
217
|
|
|
225
218
|
def discover_plugins(self):
|
|
226
219
|
importlib.invalidate_caches()
|
kubernator/plugins/k8s.py
CHANGED
|
@@ -68,19 +68,6 @@ def final_resource_validator(resources: Sequence[K8SResource],
|
|
|
68
68
|
resource, resource.source)
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
def normalize_pkg_version(v: str):
|
|
72
|
-
v_split = v.split(".")
|
|
73
|
-
rev = v_split[-1]
|
|
74
|
-
if not rev.isdigit():
|
|
75
|
-
new_rev = ""
|
|
76
|
-
for c in rev:
|
|
77
|
-
if not c.isdigit():
|
|
78
|
-
break
|
|
79
|
-
new_rev += c
|
|
80
|
-
v_split[-1] = new_rev
|
|
81
|
-
return tuple(map(int, v_split))
|
|
82
|
-
|
|
83
|
-
|
|
84
71
|
class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
85
72
|
logger = logger
|
|
86
73
|
|
|
@@ -94,7 +81,6 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
94
81
|
|
|
95
82
|
self._transformers = []
|
|
96
83
|
self._validators = []
|
|
97
|
-
self._summary = 0, 0, 0
|
|
98
84
|
|
|
99
85
|
def set_context(self, context):
|
|
100
86
|
self.context = context
|
|
@@ -206,8 +192,7 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
206
192
|
k8s.server_git_version = git_version
|
|
207
193
|
|
|
208
194
|
logger.info("Found Kubernetes %s on %s", k8s.server_git_version, k8s.client.configuration.host)
|
|
209
|
-
|
|
210
|
-
K8SResource._k8s_client_version = normalize_pkg_version(pkg_version("kubernetes"))
|
|
195
|
+
K8SResource._k8s_client_version = tuple(map(int, pkg_version("kubernetes").split(".")))
|
|
211
196
|
K8SResource._k8s_field_validation = k8s.field_validation
|
|
212
197
|
K8SResource._k8s_field_validation_patched = not k8s.disable_client_patches
|
|
213
198
|
K8SResource._logger = self.logger
|
|
@@ -263,7 +248,6 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
263
248
|
|
|
264
249
|
patch_field_excludes = [re.compile(e) for e in context.globals.k8s.patch_field_excludes]
|
|
265
250
|
dump_results = []
|
|
266
|
-
total_created, total_patched, total_deleted = 0, 0, 0
|
|
267
251
|
for resource in self.resources.values():
|
|
268
252
|
if dump:
|
|
269
253
|
resource_id = {"apiVersion": resource.api_version,
|
|
@@ -296,17 +280,13 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
296
280
|
create_func = partial(resource.create, dry_run=dry_run)
|
|
297
281
|
delete_func = partial(resource.delete, dry_run=dry_run)
|
|
298
282
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
total_created += created
|
|
308
|
-
total_patched += patched
|
|
309
|
-
total_deleted += deleted
|
|
283
|
+
self._apply_resource(dry_run,
|
|
284
|
+
patch_field_excludes,
|
|
285
|
+
resource,
|
|
286
|
+
patch_func,
|
|
287
|
+
create_func,
|
|
288
|
+
delete_func,
|
|
289
|
+
status_msg)
|
|
310
290
|
|
|
311
291
|
if ((dump or dry_run) and
|
|
312
292
|
k8s.field_validation_warn_fatal and self.context.globals.k8s.field_validation_warnings):
|
|
@@ -321,12 +301,6 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
321
301
|
indent=4 if file_format == "json-pretty" else None)
|
|
322
302
|
else:
|
|
323
303
|
yaml.safe_dump(dump_results, file)
|
|
324
|
-
else:
|
|
325
|
-
self._summary = total_created, total_patched, total_deleted
|
|
326
|
-
|
|
327
|
-
def handle_summary(self):
|
|
328
|
-
total_created, total_patched, total_deleted = self._summary
|
|
329
|
-
logger.info("Created %d, patched %d, deleted %d resources", total_created, total_patched, total_deleted)
|
|
330
304
|
|
|
331
305
|
def api_load_resources(self, path: Path, file_type: str):
|
|
332
306
|
return self.add_local_resources(path, FileType[file_type.upper()])
|
|
@@ -448,7 +422,6 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
448
422
|
if e.status == 404:
|
|
449
423
|
try:
|
|
450
424
|
create()
|
|
451
|
-
return 1, 0, 0
|
|
452
425
|
except ApiException as e:
|
|
453
426
|
if not handle_400_strict_validation_error(e):
|
|
454
427
|
raise
|
|
@@ -486,7 +459,7 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
486
459
|
status_msg)
|
|
487
460
|
delete_func(propagation_policy=propagation_policy)
|
|
488
461
|
create(exists_ok=dry_run)
|
|
489
|
-
return
|
|
462
|
+
return
|
|
490
463
|
raise
|
|
491
464
|
else:
|
|
492
465
|
if not handle_400_strict_validation_error(e):
|
|
@@ -503,10 +476,8 @@ class KubernetesPlugin(KubernatorPlugin, K8SResourcePluginMixin):
|
|
|
503
476
|
if patch:
|
|
504
477
|
logger.info("Patching resource %s%s", resource, status_msg)
|
|
505
478
|
patch_func(patch)
|
|
506
|
-
return 0, 1, 0
|
|
507
479
|
else:
|
|
508
480
|
logger.info("Nothing to patch for resource %s", resource)
|
|
509
|
-
return 0, 0, 0
|
|
510
481
|
|
|
511
482
|
def _filter_resource_patch(self, patch: Iterable[Mapping], excludes: Iterable[re.compile]):
|
|
512
483
|
result = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kubernator
|
|
3
|
-
Version: 1.0.16
|
|
3
|
+
Version: 1.0.16.dev20240502034800
|
|
4
4
|
Summary: Kubernator is the a pluggable framework for K8S provisioning
|
|
5
5
|
Home-page: https://github.com/karellen/kubernator
|
|
6
6
|
Author: Express Systems USA, Inc.
|
|
@@ -43,7 +43,7 @@ Requires-Dist: kubernetes ~=29.0
|
|
|
43
43
|
Requires-Dist: openapi-schema-validator ~=0.1
|
|
44
44
|
Requires-Dist: openapi-spec-validator ~=0.3
|
|
45
45
|
Requires-Dist: platformdirs ~=4.2
|
|
46
|
-
Requires-Dist: requests
|
|
46
|
+
Requires-Dist: requests ~=2.25
|
|
47
47
|
|
|
48
48
|
# Kubernator
|
|
49
49
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
kubernator/LICENSE,sha256=wKKdOCMTCPQRV5gDkVLAsXX8qSnRJ5owk7yWPO1KZNo,11387
|
|
2
|
-
kubernator/__init__.py,sha256=
|
|
2
|
+
kubernator/__init__.py,sha256=JVANgHC_qE2It30D4p-M8a7cCPywJy3IFyNXKShwdAs,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=
|
|
7
|
-
kubernator/app.py,sha256=
|
|
6
|
+
kubernator/api.py,sha256=F3ClonAv_ZTodrePhPpF5sPJ_vzxMCTODlGltXUuPYI,26657
|
|
7
|
+
kubernator/app.py,sha256=xY1zH3sGpEY0p542S7NZM4TszM5Oac658zZAJhCj8B8,20603
|
|
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
|
|
@@ -12,7 +12,7 @@ kubernator/plugins/awscli.py,sha256=S6X7-qFiaZ7NDVDl2Jg0t-ih9KAJ45cUjjzd5Qe93ZM,
|
|
|
12
12
|
kubernator/plugins/eks.py,sha256=xe7vyPHNwuP8gEYDSzPyBkm-RkAtP64wCOqs9U5I7xI,2273
|
|
13
13
|
kubernator/plugins/helm.py,sha256=3BYZBPoiMUtNgmhdcbYCVRTPtaQMYzhfnMqXWyZRJZc,10525
|
|
14
14
|
kubernator/plugins/istio.py,sha256=hD-VCNVGELt7cGFbE7S7dTiqKE7rfhzE8qA9X5tsllE,10532
|
|
15
|
-
kubernator/plugins/k8s.py,sha256=
|
|
15
|
+
kubernator/plugins/k8s.py,sha256=w_Uw8tvbeGgJ35jZs6BahWkVIlX6gxcX5-bOskudIfw,23387
|
|
16
16
|
kubernator/plugins/k8s_api.py,sha256=w2aB7CU0rPqRgzhI5mLMJUUSpWlJGCsX_bHl4SjfzM8,27594
|
|
17
17
|
kubernator/plugins/kops.py,sha256=QsrQJUF6wGJo2QRVqP92pG5vmOTYQIc25PD_DWCzrAA,9635
|
|
18
18
|
kubernator/plugins/kubeconfig.py,sha256=uwtHmF2I6LiTPrC3M88G5SfYxDWtuh0MqcMfrHHoNRA,2178
|
|
@@ -21,10 +21,10 @@ kubernator/plugins/minikube.py,sha256=kWPDIS4X1JnEoXw_rIOvgvFtjJMch39uL0mD7gQwtj
|
|
|
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.16.dist-info/METADATA,sha256=
|
|
25
|
-
kubernator-1.0.16.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
26
|
-
kubernator-1.0.16.dist-info/entry_points.txt,sha256=IWDtHzyTleRqDSuVRXEr5GImrI7z_kh21t5DWZ8ldcQ,47
|
|
27
|
-
kubernator-1.0.16.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
28
|
-
kubernator-1.0.16.dist-info/top_level.txt,sha256=_z1CxWeKMI55ckf2vC8HqjbCn_E2Y_P5RdrhE_QWcIs,11
|
|
29
|
-
kubernator-1.0.16.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
30
|
-
kubernator-1.0.16.dist-info/RECORD,,
|
|
24
|
+
kubernator-1.0.16.dev20240502034800.dist-info/METADATA,sha256=kT3jg72e_s-eJPj5vz_iY141-LvE8kR-0J9w3hvOG_g,10519
|
|
25
|
+
kubernator-1.0.16.dev20240502034800.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
26
|
+
kubernator-1.0.16.dev20240502034800.dist-info/entry_points.txt,sha256=IWDtHzyTleRqDSuVRXEr5GImrI7z_kh21t5DWZ8ldcQ,47
|
|
27
|
+
kubernator-1.0.16.dev20240502034800.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
28
|
+
kubernator-1.0.16.dev20240502034800.dist-info/top_level.txt,sha256=_z1CxWeKMI55ckf2vC8HqjbCn_E2Y_P5RdrhE_QWcIs,11
|
|
29
|
+
kubernator-1.0.16.dev20240502034800.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
30
|
+
kubernator-1.0.16.dev20240502034800.dist-info/RECORD,,
|
|
File without changes
|
{kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{kubernator-1.0.16.dist-info → kubernator-1.0.16.dev20240502034800.dist-info}/namespace_packages.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|