|
5 | 5 | import re |
6 | 6 | from urllib.parse import urlparse |
7 | 7 |
|
| 8 | +from kubernetes.client.models import (V1Affinity, V1Container, V1ContainerPort, |
| 9 | + V1EndpointAddress, V1EndpointPort, |
| 10 | + V1Endpoints, V1EndpointSubset, V1EnvVar, |
| 11 | + V1Lifecycle, V1LocalObjectReference, |
| 12 | + V1NodeAffinity, V1NodeSelector, |
| 13 | + V1NodeSelectorRequirement, |
| 14 | + V1NodeSelectorTerm, V1ObjectMeta, |
| 15 | + V1PersistentVolumeClaim, |
| 16 | + V1PersistentVolumeClaimSpec, V1Pod, |
| 17 | + V1PodAffinity, V1PodAffinityTerm, |
| 18 | + V1PodAntiAffinity, V1PodSecurityContext, |
| 19 | + V1PodSpec, V1PreferredSchedulingTerm, |
| 20 | + V1ResourceRequirements, |
| 21 | + V1SecurityContext, V1Service, |
| 22 | + V1ServicePort, V1ServiceSpec, |
| 23 | + V1Toleration, V1Volume, V1VolumeMount, |
| 24 | + V1WeightedPodAffinityTerm) |
| 25 | + |
8 | 26 | from kubespawner.utils import get_k8s_model, update_k8s_model |
9 | 27 |
|
10 | | -from kubernetes.client.models import ( |
11 | | - V1Pod, V1PodSpec, V1PodSecurityContext, |
12 | | - V1ObjectMeta, |
13 | | - V1LocalObjectReference, |
14 | | - V1Volume, V1VolumeMount, |
15 | | - V1Container, V1ContainerPort, V1SecurityContext, V1EnvVar, V1ResourceRequirements, V1Lifecycle, |
16 | | - V1PersistentVolumeClaim, V1PersistentVolumeClaimSpec, |
17 | | - V1Endpoints, V1EndpointSubset, V1EndpointAddress, V1EndpointPort, |
18 | | - V1Service, V1ServiceSpec, V1ServicePort, |
19 | | - V1Toleration, |
20 | | - V1Affinity, |
21 | | - V1NodeAffinity, V1NodeSelector, V1NodeSelectorTerm, V1PreferredSchedulingTerm, V1NodeSelectorRequirement, |
22 | | - V1PodAffinity, V1PodAntiAffinity, V1WeightedPodAffinityTerm, V1PodAffinityTerm, |
23 | | -) |
24 | 28 |
|
25 | 29 | def make_pod( |
26 | 30 | name, |
@@ -298,11 +302,17 @@ def make_pod( |
298 | 302 | prepared_env.append(get_k8s_model(V1EnvVar, v)) |
299 | 303 | else: |
300 | 304 | prepared_env.append(V1EnvVar(name=k, value=v)) |
| 305 | + # port == 0: do not create a port object |
| 306 | + if port == 0: |
| 307 | + ports = [] |
| 308 | + else: |
| 309 | + ports=[V1ContainerPort(name='notebook-port', container_port=port)] |
| 310 | + |
301 | 311 | notebook_container = V1Container( |
302 | 312 | name='notebook', |
303 | 313 | image=image, |
304 | 314 | working_dir=working_dir, |
305 | | - ports=[V1ContainerPort(name='notebook-port', container_port=port)], |
| 315 | + ports=ports, |
306 | 316 | env=prepared_env, |
307 | 317 | args=cmd, |
308 | 318 | image_pull_policy=image_pull_policy, |
@@ -502,18 +512,24 @@ def make_ingress( |
502 | 512 |
|
503 | 513 | try: |
504 | 514 | from kubernetes.client.models import ( |
505 | | - ExtensionsV1beta1Ingress, ExtensionsV1beta1IngressSpec, ExtensionsV1beta1IngressRule, |
506 | | - ExtensionsV1beta1HTTPIngressRuleValue, ExtensionsV1beta1HTTPIngressPath, |
507 | | - ExtensionsV1beta1IngressBackend, |
508 | | - ) |
| 515 | + ExtensionsV1beta1HTTPIngressPath, |
| 516 | + ExtensionsV1beta1HTTPIngressRuleValue, ExtensionsV1beta1Ingress, |
| 517 | + ExtensionsV1beta1IngressBackend, ExtensionsV1beta1IngressRule, |
| 518 | + ExtensionsV1beta1IngressSpec) |
509 | 519 | except ImportError: |
510 | | - from kubernetes.client.models import ( |
511 | | - V1beta1Ingress as ExtensionsV1beta1Ingress, V1beta1IngressSpec as ExtensionsV1beta1IngressSpec, |
512 | | - V1beta1IngressRule as ExtensionsV1beta1IngressRule, |
513 | | - V1beta1HTTPIngressRuleValue as ExtensionsV1beta1HTTPIngressRuleValue, |
514 | | - V1beta1HTTPIngressPath as ExtensionsV1beta1HTTPIngressPath, |
| 520 | + from kubernetes.client.models import \ |
| 521 | + V1beta1HTTPIngressPath as ExtensionsV1beta1HTTPIngressPath |
| 522 | + from kubernetes.client.models import \ |
| 523 | + V1beta1HTTPIngressRuleValue as \ |
| 524 | + ExtensionsV1beta1HTTPIngressRuleValue |
| 525 | + from kubernetes.client.models import \ |
| 526 | + V1beta1Ingress as ExtensionsV1beta1Ingress |
| 527 | + from kubernetes.client.models import \ |
515 | 528 | V1beta1IngressBackend as ExtensionsV1beta1IngressBackend |
516 | | - ) |
| 529 | + from kubernetes.client.models import \ |
| 530 | + V1beta1IngressRule as ExtensionsV1beta1IngressRule |
| 531 | + from kubernetes.client.models import \ |
| 532 | + V1beta1IngressSpec as ExtensionsV1beta1IngressSpec |
517 | 533 |
|
518 | 534 | meta = V1ObjectMeta( |
519 | 535 | name=name, |
|
0 commit comments