def _start(self): logger.info('Starting minikube with VirtualBox...') minikube_iso = 'https://storage.googleapis.com/minikube/iso/minikube-v0.23.4.iso' sh.minikube('start', '--memory', '4096', '--disk-size', '30g', '--iso-url', minikube_iso, '--docker-opt', 'storage-driver=overlay2', _out=sys.stdout.buffer, _err=sys.stdout.buffer)
def _check_version(self): version = str(sh.minikube('version')) version_pattern = r'v(\d+)\.(\d+)\.(\d+)' match = re.search(version_pattern, version) if not match: logger.warning('Could not determine minikube version. Got: "{}"'.format(version)) else: version = tuple(map(int, match.groups())) if version < self.minimum_minikube_version: logger.warning('Minikube version {} is not supported, you may run into issues. ' 'Minimum supported version: {}'.format(version, self.minimum_minikube_version))
def _ensure_hosthome_mounted(self): if '/hosthome' not in sh.minikube('ssh', 'mount'): logger.info("Preparing hosthome directory...") try: sh.minikube('ssh', 'sudo mkdir /hosthome') except sh.ErrorReturnCode_1 as e: if b'can\'t create directory \'/hosthome\': File exists' not in e.stderr: raise sh.minikube('ssh', 'sudo chmod 777 /hosthome') sh.minikube('ssh', 'sudo mount -t vboxsf -o uid=$(id -u),gid=$(id -g) hosthome /hosthome')
def minikube_ip(self) -> str: return sh.minikube('ip').strip()
def _increase_inotify_limit(self): sh.minikube('ssh', 'sudo sysctl fs.inotify.max_user_watches=16382')
homedir = os.path.expanduser('~') api = pykube.HTTPClient(pykube.KubeConfig.from_file("%s/.kube/config" % (homedir))) services = pykube.Service.objects(api).filter(namespace="default") data = AutoVivification() for i in services.all(): for x in i.obj.viewitems(): if 'spec' in x: if 'ports' in x[1].keys(): for p in x[1]['ports']: if 'nodePort' in p.keys(): data[str(i)][p['name']] = p['nodePort'] ipdata = AutoVivification() for i in data.keys(): x = sh.minikube("service", i, "--url") if x.split("\n")[0]: ipdata[i] = x.split("\n")[0].split("/")[2].split(":")[0] filename = '%s/.minienv' % homedir target = open(filename, 'w') print "Writing to: %s" % filename print "################################" for i in data.keys(): for a in data[i].keys(): portstring = "%s_SERVICE_PORT_%s=%s" % (i.upper(), a.upper(), data[i][a]) portstring = portstring.replace("-", "_") print "export %s" % (portstring) target.write("export %s\n" % portstring) hoststring = "%s_SERVICE_HOST=%s" % (i.upper(), ipdata[i]) hoststring = hoststring.replace("-", "_")