private static void install()

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");
    }