Загрузка данных
954f205bd41e:~$ grep -Rni "vault-wrapper" /var/lib/deploy
/var/lib/deploy/statevalues/_predefined.yaml.gotmpl:264:{{- $vaultResponseGlobal := exec "vault-wrapper" (list $secretPathGlobal) | fromYaml -}}
/var/lib/deploy/statevalues/_predefined.yaml.gotmpl:267:{{- $vaultResponseCluster := exec "vault-wrapper" (list $secretPathCluster) | fromYaml -}}
/var/lib/deploy/statevalues/_predefined.yaml.gotmpl:272: {{- $vaultZoneResponse := exec "vault-wrapper" (list $secretZonePath) | fromYaml -}}
954f205bd41e:~$ grep -Rni "manual_kv_dev" /var/lib/deploy
954f205bd41e:~$ grep -Rni "_predefined.yaml.gotmpl" /var/lib/deploy
/var/lib/deploy/bases/_predefined.yaml:4: - statevalues/_predefined.yaml.gotmpl
954f205bd41e:~$ cat /var/lib/deploy/statevalues/_predefined.yaml.gotmpl
{{- $localValues := dict -}}
{{- /* Constants */ -}}
{{- /* Assume that all stable (`production.*` apiGroup) InternalSystem objects placed in `platform` namespace in all clusters */ -}}
{{- $_ := set $localValues "ingressEnabled" "true" -}}
{{- $_ := set $localValues "certClusterIssuer" "vault-issuer" -}}
{{- $_ := set $localValues "appSecretPrefix" "APP_SECRET_" -}}
{{- /* Local constants */ -}}
{{- $ansi_red_bold := "\033[33;1m" -}}
{{- $ansi_reset := "\033[0;m" -}}
{{- $devEnv := "dev" -}}
{{- $rcEnv := "rc" -}}
{{- $regressEnv := "regress" -}}
{{- $stressEnv := "stress" -}}
{{- $prodEnv := "production" -}}
{{- $trueProdEnv := "true-production" -}}
{{- $debugEnv := "_example" -}}
{{- $platformDBSupportedTypes := list "POSTGRESQL" "ORACLE" "MINIO" "ELASTICSEARCH" "MSSQL" "MONGODB" "MYSQL" -}}
{{- $k8sClusters := requiredEnv "K8S_CLUSTERS" | trim | splitList " " -}}
{{- $platformDefaultZone := "rumsk1" -}}
{{- $platformZones := list "rumsk1" "rumsk2" -}}
{{- /* Predefined variables */ -}}
{{- $_ := set $localValues "ciCommitTag" (env "CI_COMMIT_TAG") -}}
{{- $_ := set $localValues "ciCommitRefSlug" (env "CI_COMMIT_REF_SLUG") -}}
{{- $_ := set $localValues "globalEnvironmentName" (requiredEnv "GLOBAL_ENVIRONMENT_NAME") -}}
{{- $_ := set $localValues "globalEnvironmentNameUpper" ($localValues.globalEnvironmentName | upper) -}}
{{- $_ := set $localValues "cluster" (requiredEnv "CLUSTER") -}}
{{- $_ := set $localValues "ciProjectName" (requiredEnv "CI_PROJECT_NAME") -}}
{{- $_ := set $localValues "ciProjectPath" (requiredEnv "CI_PROJECT_PATH") -}}
{{- $_ := set $localValues "ciCommitShortSHA" (env "CI_COMMIT_SHORT_SHA" | default "deadbeef" | quote) -}}
{{- $_ := set $localValues "ciPipelineID" (env "CI_PIPELINE_ID") | default "-1" -}}
{{- $_ := set $localValues "ciJobID" (env "CI_JOB_ID") | default "-1" -}}
{{- $_ := set $localValues "ciChartRepo" (requiredEnv "CI_CHART_REPO") -}}
{{- $_ := set $localValues "ciRegistry" (requiredEnv "CI_REGISTRY") -}}
{{- $_ := set $localValues "depart" (env "DEPART") -}}
{{- $_ := set $localValues "vaultSuffix" (env "VAULT_SUFFIX" | default $localValues.globalEnvironmentName) -}}
{{- $_ := set $localValues "dynamicEnvironmentCode" (env "DYNAMIC_ENVIRONMENT_CODE") -}}
{{- $_ := set $localValues "dynamicEnvironmentUninstall" (env "DYNAMIC_ENVIRONMENT_UNINSTALL" | default "false") -}}
{{- $_ := set $localValues "isPlatformFlow" (env "PLATFORM_FLOW" | default "false") -}}
{{- /* Should be set to true for local tesing with action 'helmfile template' */ -}}
{{- $_ := set $localValues "localRunTemplate" (env "HELMFILE_LOCAL_RUN_TEMPLATE" | default "false") -}}
{{- /* CI Flow Variables */ -}}
{{- $_ := set $localValues "appFarmKubeClientAppsVersion" (env "IMAGE_TAG__KUBE_CLIENT_APPS") -}}
{{- /* Vendored OCI-image flow variables */ -}}
{{- $_ := set $localValues "isVendoredOCIImageFlow" (env "IS_VENDORED_OCI_IMAGE_FLOW" | default "false") -}}
{{- if eq $localValues.isVendoredOCIImageFlow "true" -}}
{{- $_ := set $localValues "vendoredFlowCommitRefSlug" (requiredEnv "VENDORED_FLOW_COMMIT_REF_SLUG") -}}
{{- $_ := set $localValues "vendorId" (requiredEnv "VENDOR_ID") -}}
{{- $_ := set $localValues "vendoredOCIImageName" (requiredEnv "VENDORED_OCI_IMAGE_NAME") -}}
{{- $_ := set $localValues "vendoredOCIImageTag" (requiredEnv "VENDORED_OCI_IMAGE_TAG") -}}
{{- end -}}
{{- /* Deprecated variables for back compability support */ -}}
{{- $_ := set $localValues "ciEnvironmentSlug" $localValues.globalEnvironmentName -}}
{{- $_ := set $localValues "ciEnvironmentSlugUpper" $localValues.globalEnvironmentNameUpper -}}
{{- /* Define platform environment variables */}}
{{- $_ := set $localValues "platformApiGroup" (printf "%s.platform.ckpr.integrations.rshbintech.ru/v1" $prodEnv) -}}
{{- $_ := set $localValues "namespaceIsysRelease" "platform" -}}
{{- $_ := set $localValues "namespaceExsysRelease" "platform" -}}
{{- $_ := set $localValues "namespaceDepartRelease" "platform" -}}
{{- $_ := set $localValues "namespaceResourcesRelease" "platform" -}}
{{- $_ := set $localValues "namespaceZonesRelease" "platform" -}}
{{- $_ := set $localValues "namespaceSystemRegistriesRelease" "platform" -}}
{{- $_ := set $localValues "namespaceKafkaRelease" "platform-kafka" -}}
{{- $_ := set $localValues "namespaceAmqRelease" "platform-amq" -}}
{{- $_ := set $localValues "namespaceIsysAppfarmCiConfigRelease" "gitlab-runners" -}}
{{- $_ := set $localValues "namespaceOrgRelease" "platform" -}}
{{- $_ := set $localValues "workloadZoneLabelName" "workload.topology.app.farm/zone" -}}
{{- /* Releases flags */ -}}
{{- $_ := set $localValues "deployBase" (env "DEPLOY_BASE" | default "true") -}}
{{- $_ := set $localValues "deployIsys" (env "DEPLOY_ISYS" | default "false") -}}
{{- $_ := set $localValues "deployExsys" (env "DEPLOY_EXSYS" | default "false") -}}
{{- $_ := set $localValues "deployPsvc" (env "DEPLOY_PSVC" | default $localValues.deployBase) -}}
{{- $_ := set $localValues "deployExsvc" (env "DEPLOY_EXSVC" | default "false") -}}
{{- $_ := set $localValues "deployDepart" (env "DEPLOY_DEPART" | default "false") -}}
{{- $_ := set $localValues "deployResources" (env "DEPLOY_RESOURCES" | default "false") -}}
{{- $_ := set $localValues "deployZones" (env "DEPLOY_ZONES" | default "false") -}}
{{- $_ := set $localValues "deploySystemRegistries" (env "DEPLOY_SYSTEM_REGISTRIES" | default "false") -}}
{{- $_ := set $localValues "deployAmqQueue" (env "DEPLOY_AMQ_QUEUE" | default "false") -}}
{{- $_ := set $localValues "deployIsysAppfarmCiConfig" (env "DEPLOY_ISYS_APPFARMCI_CONFIG" | default "false") -}}
{{- $_ := set $localValues "deployOrg" (env "DEPLOY_ORG" | default "false") -}}
{{- $_ := set $localValues "skipDeployService" (env "SKIP_DEPLOY_SERVICE" | default "false") -}}
{{- if or (eq $localValues.deployBase "true") (eq $localValues.deployPsvc "true") -}}
{{- $_ := set $localValues "buildImage" (env "BUILD_IMAGE" | default "unknown") -}}
{{- $_ := set $localValues "buildImageVersion" (env "BUILD_IMAGE_VERSION" | default "unknown") -}}
{{- $_ := set $localValues "runtimeImage" (env "RUNTIME_IMAGE" | default "unknown") -}}
{{- $_ := set $localValues "runtimeImageVersion" (env "RUNTIME_IMAGE_VERSION" | default "unknown") -}}
{{- $_ := set $localValues "serviceSide" (requiredEnv "SERVICE_SIDE") -}}
{{- $_ := set $localValues "serviceLang" (requiredEnv "SERVICE_LANG") -}}
{{- end -}}
{{- $_ := set $localValues "disableAutomountSaToken" false -}}
{{- if and (eq $localValues.deployBase "true") (eq $localValues.deployPsvc "true") (eq $localValues.isPlatformFlow "false") -}}
{{- $_ := set $localValues "disableAutomountSaToken" true -}}
{{- end -}}
{{- /* Set domain variable based on environment */ -}}
{{- $domainEnvDev := "DOMAIN_DEV" -}}
{{- $domainEnvRc := "DOMAIN_RC" -}}
{{- $domainEnvRegress := "DOMAIN_REGRESS" -}}
{{- $domainEnvStress := "DOMAIN_STRESS" -}}
{{- $domainEnvProd := "DOMAIN_PRODUCTION" -}}
{{- $domainEnvTrueProd := "DOMAIN_TRUE_PRODUCTION" -}}
{{- $domainEnvDebug := "DOMAIN_DEBUG" -}}
{{- $domainEnvMapping := dict $devEnv $domainEnvDev $rcEnv $domainEnvRc $regressEnv $domainEnvRegress $stressEnv $domainEnvStress $prodEnv $domainEnvProd $trueProdEnv $domainEnvTrueProd $debugEnv $domainEnvDebug -}}
{{- range $iEnv, $iDomainEnv := $domainEnvMapping -}}
{{- if eq $localValues.globalEnvironmentName $iEnv -}}
{{ $iDomainEnvValue := env $iDomainEnv }}
{{- if $iDomainEnvValue -}}
{{- $_ := set $localValues "domain" $iDomainEnvValue -}}
{{break}}
{{- end -}}
{{- $_ := set $localValues "domain" (requiredEnv "DOMAIN") -}}
{{break}}
{{- end -}}
{{- end -}}
{{- /* Set local variables based on environment and tag */ -}}
{{- $nameSuffix := $localValues.globalEnvironmentName }}
{{- $hostnameSuffixDelim := "." -}}
{{- $nsSuffixDelim := "-" -}}
{{- $_ := set $localValues "nsEnvSuffix" (printf "%s%s" $nsSuffixDelim $nameSuffix) -}}
{{- $imageTag := $localValues.ciCommitRefSlug -}}
{{- $imagePullPolicy := "Always" -}}
{{- if eq $localValues.isVendoredOCIImageFlow "true" -}}
{{- $imageTag = $localValues.vendoredFlowCommitRefSlug -}}
{{- end -}}
{{- if and $localValues.ciCommitTag (eq $localValues.globalEnvironmentName $rcEnv) -}}
{{- $_ := printf "go to RC" -}}
{{- $imageTag = $localValues.ciCommitTag -}}
{{- $imagePullPolicy = "IfNotPresent" -}}
{{- end -}}
{{- if and $localValues.ciCommitTag (eq $localValues.globalEnvironmentName $prodEnv) -}}
{{- $_ := printf "go to PROD" -}}
{{- $nameSuffix = "" -}}
{{- $hostnameSuffixDelim = "" -}}
{{- $nsSuffixDelim = "" -}}
{{- $_ := set $localValues "nsEnvSuffix" "" -}}
{{- $imageTag = $localValues.ciCommitTag -}}
{{- $imagePullPolicy = "IfNotPresent" -}}
{{- end -}}
{{- if and $localValues.ciCommitTag (eq $localValues.globalEnvironmentName $trueProdEnv) -}}
{{- $_ := printf "go to TRUE_PROD" -}}
{{- $nameSuffix = "" -}}
{{- $hostnameSuffixDelim = "" -}}
{{- $nsSuffixDelim = "" -}}
{{- $_ := set $localValues "nsEnvSuffix" "" -}}
{{- $imageTag = $localValues.ciCommitTag -}}
{{- $imagePullPolicy = "IfNotPresent" -}}
{{- end -}}
{{- /* If there are more than one cluster to deploy - nameSuffix will be picked as cluster name */ -}}
{{- if gt (len $k8sClusters) 1 -}}
{{- $nameSuffix = $localValues.cluster }}
{{- $hostnameSuffixDelim = "." -}}
{{- $nsSuffixDelim = "-" -}}
{{- end -}}
{{- $_ := printf "HOSTNAME_ENV %s %s" $nameSuffix $hostnameSuffixDelim -}}
{{- /* Image variables */ -}}
{{- $_ := set $localValues "imageTag" $imageTag -}}
{{- $_ := set $localValues "imagePullPolicy" $imagePullPolicy -}}
{{- /* Release name */ -}}
{{- $_ := set $localValues "releaseName" $localValues.ciProjectName -}}
{{- $_ := set $localValues "tlsSecretName" (printf "%s-tls" $localValues.releaseName) -}}
{{- /* environment for internal and external systems */ -}}
{{- $sysEnvMap := dict $devEnv $devEnv $regressEnv $regressEnv $stressEnv $stressEnv $rcEnv $rcEnv $prodEnv $prodEnv $trueProdEnv $prodEnv -}}
{{- $_ := set $localValues "sysEnv" ($sysEnvMap | get $localValues.globalEnvironmentName "undefined" | upper) -}}
{{- /* isys */ -}}
{{- $_ := set $localValues "isysName" (env "ISYS_NAME") -}}
{{- /* exsys */ -}}
{{- $_ := set $localValues "exsysName" (env "EXSYS_NAME") -}}
{{- /* namespace */ -}}
{{- $deployNSEnv := dict $devEnv (env "DEPLOY_NAMESPACE_DEV") $regressEnv (env "DEPLOY_NAMESPACE_REGRESS") $stressEnv (env "DEPLOY_NAMESPACE_STRESS") $rcEnv (env "DEPLOY_NAMESPACE_RC") $prodEnv (env "DEPLOY_NAMESPACE_PRODUCTION") $trueProdEnv (env "DEPLOY_NAMESPACE_PRODUCTION") $debugEnv "_example" -}}
{{- $deployNS := env "DEPLOY_NAMESPACE" | default ($deployNSEnv | get $localValues.globalEnvironmentName) -}}
{{- $_ := set $localValues "namespace" $deployNS -}}
{{- $allowDeployNSEnvUsage := env "DEPLOY_NAMESPACE_ENV_USAGE" | default "true" -}}
{{- /* hostname and optional URL override */ -}}
{{- $isysSubDomain := "" -}}
{{- if $localValues.isysName -}}
{{- $isysSubDomain = printf ".%s" $localValues.isysName -}}
{{- end -}}
{{- $publicDomain := (env "DEPLOY_SHORTNAME_OVERRIDE" | default $localValues.ciProjectName) -}}
{{- $_ := set $localValues "publicDomain" $publicDomain -}}
{{- $hostname := printf "%s%s" $publicDomain $isysSubDomain -}}
{{- $_ := set $localValues "hostname" (printf "%s%s%s.%s" $hostname $hostnameSuffixDelim $nameSuffix $localValues.domain) -}}
{{- $_ := printf "HOSTNAME_ %s " $localValues.hostname -}}
{{- /* Experimental features available only for projects from whitelist stored in DEPLOY_EXPERIMENTAL_WHITELIST */ -}}
{{- $experimentalFeatures := "false" -}}
{{- $whiteList := splitList "," (env "DEPLOY_EXPERIMENTAL_WHITELIST" | trim) -}}
{{- range $project := $whiteList -}}
{{- if eq $localValues.ciProjectPath ($project | trim) -}}
{{- $experimentalFeatures = "true" -}}
{{- end -}}
{{- end -}}
{{- $_ := set $localValues "experimentalFeatures" $experimentalFeatures -}}
{{- /* isysName/deployIsys validation */ -}}
{{- if and (or (eq $localValues.deployIsys "true") (eq $localValues.deployPsvc "true")) (not $localValues.isysName) -}}
{{- fail (printf "\n\n%sYou must provide ISYS_NAME envvar when DEPLOY_ISYS=true or DEPLOY_PSVC=true%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- /* deployIsys/deployExsys/deployBase validation */ -}}
{{- if and (or (eq $localValues.deployIsys "true") (eq $localValues.deployBase "true")) (or (eq $localValues.deployExsys "true") (eq $localValues.deployExsvc "true")) -}}
{{- fail (printf "\n\n%sDEPLOY_ISYS=true or DEPLOY_BASE=true are mutually exclusive with DEPLOY_EXSYS=true or DEPLOY_EXSVC=true%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- /* deployDepart, deployResources, deployZones, deployOrg validation */ -}}
{{- if and (or (eq $localValues.deployDepart "true") (eq $localValues.deployResources "true") (eq $localValues.deployZones "true") (eq $localValues.deploySystemRegistries "true") (eq $localValues.deployOrg "true")) (has "true" (list $localValues.deployBase $localValues.deployIsys $localValues.deployExsys $localValues.deployPsvc $localValues.deployExsvc)) -}}
{{- fail (printf "\n\n%sDEPLOY_DEPART=true, DEPLOY_RESOURCES=true, DEPLOY_ZONES=true, DEPLOY_SYSTEM_REGISTRIES=true, DEPLOY_ORG=true are mutually exclusive with any other deploy flags%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- $deployCount := 0 -}}
{{- if eq $localValues.deployDepart "true" -}}
{{- $deployCount = add1 $deployCount -}}
{{- end -}}
{{- if eq $localValues.deployResources "true" -}}
{{- $deployCount = add1 $deployCount -}}
{{- end -}}
{{- if eq $localValues.deployZones "true" -}}
{{- $deployCount = add1 $deployCount -}}
{{- end -}}
{{- if eq $localValues.deploySystemRegistries "true" -}}
{{- $deployCount = add1 $deployCount -}}
{{- end -}}
{{- if eq $localValues.deployOrg "true" -}}
{{- $deployCount = add1 $deployCount -}}
{{- end -}}
{{- if gt $deployCount 1 -}}
{{- fail (printf "\n\n%sDEPLOY_DEPART=true, DEPLOY_RESOURCES=true, DEPLOY_ZONES=true, DEPLOY_SYSTEM_REGISTRIES=true, DEPLOY_ORG=true are mutually exclusive%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- if and $localValues.isysName (not $localValues.depart) -}}
{{- fail (printf "\n\n%sYou must provide DEPART envvar when ISYS_NAME is defined%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- if and $localValues.exsysName (not $localValues.depart) -}}
{{- fail (printf "\n\n%sYou must provide DEPART envvar when EXSYS_NAME is defined%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- $mergedSecrets := dict -}}
{{- $zonesSecrets := dict -}}
{{- /* Default zone is also defined in Vault */ -}}
{{- if or (eq $localValues.deployBase "true") (eq $localValues.deployPsvc "true") (eq $localValues.deployExsvc "true") (eq $localValues.deployZones "true") -}}
{{- /* Secrets merging */ -}}
{{- /* Get plainSecrets and vault secrets keys */ -}}
{{- $vaultAddr := requiredEnv "VAULT_ADDR" -}}
{{- $vaultKVprefix := "manual_kv" -}}
{{- $vaultKV := printf "%s_%s" $vaultKVprefix $localValues.vaultSuffix -}}
{{- /* Get global environment wide vault keys */ -}}
{{- $secretPathGlobal := (printf "%s/%s" $vaultKV $localValues.ciProjectPath) -}}
{{- $vaultResponseGlobal := exec "vault-wrapper" (list $secretPathGlobal) | fromYaml -}}
{{- /* Try to get cluster wide vault keys which may not exists and it's ok */ -}}
{{- $secretPathCluster := (printf "%s/%s" $secretPathGlobal $localValues.cluster) -}}
{{- $vaultResponseCluster := exec "vault-wrapper" (list $secretPathCluster) | fromYaml -}}
{{- $mergedSecrets = mergeOverwrite $vaultResponseGlobal $vaultResponseCluster -}}
{{- /* Get secret keys of environment storage by zones */ -}}
{{- range $platformZone := $platformZones }}
{{- $secretZonePath := (printf "%s/%s/%s" $vaultKV $localValues.ciProjectPath $platformZone) -}}
{{- $vaultZoneResponse := exec "vault-wrapper" (list $secretZonePath) | fromYaml -}}
{{- $zonesSecrets = merge $zonesSecrets (dict $platformZone (merge $vaultZoneResponse $mergedSecrets)) -}}
{{- end}}
{{- end -}}
{{- if or (eq $localValues.deployIsys "true") (eq $localValues.deployBase "true") -}}
{{- /* isys/ns validation */ -}}
{{- if and (not (or $deployNS $localValues.isysName)) (eq $allowDeployNSEnvUsage "true") -}}
{{- fail (printf "\n\n%sProvide at least one of envvars:\n DEPLOY_NAMESPACE (or DEPLOY_NAMESPACE_DEV, DEPLOY_NAMESPACE_REGRESS, DEPLOY_NAMESPACE_STRESS, DEPLOY_NAMESPACE_RC, DEPLOY_NAMESPACE_PRODUCTION - depends on current environment)\n ISYS_NAME%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- if and (not $localValues.isysName) (ne $allowDeployNSEnvUsage "true") -}}
{{- fail (printf "\n\n%sYou must provide ISYS_NAME envvar when DEPLOY_NAMESPACE_ENV_USAGE == 'false'%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- /* namespace/isysName correlation */ -}}
{{- /* TODO: try kubernetes gitlab integration and https://docs.gitlab.com/ee/user/project/clusters/index.html#deployment-variables */ -}}
{{- $_ := set $localValues "isysNameWithEnv" (printf "%s%s%s" $localValues.isysName $nsSuffixDelim $nameSuffix) -}}
{{- if eq $allowDeployNSEnvUsage "true" -}}
{{- $_ := set $localValues "namespace" ($deployNS | default (printf "isys-%s" $localValues.isysNameWithEnv)) -}}
{{- else -}}
{{- $_ := set $localValues "namespace" (printf "isys-%s" $localValues.isysNameWithEnv) -}}
{{- end -}}
{{- end -}}
{{- $isysDynamicEnvironments := dict -}}
{{- if and (eq $localValues.deployIsys "true") (eq $localValues.globalEnvironmentName $devEnv) (eq $localValues.localRunTemplate "false") -}}
{{- range $dynamicEnvironmentFolderName := exec "sh" (list "-c" "if [ -d ../envs/dynamic ]; then find ../envs/dynamic -name \"dyn-*\" -type d 2>/dev/null; fi") | splitList "\n" -}}
{{- if ne $dynamicEnvironmentFolderName "" -}}
{{- $dynamicEnvironmentValues := dict -}}
{{- $dynamicEnvironmentFileName := printf "%s/values.yaml" $dynamicEnvironmentFolderName -}}
{{- $dynamicEnvironmentFileExistence := exec "sh" (list "-c" (printf "stat -t %s > /dev/null 2>&1; echo $?" $dynamicEnvironmentFileName)) | trim -}}
{{- if eq $dynamicEnvironmentFileExistence "0" -}}
{{- $dynamicEnvironmentValues = readFile $dynamicEnvironmentFileName | fromYaml -}}
{{- end -}}
{{- $dynamicEnvironmentCode := substr 16 (len $dynamicEnvironmentFolderName) $dynamicEnvironmentFolderName -}}
{{- $_ := set $isysDynamicEnvironments $dynamicEnvironmentCode $dynamicEnvironmentValues -}}
{{- end -}}
{{- end -}}
{{- end -}}
isysDynamicEnvironments: {{- $isysDynamicEnvironments | toYaml | nindent 2 }}
{{- if or (eq $localValues.deployExsys "true") (eq $localValues.deployExsvc "true") -}}
{{- /* exsysName/deployExsys/deployExsvc validation */ -}}
{{- if not $localValues.exsysName -}}
{{- fail (printf "\n\n%sYou must provide EXSYS_NAME when DEPLOY_EXSYS=true or DEPLOY_EXSVC=true%s" $ansi_red_bold $ansi_reset) -}}
{{- end -}}
{{- /* namespace/exsysName correlation */ -}}
{{- /* TODO: try kubernetes gitlab integration and https://docs.gitlab.com/ee/user/project/clusters/index.html#deployment-variables */ -}}
{{- $_ := set $localValues "exsysNameWithEnv" (printf "%s%s%s" $localValues.exsysName $nsSuffixDelim $nameSuffix) -}}
{{- $_ := set $localValues "namespace" (printf "exsys-%s" $localValues.exsysNameWithEnv) -}}
{{- end -}}
{{- $environmentFolders := list "default" $localValues.globalEnvironmentName -}}
{{- $assetsConfigFiles := dict -}}
{{- if or (eq $localValues.deployBase "true") (eq $localValues.deployPsvc "true") -}}
{{- if $localValues.dynamicEnvironmentCode -}}
{{- $_ := set $localValues "isysNameWithEnv" (printf "%s-%s" $localValues.isysName $localValues.dynamicEnvironmentCode) -}}
{{- $_ := set $localValues "namespace" (printf "isys-%s" $localValues.isysNameWithEnv) -}}
{{- $environmentFolders = append $environmentFolders (printf "dynamic/%s" $localValues.dynamicEnvironmentCode) -}}
{{- end -}}
{{- if (eq $localValues.serviceSide "frontend") -}}
{{- /* Предполагается наличие каталогов deploy/envs/default/assets/config и/или deploy/envs/<current_environment>/assets/config и любых файлов в нем.
Если каталоги и файлы отсутствуют, то игнорируется.
Если относительный путь файлов в deploy/envs/<current_environment>/assets/config совпадает с относительным путем файлов в deploy/envs/default/assets/config,
то файлы в <current_environment> имеют приоритет над файлами default. Учитывая приоритет в configMap будет записано соотв. содержимое.
Также обрабатывается каталог динамического окружения deploy/envs/dynamic/<dynamic_environment>/assets/config,
который имеет приоритет над <current_environment>. */ -}}
{{- range $assetsConfigFEnv := $environmentFolders -}}
{{- $assetsConfigFolder := printf "../envs/%s/assets/config" $assetsConfigFEnv -}}
{{- $assetsConfigFList := exec "sh" (list "-c" (printf "echo 'assetsConfig:'; if [ -d %s ]; then find -L %s -mindepth 1 -type f -printf '- \"%%p\"\n' 2>/dev/null; fi" $assetsConfigFolder $assetsConfigFolder) ) | fromYaml | get "assetsConfig" -}}
{{- range $assetsConfigf := $assetsConfigFList -}}
{{- $relPathAssetsConfig := regexReplaceAll "[^-_a-zA-Z0-9\\.]" (substr (add (len $assetsConfigFolder) 1 | int) (len $assetsConfigf) $assetsConfigf) "_" }}
{{ $_ := set $assetsConfigFiles $relPathAssetsConfig $assetsConfigf }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- /* Предполагается наличие каталогов deploy/envs/default/data и/или deploy/envs/<current_environment>/data и любых файлов в нем.
Если каталоги и файлы отсутствуют, то игнорируется.
Если относительный путь файлов в deploy/envs/<current_environment>/data совпадает с относительным путем файлов в deploy/envs/default/data,
то файлы в <current_environment> имеют приоритет над файлами default. Учитывая приоритет в configMap будет записано соотв. содержимое.
Также обрабатывается каталог динамического окружения deploy/envs/dynamic/<dynamic_environment>/data,
который имеет приоритет над <current_environment>. */ -}}
{{- $dataFiles := dict -}}
{{- range $dataFEnv := $environmentFolders -}}
{{- $dataFolder := printf "../envs/%s/data" $dataFEnv -}}
{{- $dataFList := exec "sh" (list "-c" (printf "echo 'data:'; if [ -d %s ]; then find -L %s -mindepth 1 -type f -printf '- \"%%p\"\n' 2>/dev/null; fi" $dataFolder $dataFolder) ) | fromYaml | get "data" -}}
{{- range $dataf := $dataFList -}}
{{- $relPath := regexReplaceAll "[^-_a-zA-Z0-9\\.]" (substr (add (len $dataFolder) 1 | int) (len $dataf) $dataf) "_" }}
{{ $_ := set $dataFiles $relPath $dataf }}
{{- end -}}
{{- end -}}
{{- $_ := set $localValues "mountData" (env "MOUNT_CM_DATA" | default "true") -}}
{{- /* Create default empty `deploy.env` for remove warning in ci job.
`deploy.env` used in _base-values.yaml.gotmpl, that might not be templated
in case when base chart release is disabled. */ -}}
{{- exec "dd" (list "if=/dev/null" "of=../../deploy.env") -}}
{{- /* Expose values */ -}}
{{- range $key, $value := $localValues }}
{{ $key }}: {{ $value }}
{{- end }}
dataFiles: {{- $dataFiles | toYaml | nindent 2 }}
assetsConfigFiles: {{- $assetsConfigFiles | toYaml | nindent 2 }}
platformDBSupportedTypes: {{- $platformDBSupportedTypes | toYaml | nindent 2 }}
{{ $grafanaDashboards := list -}}
{{- range $dashboardFEnv := $environmentFolders -}}
{{- $dashboardFolder := printf "../envs/%s/monitoring/dashboards" $dashboardFEnv -}}
{{- $dashboardFList := exec "sh" (list "-c" (printf "echo 'dashboard:'; if [ -d %s ]; then find -L %s -mindepth 1 -type f -name \"*.json\" -printf '- \"%%p\"\n' 2>/dev/null; fi" $dashboardFolder $dashboardFolder) ) | fromYaml | get "dashboard" -}}
{{- range $dashboardFile := $dashboardFList -}}
{{ $grafanaDashboards = append $grafanaDashboards $dashboardFile }}
{{- end -}}
{{- end -}}
grafanaDashboards: {{- $grafanaDashboards | toYaml | nindent 2 }}
{{ $prometheusRules := list -}}
{{- range $ruleFEnv := $environmentFolders -}}
{{- $ruleFolder := printf "../envs/%s/monitoring/alerts" $ruleFEnv -}}
{{- $ruleFList := exec "sh" (list "-c" (printf "echo 'rule:'; if [ -d %s ]; then find -L %s -mindepth 1 -type f -name \"*.rules\" -printf '- \"%%p\"\n' 2>/dev/null; fi" $ruleFolder $ruleFolder) ) | fromYaml | get "rule" -}}
{{- range $ruleFile := $ruleFList -}}
{{ $prometheusRules = append $prometheusRules $ruleFile }}
{{- end -}}
{{- end -}}
prometheusRules: {{- $prometheusRules | toYaml | nindent 2 }}
mergedSecrets: {{- $mergedSecrets | toYaml | nindent 2 }}
platformZones: {{- $platformZones | toYaml | nindent 2 }}
zonesSecrets: {{- $zonesSecrets | toYaml | nindent 2 }}
platformDefaultZone: {{- $platformDefaultZone | toYaml | nindent 2 -}}
954f205bd41e:~$