def __init__(self, application, image_name, tcp_ports=None, udp_ports=None, commands=None, args=None, envs=None, is_public=False, volumes=None, min_replicas=None, max_replicas=None, cpu_target=None): self.kubeclient = KubeClient("http://{}:{}{}".format(settings.MASTER_IP, settings.K8S_PORT, settings.K8S_API_PATH)) self.application = application self.namespace = self.application.image.project.name self.application_name = get_application_instance_name(self.application) self.image_name = image_name self.tcp_ports = tcp_ports self.udp_ports = udp_ports self.commands = commands self.args = args self.envs = envs self.is_public = is_public self.volumes = volumes # Compute the resource limit of the application resource_limit = self.application.resource_limit self.cpu = str(resource_limit.cpu) + resource_limit.cpu_unit self.memory = str(resource_limit.memory) + resource_limit.memory_unit # autoscaler if self.application.is_autoscaler: self.min_replicas = int(min_replicas) self.max_replicas = int(max_replicas) self.cpu_target = int(cpu_target) logger.debug(str(self.min_replicas) + " " + str(self.max_replicas) + " " + str(self.cpu_target))
def __init__(self, application): self.application = application self.application_name = get_application_instance_name(self.application) self.namespace = self.application.image.project.name self.kubeclient = KubeClient("http://{}:{}{}".format(settings.MASTER_IP, settings.K8S_PORT, settings.K8S_V1BETA1_API_PATH))
def __init__(self, application): self.application = application self.application_name = get_application_instance_name(self.application) self.namespace = self.application.image.project.name self.kubeclient = KubeClient("http://{}:{}{}".format( settings.MASTER_IP, settings.K8S_PORT, settings.K8S_V1BETA1_API_PATH))
def __init__(self, application, min_replicas=-1, max_replicas=-1, cpu_target=-1): self.application = application self.application_name = get_application_instance_name(self.application) self.namespace = self.application.image.project.name self.min_replicas = min_replicas self.max_replicas = max_replicas self.cpu_target = cpu_target self.kubeclient = KubeClient("http://{}:{}{}".format(settings.MASTER_IP, settings.K8S_PORT, settings.K8S_V1BETA1_API_PATH))
def __init__(self, application, min_replicas=-1, max_replicas=-1, cpu_target=-1): self.application = application self.application_name = get_application_instance_name(self.application) self.namespace = self.application.image.project.name self.min_replicas = min_replicas self.max_replicas = max_replicas self.cpu_target = cpu_target self.kubeclient = KubeClient("http://{}:{}{}".format( settings.MASTER_IP, settings.K8S_PORT, settings.K8S_V1BETA1_API_PATH))
def pod_lists(self, request, *args, **kwargs): """ Return the pods list of the application with json. """ application = self.get_object() if not application: raise ValidationError(detail="The application doesn't exist.") kubeclient = KubeClient("http://{}:{}{}".format(settings.MASTER_IP, settings.K8S_PORT, settings.K8S_API_PATH)) pods = kubeclient.list_pods(namespace=application.image.project.name, label="app={}".format(get_application_instance_name(application))) logger.debug(pods) return Response(pods, status=status.HTTP_200_OK)
def __init__(self, application, image_name, tcp_ports=None, udp_ports=None, commands=None, args=None, envs=None, is_public=False, volumes=None, min_replicas=None, max_replicas=None, cpu_target=None): self.kubeclient = KubeClient("http://{}:{}{}".format( settings.MASTER_IP, settings.K8S_PORT, settings.K8S_API_PATH)) self.application = application self.namespace = self.application.image.project.name self.application_name = get_application_instance_name(self.application) self.image_name = image_name self.tcp_ports = tcp_ports self.udp_ports = udp_ports self.commands = commands self.args = args self.envs = envs self.is_public = is_public self.volumes = volumes # Compute the resource limit of the application resource_limit = self.application.resource_limit self.cpu = str(resource_limit.cpu) + resource_limit.cpu_unit self.memory = str(resource_limit.memory) + resource_limit.memory_unit # autoscaler if self.application.is_autoscaler: self.min_replicas = int(min_replicas) self.max_replicas = int(max_replicas) self.cpu_target = int(cpu_target) logger.debug( str(self.min_replicas) + " " + str(self.max_replicas) + " " + str(self.cpu_target))
def list_pods(self, request, *args, **kwargs): """ AdminUser search pods for application id. """ user = self.request.user if not user.is_staff: raise PermissionDenied() app_id = request.GET.get('app', 0) try: application = Application.objects.get(id=app_id) except Exception: return Response(status=status.HTTP_200_OK) kubeclient = KubeClient("http://{}:{}{}".format( settings.MASTER_IP, settings.K8S_PORT, settings.K8S_API_PATH)) pods = kubeclient.list_pods( namespace=application.image.project.name, label="app={}".format(get_application_instance_name(application))) logger.debug(pods) return Response(pods, status=status.HTTP_200_OK)
def list_pods(self, request, *args, **kwargs): """ AdminUser search pods for application id. """ user = self.request.user if not user.is_staff: raise PermissionDenied() app_id = request.GET.get('app', 0) try: application = Application.objects.get(id=app_id) except Exception: return Response(status=status.HTTP_200_OK) kubeclient = KubeClient("http://{}:{}{}".format(settings.MASTER_IP, settings.K8S_PORT, settings.K8S_API_PATH)) pods = kubeclient.list_pods( namespace=application.image.project.name, label="app={}".format(get_application_instance_name(application))) logger.debug(pods) return Response(pods, status=status.HTTP_200_OK)