in karavan-web/karavan-operator/src/main/java/org/apache/camel/karavan/operator/resource/KaravanDeployment.java [58:154]
public Deployment desired(Karavan karavan, Context<Karavan> context) {
String baseImage = ConfigProvider.getConfig().getValue("karavan.image", String.class);
String version = ConfigProvider.getConfig().getValue("karavan.version", String.class);
String image = baseImage + ":" + version;
List<EnvVar> envVarList = new ArrayList<>();
envVarList.add(
new EnvVar("KARAVAN_ENVIRONMENT", karavan.getSpec().getEnvironment(), null)
);
envVarList.add(
new EnvVar("KARAVAN_RUNTIMES", karavan.getSpec().getRuntimes(), null)
);
envVarList.add(
new EnvVar("KUBERNETES_NAMESPACE", null, new EnvVarSourceBuilder().withFieldRef(new ObjectFieldSelector("","metadata.namespace")).build())
);
String auth = karavan.getSpec().getAuth();
if (Objects.equals(auth, "basic")) {
image = baseImage + "-basic:" + version;
envVarList.add(
new EnvVar("MASTER_PASSWORD", null, new EnvVarSourceBuilder().withSecretKeyRef(new SecretKeySelector("master-password","karavan", false)).build())
);
} else if (Objects.equals(auth,"oidc")) {
image = baseImage + "-oidc:" + version;
envVarList.add(
new EnvVar("OIDC_FRONTEND_URL", null, new EnvVarSourceBuilder().withSecretKeyRef(new SecretKeySelector("oidc-frontend-url","karavan", false)).build())
);
envVarList.add(
new EnvVar("OIDC_SERVER_URL", null, new EnvVarSourceBuilder().withSecretKeyRef(new SecretKeySelector("oidc-server-url","karavan", false)).build())
);
envVarList.add(
new EnvVar("OIDC_SECRET", null, new EnvVarSourceBuilder().withSecretKeyRef(new SecretKeySelector("oidc-secret","karavan", false)).build())
);
}
String gitPullInterval = karavan.getSpec().getGitPullInterval();
if (Objects.isNull(gitPullInterval) || Objects.equals(gitPullInterval.trim(), "0")) {
envVarList.add(
new EnvVar("QUARKUS_SCHEDULER_ENABLED", "false", null)
);
} else {
envVarList.add(
new EnvVar("QUARKUS_SCHEDULER_ENABLED", "true", null)
);
envVarList.add(
new EnvVar("KARAVAN_GIT_PULL_INTERVAL", gitPullInterval, null)
);
}
log.info("Deployment image: " + image);
return new DeploymentBuilder()
.withNewMetadata()
.withName(Constants.NAME)
.withNamespace(karavan.getMetadata().getNamespace())
.withLabels(Utils.getLabels(Constants.NAME, Map.of("app.kubernetes.io/runtime", "quarkus")))
.withOwnerReferences(this.createOwnerReference(karavan))
.endMetadata()
.withNewSpec()
.withReplicas(karavan.getSpec().getInstances())
.withNewSelector()
.addToMatchLabels(Map.of("app", Constants.NAME))
.endSelector()
.withNewTemplate()
.withNewMetadata()
.addToLabels(Map.of("app", Constants.NAME))
.endMetadata()
.withNewSpec()
.addNewContainer()
.withName(Constants.NAME)
.withImage(image)
.withImagePullPolicy("Always")
.withEnv(envVarList)
.addNewPort()
.withContainerPort(8080)
.withName(Constants.NAME)
.endPort()
.withResources(new ResourceRequirementsBuilder().withRequests(
Map.of("memory", new Quantity("512Mi"))).build())
.withVolumeMounts(
new VolumeMountBuilder().withName("karavan-data").withMountPath("/deployments/karavan-data").build(),
new VolumeMountBuilder().withName("ephemeral").withMountPath("/tmp").build()
)
.endContainer()
.withServiceAccount(Constants.NAME)
.withVolumes(
new VolumeBuilder().withName("karavan-data").withPersistentVolumeClaim(new PersistentVolumeClaimVolumeSource("karavan-data", false)).build(),
new VolumeBuilder().withName("ephemeral").withEmptyDir(new EmptyDirVolumeSource()).build()
)
.endSpec()
.endTemplate()
.endSpec()
.build();
}