void run()

in src/com/epam/digital/data/platform/pipelines/stages/impl/dataplatform/DeployProjects.groovy [29:104]


    void run() {
        context.dataComponents.values().each { dataComponent ->
            if (dataComponent.name != DataComponentType.MODEL.getValue())
                ['anyuid', 'privileged'].each { scc ->
                    context.platform.addSccToUser(dataComponent.fullName, scc, context.namespace)
                }
        }

        LinkedHashMap parallelDeployment = [:]
        context.dataComponents.values().each { dataComponent ->
            if (dataComponent.name != DataComponentType.MODEL.getValue())
                parallelDeployment["${dataComponent.name}"] = {
                    context.logger.info("Deploying ${dataComponent.name}")
                    LinkedHashMap<String, String> parametersMap = [
                            'namespace'          : context.namespace,
                            'ciProject'          : context.namespace,
                            'dnsWildcard'        : context.dnsWildcard,
                            'image.name'         : context.platform.getJsonPathValue("buildconfig",
                                    ("${dataComponent.codebaseName}-${dataComponent.codebaseBranch}").replace('.', '-'),
                                    ".spec.output.to.name").toString().split(':')[0],
                            'image.version'      : dataComponent.version,
                            'dockerProxyRegistry': context.dockerRegistry.proxyHost,
                            'version'            : dataComponent.version,
                            'keycloak.url'       : context.keycloak.url + "/auth",
                            'deployProfile'      : context.registryRegulations.getRegistryConfValues(true),
                            'nexusPullSecret'    : context.dockerRegistry.PUSH_SECRET,
                            'pipelineStageName'  : context.platform.getJsonPathValue("configmap", "registry-pipeline-stage-name",
                                    ".data.cdPipelineName") + '-' + context.platform.getJsonPathValue("configmap", "registry-pipeline-stage-name",
                                    ".data.cdPipelineStageName")
                    ]
                    LinkedHashMap platformValuesPath = context.script.readYaml file: "${context.getWorkDir()}" +
                            "/platform-values.yaml"
                    Boolean disableRequestsLimits = platformValuesPath["global"]["disableRequestsLimits"]
                    if (disableRequestsLimits != null) {
                        parametersMap.put("global.disableRequestsLimits", disableRequestsLimits)
                    }

                    String deploymentMode = platformValuesPath["global"]["deploymentMode"]
                    if (deploymentMode != null) {
                        parametersMap.put("global.deploymentMode", deploymentMode)
                    }

                    if (context.keycloakCustomHost != null) {
                        parametersMap.put("keycloak.customHost", context.keycloakCustomHost)
                    }

                    String clusterVersion = platformValuesPath["global"]["clusterVersion"]
                    if (clusterVersion != null) {
                        parametersMap.put("global.clusterVersion", clusterVersion)
                    }

                    if (dataComponent.name == DataComponentType.SOAP_API.getValue()) {
                        context.logger.info("Add trembita IPs to SOAP api")
                        LinkedHashMap registryValues = context.script.readYaml text: context.script.sh(script: """helm get values registry-nodes -a -n ${context.namespace}""", returnStdout: true)
                        if (registryValues["trembita"]["ipList"])
                            parametersMap.put("trembita.ipList", "\"{${registryValues["trembita"]["ipList"].join(',')}}\"")
                        context.logger.info("Parameters: ${parametersMap}")
                    }

                    String fileParameters = ""
                    String dataComponentNameNormalized = dataComponent.name.replace('-','').replace('api',"Api")
                    if (platformValuesPath.global.registry?."${dataComponentNameNormalized}") {
                        LinkedHashMap registryProperties = [global: [registry: ["${dataComponentNameNormalized}":
                                                platformValuesPath.global.registry?."${dataComponentNameNormalized}"]]]
                        String componentValuesFile = "${dataComponent.getWorkDir()}/${dataComponentNameNormalized}.yaml"
                        context.script.writeYaml file: componentValuesFile, data: registryProperties, overwrite: true
                        fileParameters = "-f ${componentValuesFile}"
                    }
                    context.script.dir(dataComponent.getWorkDir()) {
                        Helm.upgrade(context, dataComponent.fullName, dataComponent.DEPLOY_TEMPLATES_PATH, parametersMap,
                                fileParameters, context.namespace)
                    }
                }
        }
        context.script.parallel parallelDeployment
    }