kubernator 1.0.9.dev20231221064456__py3-none-any.whl → 1.0.9.dev20231224171539__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 CHANGED
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- __version__ = "1.0.9.dev20231221064456"
19
+ __version__ = "1.0.9.dev20231224171539"
20
20
 
21
21
 
22
22
  def _main():
kubernator/api.py CHANGED
@@ -236,6 +236,7 @@ def install_python_k8s_client(run, package_major, logger_stdout, logger_stderr):
236
236
  package_major_dir.mkdir(parents=True, exist_ok=True)
237
237
 
238
238
  run([sys.executable, "-m", "pip", "install", "--no-deps", "--no-cache-dir", "--no-input", "--pre",
239
+ "--root-user-action=ignore", "--break-system-packages", "--disable-pip-version-check",
239
240
  "--target", str(package_major_dir), f"kubernetes~={package_major}.0"], logger_stdout, logger_stderr).wait()
240
241
 
241
242
  return package_major_dir
@@ -66,8 +66,18 @@ class IstioPlugin(KubernatorPlugin, K8SResourcePluginMixin):
66
66
 
67
67
  if version:
68
68
  # Download and use specific version
69
+ istioctl_os = get_golang_os()
70
+ if istioctl_os == "darwin":
71
+ istioctl_os = "osx"
72
+ istioctl_machine = get_golang_machine()
73
+ if istioctl_machine == "amd64":
74
+ istioctl_platform = istioctl_os
75
+ else:
76
+ istioctl_platform = f"{istioctl_os}-{istioctl_machine}"
77
+ else:
78
+ istioctl_platform = f"{istioctl_os}-{get_golang_machine()}"
69
79
  istioctl_url = (f"https://github.com/istio/istio/releases/download/{version}/"
70
- f"istioctl-{version}-{get_golang_os()}-{get_golang_machine()}.tar.gz")
80
+ f"istioctl-{version}-{istioctl_platform}.tar.gz")
71
81
  istioctl_file_dl, _ = context.app.download_remote_file(logger, istioctl_url, "bin")
72
82
  istioctl_file_dl = str(istioctl_file_dl)
73
83
  self.istioctl_dir = tempfile.TemporaryDirectory()
@@ -89,7 +89,7 @@ class MinikubePlugin(KubernatorPlugin):
89
89
 
90
90
  def register(self, minikube_version=None, profile="default", k8s_version=None,
91
91
  keep_running=False, start_fresh=False,
92
- nodes=1, driver="docker", cpus="no-limit", extra_args=None):
92
+ nodes=1, driver=None, cpus="no-limit", extra_args=None):
93
93
  context = self.context
94
94
 
95
95
  context.app.register_plugin("kubeconfig")
@@ -127,6 +127,31 @@ class MinikubePlugin(KubernatorPlugin):
127
127
  self.kubeconfig_dir = profile_dir / ".kube"
128
128
  self.kubeconfig_dir.mkdir(parents=True, exist_ok=True)
129
129
 
