|
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, |
@@ -293,11 +297,17 @@ def make_pod( |
293 | 297 | prepared_env.append(get_k8s_model(V1EnvVar, v)) |
294 | 298 | else: |
295 | 299 | prepared_env.append(V1EnvVar(name=k, value=v)) |
| 300 | + # port == 0: do not create a port object |
| 301 | + if port == 0: |
| 302 | + ports = [] |
| 303 | + else: |
| 304 | + ports=[V1ContainerPort(name='notebook-port', container_port=port)] |
| 305 | + |
296 | 306 | notebook_container = V1Container( |
297 | 307 | name='notebook', |
298 | 308 | image=image, |
299 | 309 | working_dir=working_dir, |
300 | | - ports=[V1ContainerPort(name='notebook-port', container_port=port)], |
| 310 | + ports=ports, |
301 | 311 | env=prepared_env, |
302 | 312 | args=cmd, |
303 | 313 | image_pull_policy=image_pull_policy, |
@@ -497,18 +507,24 @@ def make_ingress( |
497 | 507 |
|
498 | 508 | try: |
499 | 509 | from kubernetes.client.models import ( |
500 | | - ExtensionsV1beta1Ingress, ExtensionsV1beta1IngressSpec, ExtensionsV1beta1IngressRule, |
501 | | - ExtensionsV1beta1HTTPIngressRuleValue, ExtensionsV1beta1HTTPIngressPath, |
502 | | - ExtensionsV1beta1IngressBackend, |
503 | | - ) |
| 510 | + ExtensionsV1beta1HTTPIngressPath, |
| 511 | + ExtensionsV1beta1HTTPIngressRuleValue, ExtensionsV1beta1Ingress, |
| 512 | + ExtensionsV1beta1IngressBackend, ExtensionsV1beta1IngressRule, |
| 513 | + ExtensionsV1beta1IngressSpec) |
504 | 514 | except ImportError: |
505 | | - from kubernetes.client.models import ( |
506 | | - V1beta1Ingress as ExtensionsV1beta1Ingress, V1beta1IngressSpec as ExtensionsV1beta1IngressSpec, |
507 | | - V1beta1IngressRule as ExtensionsV1beta1IngressRule, |
508 | | - V1beta1HTTPIngressRuleValue as ExtensionsV1beta1HTTPIngressRuleValue, |
509 | | - V1beta1HTTPIngressPath as ExtensionsV1beta1HTTPIngressPath, |
| 515 | + from kubernetes.client.models import \ |
| 516 | + V1beta1HTTPIngressPath as ExtensionsV1beta1HTTPIngressPath |
| 517 | + from kubernetes.client.models import \ |
| 518 | + V1beta1HTTPIngressRuleValue as \ |
| 519 | + ExtensionsV1beta1HTTPIngressRuleValue |
| 520 | + from kubernetes.client.models import \ |
| 521 | + V1beta1Ingress as ExtensionsV1beta1Ingress |
| 522 | + from kubernetes.client.models import \ |
510 | 523 | V1beta1IngressBackend as ExtensionsV1beta1IngressBackend |
511 | | - ) |
| 524 | + from kubernetes.client.models import \ |
| 525 | + V1beta1IngressRule as ExtensionsV1beta1IngressRule |
| 526 | + from kubernetes.client.models import \ |
| 527 | + V1beta1IngressSpec as ExtensionsV1beta1IngressSpec |
512 | 528 |
|
513 | 529 | meta = V1ObjectMeta( |
514 | 530 | name=name, |
|
0 commit comments