Beispiel #1
0
 def test_parse_volume_and_mount(self):
     volume_config = """host_path=c0,mount_path=/path0;
     claim_name=c1,mount_path=/path1"""
     volumes, volume_mounts = parse_volume_and_mount(volume_config, "test")
     self.assertEqual(len(volumes), 2)
     self.assertEqual(volumes[0].persistent_volume_claim.claim_name, "c1")
     self.assertEqual(volumes[1].host_path.path, "c0")
     self.assertEqual(volume_mounts[0].mount_path, "/path0")
     self.assertEqual(volume_mounts[1].mount_path, "/path1")
Beispiel #2
0
    def create_pod(self, **kargs):
        # Container
        pod_resource_requests = kargs["resource_requests"]
        pod_resource_limits = kargs["resource_limits"]
        pod_resource_limits = (
            pod_resource_limits
            if pod_resource_limits
            else pod_resource_requests
        )
        container = client.V1Container(
            name=kargs["pod_name"],
            image=kargs["image_name"],
            command=kargs["command"],
            resources=client.V1ResourceRequirements(
                requests=parse_resource(pod_resource_requests),
                limits=parse_resource(pod_resource_limits),
            ),
            args=kargs["container_args"],
            image_pull_policy=kargs["image_pull_policy"],
            env=kargs["env"],
        )

        # Pod
        spec = client.V1PodSpec(
            containers=[container],
            restart_policy=kargs["restart_policy"],
            priority_class_name=kargs["pod_priority"],
            termination_grace_period_seconds=kargs.get(
                "termination_period", None
            ),
        )

        # Mount data path
        if kargs["volume"]:
            volumes, volume_mounts = parse_volume_and_mount(
                kargs["volume"], kargs["pod_name"]
            )
            spec.volumes = volumes
            container.volume_mounts = volume_mounts

        pod = client.V1Pod(
            spec=spec,
            metadata=client.V1ObjectMeta(
                name=kargs["pod_name"],
                labels=self._get_common_labels(),
                owner_references=self.create_owner_reference(
                    kargs["owner_pod"]
                ),
                namespace=self.namespace,
            ),
        )
        if self.cluster:
            pod = self.cluster.with_pod(pod)

        return pod