130
+ if not driver:
131
+ driver = "docker"
132
+ if get_golang_os() == "darwin":
133
+ logger.debug("Auto-detecting Minikube driver on MacOS...")
134
+ cmd_debug_logger = StripNL(proc_logger.debug)
135
+ try:
136
+ context.app.run(["docker", "info"], cmd_debug_logger, cmd_debug_logger).wait()
137
+ logger.info("Docker is functional, selecting 'docker' as the driver for Minikube")
138
+ except (FileNotFoundError, CalledProcessError) as e:
139
+ logger.trace("Docker is NOT functional", exc_info=e)
140
+ driver = "hyperkit"
141
+ try:
142
+ context.app.run(["hyperkit", "-v"], cmd_debug_logger, cmd_debug_logger).wait()
143
+ logger.info("Hyperkit is functional, selecting 'hyperkit' as the driver for Minikube")
144
+ except (FileNotFoundError, CalledProcessError) as e:
145
+ logger.trace("Hyperkit is NOT functional", exc_info=e)
146
+ driver = "podman"
147
+ try:
148
+ context.app.run(["podman", "info"], cmd_debug_logger, cmd_debug_logger).wait()
149
+ logger.info("Podman is functional, selecting 'podman' as the driver for Minikube")
150
+ except (FileNotFoundError, CalledProcessError) as e:
151
+ logger.trace("Podman is NOT functional", exc_info=e)
152
+ raise RuntimeError("No Minikube driver is functional on MacOS. "
153
+ "Tried 'docker', 'hyperkit' and 'podman'!")
154
+
130
155
  context.globals.minikube = dict(version=version,
131
156
  minikube_file=str(minikube_file),
132
157
  profile=profile,
@@ -161,12 +186,16 @@ class MinikubePlugin(KubernatorPlugin):
161
186
  minikube = self.context.minikube
162
187
  if not self.minikube_is_running():
163
188
  logger.info("Starting minikube profile %r...", minikube.profile)
164
- self.cmd("start",
165
- "--driver", str(minikube.driver),
166
- "--nodes", str(minikube.nodes),
167
- "--cpus", str(minikube.cpus),
168
- "--kubernetes-version", str(minikube.k8s_version),
169
- "--wait", "apiserver")
189
+ args = ["start",
190
+ "--driver", str(minikube.driver),
191
+ "--kubernetes-version", str(minikube.k8s_version),
192
+ "--wait", "apiserver",
193
+ "--nodes", str(minikube.nodes)]
194
+
195
+ if minikube.driver == "docker":
196
+ args.extend(["--cpus", str(minikube.cpus)])
197
+
198
+ self.cmd(*args)
170
199
  else:
171
200
  logger.warning("Minikube profile %r is already running!", minikube.profile)
172
201
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kubernator
3
- Version: 1.0.9.dev20231221064456
3
+ Version: 1.0.9.dev20231224171539
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.
@@ -94,6 +94,14 @@ A simple example is as follows:
94
94
  $ docker run --mount type=bind,source="$(pwd)",target=/root,readonly -t ghcr.io/karellen/kubernator:latest
95
95
  ```
96
96
 
97
+ ## Using Kubernator on MacOS
98
+
99
+ ```
100
+ $ brew install python3.11
101
+ $ pip3.11 install `kubernator~=1.0.9`
102
+ $ kubernator --version
103
+ ```
104
+
97
105
  Please note, that some plugins (e.g. `awscli`, `eks`) may require additional volume mounts or environmental
98
106
  variables to be passed for credentials and other external configuration.
99
107
 
@@ -1,27 +1,27 @@
1
1
  kubernator/LICENSE,sha256=wKKdOCMTCPQRV5gDkVLAsXX8qSnRJ5owk7yWPO1KZNo,11387
2
- kubernator/__init__.py,sha256=ca4dZf97wZBiYKrL-G9oQbQvXKtB9FwEqofjxBb2vho,932
2
+ kubernator/__init__.py,sha256=83266ggnK47XMoC7Q915rmi02ilwDtmCu0OdK_CGShc,932
3
3
  kubernator/__main__.py,sha256=f0S60wgpLu--1UlOhzfWail-xt8zyIuODodX98_yPN0,707
4
- kubernator/api.py,sha256=iO4clVqbCeGHO1SbW-xbDymK-KHkmPJYIRllRVyeN6Q,24851
4
+ kubernator/api.py,sha256=3hxYHOJt_ps9VFqqOuIHOHPLThLb98RO-gZZ_E-xd9I,24951
5
5
  kubernator/app.py,sha256=kGS8jVcf-nCY1mP6MdqMR27XNcEMb5Uxek9FEW4GWLg,19472
6
6
  kubernator/proc.py,sha256=8YlgbppyHic_51fVTPD7OP8x5yuRuL8j1kThR8MJjNI,5119
7
7
  kubernator/plugins/__init__.py,sha256=h9TLYK8UFEi53ipZSZsTBjp0ljKhisWsgPpt_PkWrO8,670
8
8
  kubernator/plugins/awscli.py,sha256=S6X7-qFiaZ7NDVDl2Jg0t-ih9KAJ45cUjjzd5Qe93ZM,4252
9
9
  kubernator/plugins/eks.py,sha256=xe7vyPHNwuP8gEYDSzPyBkm-RkAtP64wCOqs9U5I7xI,2273
10
10
  kubernator/plugins/helm.py,sha256=3BYZBPoiMUtNgmhdcbYCVRTPtaQMYzhfnMqXWyZRJZc,10525
11
- kubernator/plugins/istio.py,sha256=dk4BjCjgYuhDw4aEV4lqhnuQMvAHNsy9URLmyH0eedw,9987
11
+ kubernator/plugins/istio.py,sha256=rjqFyWWKVhcv8tB5sY9cAQV8XnmUYc5vn8t1R6GRjOQ,10432
12
12
  kubernator/plugins/k8s.py,sha256=klbAU-DIDNzY-aXfbhxQKHwGhStTmJ-k7ydr1ckUqr8,20248
13
13
  kubernator/plugins/k8s_api.py,sha256=xsDQii32khCUOc4hMlNc0zHLQK73VTb4kdnug8ukmy4,26000
14
14
  kubernator/plugins/kops.py,sha256=QsrQJUF6wGJo2QRVqP92pG5vmOTYQIc25PD_DWCzrAA,9635
15
15
  kubernator/plugins/kubeconfig.py,sha256=uwtHmF2I6LiTPrC3M88G5SfYxDWtuh0MqcMfrHHoNRA,2178
16
16
  kubernator/plugins/kubectl.py,sha256=IgNghW1Q6s8V2o08eNY2NWfkkdV9Z6X2A3YFQinFr4g,4028
17
- kubernator/plugins/minikube.py,sha256=yLp3hbkn_Yv_Vn87YFCN3newYb2m-tyW2Qun-a65gfU,8411
17
+ kubernator/plugins/minikube.py,sha256=_ArOg4IPIEhYoQJUjzHyGYFSDjyL-FmTS4v5RXLgQSs,10147
18
18
  kubernator/plugins/template.py,sha256=o6UqLw1wK91gCfN7q-Wwc3P5iycAeELUryXh-egA2vQ,8070
19
19
  kubernator/plugins/terraform.py,sha256=a1MPl9G8Rznjd28uMRdYWrjpFDLlFAVmLFH4hFEsMsQ,5285
20
20
  kubernator/plugins/terragrunt.py,sha256=-qN8tTqPUXJ9O7CEiJVUB0GSUQU3DUTkv-aWdIIsm7Q,5051
21
- kubernator-1.0.9.dev20231221064456.dist-info/METADATA,sha256=5u-K76WFUuwUXWz89SLmPUKEDp2Bw4VUE05m5NKwc9Q,10318
22
- kubernator-1.0.9.dev20231221064456.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
23
- kubernator-1.0.9.dev20231221064456.dist-info/entry_points.txt,sha256=IWDtHzyTleRqDSuVRXEr5GImrI7z_kh21t5DWZ8ldcQ,47
24
- kubernator-1.0.9.dev20231221064456.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
25
- kubernator-1.0.9.dev20231221064456.dist-info/top_level.txt,sha256=_z1CxWeKMI55ckf2vC8HqjbCn_E2Y_P5RdrhE_QWcIs,11
26
- kubernator-1.0.9.dev20231221064456.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
27
- kubernator-1.0.9.dev20231221064456.dist-info/RECORD,,
21
+ kubernator-1.0.9.dev20231224171539.dist-info/METADATA,sha256=h-NfeMlQeStqmwzDdgJFDrDJc7uEIk2N7gga8OFI9LI,10444
22
+ kubernator-1.0.9.dev20231224171539.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
23
+ kubernator-1.0.9.dev20231224171539.dist-info/entry_points.txt,sha256=IWDtHzyTleRqDSuVRXEr5GImrI7z_kh21t5DWZ8ldcQ,47
24
+ kubernator-1.0.9.dev20231224171539.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
25
+ kubernator-1.0.9.dev20231224171539.dist-info/top_level.txt,sha256=_z1CxWeKMI55ckf2vC8HqjbCn_E2Y_P5RdrhE_QWcIs,11
26
+ kubernator-1.0.9.dev20231224171539.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
27
+ kubernator-1.0.9.dev20231224171539.dist-info/RECORD,,