in karavan-web/karavan-cli/src/main/java/org/apache/camel/karavan/cli/CommandUtils.java [58:151]
private static void install(KaravanCommand config, KubernetesClient client) {
// Check and install Tekton
if (!isTektonInstalled(client)) {
log("Tekton is not installed");
if (isOpenShift(client)) {
logPoint("Please install Tekton Operator first");
System.exit(0);
}
installTekton(config, client);
disableAffinityAssistant(client);
}
log("Tekton is installed");
// Create namespace
if (client.namespaces().withName(config.getNamespace()).get() == null) {
Namespace ns = new NamespaceBuilder().withNewMetadata().withName(config.getNamespace()).endMetadata().build();
ns = client.namespaces().resource(ns).create();
log("Namespace " + ns.getMetadata().getName() + " created");
} else {
log("Namespace " + config.getNamespace() + " already exists");
}
// Check and install Infinispan
if (!isInfinispanInstalled(client)) {
log("Infinispan is not installed");
if (isOpenShift(client)) {
logPoint("Please install Infinispan first");
System.exit(0);
}
installInfinispan(config, client);
}
log("Infinispan is installed");
// Check secrets
if (!checkKaravanSecrets(config, client)) {
logError("Karavan secrets not found");
// try to create secrets
if (!tryToCreateKaravanSecrets(config, client)) {
logPoint("Apply secrets before installation");
logPoint("Or provide Git, Auth and Image Registry options");
System.exit(0);
}
} else {
log("Karavan secrets found");
}
// Create Nexus Proxy
if (config.isNexusProxy()) {
createOrReplace(Nexus.getDeployment(config), client);
createOrReplace(Nexus.getService(config), client);
}
// Create ConfigMap
createOrReplace(KaravanConfigMap.getConfigMap(config), client);
// Create Service Accounts
createOrReplace(KaravanServiceAccount.getServiceAccount(config), client);
createOrReplace(KaravanServiceAccount.getServiceAccountPipeline(config), client);
// Create Roles and role bindings
createOrReplace(KaravanRole.getRole(config), client);
createOrReplace(KaravanRole.getRoleBinding(config), client);
createOrReplace(KaravanRole.getRoleBindingView(config), client);
createOrReplace(KaravanRole.getRoleDeployer(config), client);
createOrReplace(KaravanRole.getRoleBindingPipeline(config), client);
// Create PVC
createOrReplace(KaravanPvc.getPvcData(config), client);
createOrReplace(KaravanPvc.getPvcM2Cache(config), client);
createOrReplace(KaravanPvc.getPvcJbangCache(config), client);
// Create Tasks and Pipelines
Arrays.stream(config.getRuntimes().split(",")).forEach(runtime -> {
createOrReplace(KaravanTekton.getTask(config, runtime), client);
createOrReplace(KaravanTekton.getPipeline(config, runtime), client);
});
// Create deployment
createOrReplace(KaravanDeployment.getDeployment(config), client);
// Create service
createOrReplace(KaravanService.getService(config), client);
if (config.isOpenShift()) {
createOrReplace(KaravanService.getRoute(config), client);
}
log("Karavan is installed");
System.out.print("\uD83D\uDC2B Karavan is starting ");
while (!checkReady(config, client)) {
try {
Thread.sleep(1000);
} catch (Exception e) {
}
System.out.print("\uD83D\uDC2B ");
}
System.out.println();
log("Karavan is ready");
}