Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
 def minikube_ip(self) -> str:
     return sh.minikube('ip').strip()
Ejemplo n.º 5
0
 def _increase_inotify_limit(self):
     sh.minikube('ssh', 'sudo sysctl fs.inotify.max_user_watches=16382')
Ejemplo n.º 6
0
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("-", "_")