private Pod getRunnerPod()

in karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java [427:476]


    private Pod getRunnerPod(String projectId, String name, String jbangOptions, Map<String, String> containerResources) {
        Map<String, String> labels = new HashMap<>();
        labels.putAll(getRuntimeLabels());
        labels.putAll(getKaravanRunnerLabels(name));
        labels.put(LABEL_PROJECT_ID, projectId);

        ResourceRequirements resources = getResourceRequirements(containerResources);

        ObjectMeta meta = new ObjectMetaBuilder()
                .withName(name)
                .withLabels(labels)
                .withNamespace(getNamespace())
                .build();

        ContainerPort port = new ContainerPortBuilder()
                .withContainerPort(8080)
                .withName("http")
                .withProtocol("TCP")
                .build();

        Container container = new ContainerBuilder()
                .withName(name)
                .withImage("ghcr.io/apache/camel-karavan-runner:" + version)
                .withPorts(port)
                .withResources(resources)
                .withImagePullPolicy("Always")
                .withEnv(new EnvVarBuilder().withName(ENV_VAR_JBANG_OPTIONS).withValue(jbangOptions).build())
                .withVolumeMounts(
                        new VolumeMountBuilder().withName(name).withMountPath("/karavan/.jbang/cache").build(),
                        new VolumeMountBuilder().withName("maven-settings").withSubPath("maven-settings.xml")
                                .withMountPath("/karavan-config-map/maven-settings.xml").build())
                .build();

        PodSpec spec = new PodSpecBuilder()
                .withTerminationGracePeriodSeconds(0L)
                .withContainers(container)
                .withRestartPolicy("Never")
                .withVolumes(
                        new VolumeBuilder().withName(name)
                                .withNewPersistentVolumeClaim(name, false).build(),
                        new VolumeBuilder().withName("maven-settings")
                                .withConfigMap(new ConfigMapVolumeSourceBuilder()
                                        .withName("karavan").build()).build())
                .build();

        return new PodBuilder()
                .withMetadata(meta)
                .withSpec(spec)
                .build();
    }