diff --git a/.devops/deploy-pipelines.yml b/.devops/deploy-pipelines.yml
index 6ae0d6e0..23d0062b 100644
--- a/.devops/deploy-pipelines.yml
+++ b/.devops/deploy-pipelines.yml
@@ -151,6 +151,7 @@ stages:
buildname="$(Build.BuildNumber) ${{ parameters.ENV }}"
echo "##vso[build.addbuildtag]${{ parameters.ENV }}"
echo "##vso[build.updatebuildnumber]$buildname"
+
- bash: |
echo "##vso[task.setvariable variable=LIGHTBEND_KEY]$(lightbend_key_secret)"
diff --git a/.github/workflows/04_release_deploy.yml b/.github/workflows/04_release_deploy.yml
index 5d99da9f..e35812eb 100644
--- a/.github/workflows/04_release_deploy.yml
+++ b/.github/workflows/04_release_deploy.yml
@@ -93,12 +93,13 @@ jobs:
steps:
- name: Make Release
id: release
- uses: pagopa/github-actions-template/maven-release@d91a1fd0b913c9830589be5d86cdb71c90813fae # v1.5.4
+ uses: pagopa/github-actions-template/sbt-release@change-working-directory # v1.11.1 TODO set version
with:
semver: ${{ needs.setup.outputs.semver }}
github_token: ${{ secrets.BOT_TOKEN_GITHUB }}
beta: ${{ inputs.beta }}
skip_ci: false
+ working_directory: "helm-fdr"
image:
needs: [ setup, release ]
@@ -106,13 +107,17 @@ jobs:
runs-on: ubuntu-latest
if: ${{ inputs.semver != 'skip' }}
steps:
- # - name: Build and Push
- # id: semver
- # uses: pagopa/github-actions-template/ghcr-build-push@v1.5.4
- # with:
- # branch: ${{ github.ref_name}}
- # github_token: ${{ secrets.GITHUB_TOKEN }}
- # tag: ${{ needs.release.outputs.version }}
+
+ - name: Checkout Java
+ uses: actions/checkout@v4
+
+ - name: Setup Java
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: '11'
+ cache: 'sbt'
+
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
with:
ref: ${{ github.ref_name }}
@@ -135,10 +140,16 @@ jobs:
type=ref,event=branch
type=sha
+ - name: Create Dockerfile
+ env:
+ LIGHTBEND_KEY: ${{ secrets.LIGHTBEND_KEY }}
+ run: |
+ ./sbt -v docker:stage
+
- name: Build and push
uses: docker/build-push-action@0a97817b6ade9f46837855d676c4cca3a2471fc9 # v4
with:
- context: .
+ context: ./fdr/target/docker/stage
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
diff --git a/.github/workflows/04h_deploy_with_github_runner.yml b/.github/workflows/04h_deploy_with_github_runner.yml
index 8720d37d..d650b9b2 100644
--- a/.github/workflows/04h_deploy_with_github_runner.yml
+++ b/.github/workflows/04h_deploy_with_github_runner.yml
@@ -41,6 +41,7 @@ jobs:
container_app_environment_name: ${{ vars.CONTAINER_APP_ENVIRONMENT_NAME }}
resource_group_name: ${{ vars.CONTAINER_APP_ENVIRONMENT_RESOURCE_GROUP_NAME }} # RG of the runner
pat_token: ${{ secrets.BOT_TOKEN_GITHUB }}
+ self_hosted_runner_image_tag: "latest"
deploy:
needs: [ create_runner ]
@@ -50,7 +51,7 @@ jobs:
environment: ${{ inputs.environment }}
steps:
- name: Deploy
- uses: pagopa/github-actions-template/aks-deploy@main
+ uses: pagopa/github-actions-template/aks-deploy@change-working-directory
with:
branch: ${{ github.ref_name }}
client_id: ${{ secrets.CD_CLIENT_ID }}
@@ -61,7 +62,8 @@ jobs:
cluster_name: ${{ vars.CLUSTER_NAME }}
resource_group: ${{ vars.CLUSTER_RESOURCE_GROUP }}
app_name: ${{ env.APP_NAME }}
- helm_upgrade_options: ${{ inputs.environment == 'dev' && ' --debug --set postgresql.enabled=true --set oracle.enabled=true --set oracledev.enabled=true --set oracleprod.enabled=true' || ' --debug --set postgresql.enabled=true --set oracle.enabled=true' }}
+ working_directory: 'helm-fdr'
+ helm_upgrade_options: --debug --set-file pagopafdrnododeipagamenti.configMapFromFile.logback\\.xml=./helm/config/logback.xml --set-file pagopafdrnododeipagamenti.configMapFromFile.config-app\\.conf=./helm/config/config-app.conf
cleanup_runner:
name: Cleanup Runner
@@ -81,45 +83,46 @@ jobs:
resource_group_name: ${{ vars.CONTAINER_APP_ENVIRONMENT_RESOURCE_GROUP_NAME }}
runner_name: ${{ needs.create_runner.outputs.runner_name }}
pat_token: ${{ secrets.BOT_TOKEN_GITHUB }}
+ self_hosted_runner_image_tag: "latest"
- update_openapi:
- needs: [ deploy ]
- runs-on: ubuntu-latest
- name: Update OpenAPI
- if: ${{ inputs.target == inputs.environment }}
- environment: ${{ inputs.environment }}
- steps:
- - name: Checkout
- id: checkout
- # from https://github.com/actions/checkout/commits/main
- uses: actions/checkout@1f9a0c22da41e6ebfa534300ef656657ea2c6707
- with:
- persist-credentials: false
-
- - name: Setup Terraform
- # from https://github.com/hashicorp/setup-terraform/commits/main
- uses: hashicorp/setup-terraform@8feba2b913ea459066180f9cb177f58a881cf146
- with:
- terraform_version: "1.3.6"
-
- - name: Login
- id: login
- # from https://github.com/Azure/login/commits/master
- uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
- with:
- client-id: ${{ secrets.CD_CLIENT_ID }}
- tenant-id: ${{ secrets.TENANT_ID }}
- subscription-id: ${{ secrets.SUBSCRIPTION_ID }}
-
-
- - name: Terraform Apply
- shell: bash
- run: |
- cd ./infra
- export ARM_CLIENT_ID="${{ secrets.CD_CLIENT_ID }}"
- export ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv)
- export ARM_TENANT_ID=$(az account show --query tenantId --output tsv)
- export ARM_USE_OIDC=true
- export ARM_ACCESS_KEY=$(az storage account keys list --resource-group io-infra-rg --account-name pagopainfraterraform${{inputs.environment}} --query '[0].value' -o tsv)
- bash ./terraform.sh init weu-${{ inputs.environment }}
- bash ./terraform.sh apply weu-${{ inputs.environment }} -auto-approve
+# update_openapi:
+# needs: [ deploy ]
+# runs-on: ubuntu-latest
+# name: Update OpenAPI
+# if: ${{ inputs.target == inputs.environment }}
+# environment: ${{ inputs.environment }}
+# steps:
+# - name: Checkout
+# id: checkout
+# # from https://github.com/actions/checkout/commits/main
+# uses: actions/checkout@1f9a0c22da41e6ebfa534300ef656657ea2c6707
+# with:
+# persist-credentials: false
+#
+# - name: Setup Terraform
+# # from https://github.com/hashicorp/setup-terraform/commits/main
+# uses: hashicorp/setup-terraform@8feba2b913ea459066180f9cb177f58a881cf146
+# with:
+# terraform_version: "1.3.6"
+#
+# - name: Login
+# id: login
+# # from https://github.com/Azure/login/commits/master
+# uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
+# with:
+# client-id: ${{ secrets.CD_CLIENT_ID }}
+# tenant-id: ${{ secrets.TENANT_ID }}
+# subscription-id: ${{ secrets.SUBSCRIPTION_ID }}
+#
+#
+# - name: Terraform Apply
+# shell: bash
+# run: |
+# cd ./infra
+# export ARM_CLIENT_ID="${{ secrets.CD_CLIENT_ID }}"
+# export ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv)
+# export ARM_TENANT_ID=$(az account show --query tenantId --output tsv)
+# export ARM_USE_OIDC=true
+# export ARM_ACCESS_KEY=$(az storage account keys list --resource-group io-infra-rg --account-name pagopainfraterraform${{inputs.environment}} --query '[0].value' -o tsv)
+# bash ./terraform.sh init weu-${{ inputs.environment }}
+# bash ./terraform.sh apply weu-${{ inputs.environment }} -auto-approve
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index f1cefec5..84dd48a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,7 +26,8 @@ lightbend.sbt
/helm/nodo/charts/
/helm/nodo-cron/charts/
*__pycache__
+.identity/.terraform/*!/.run/MainTest dev.run.xml
.identity/.terraform/*
/integration-test/reports/
/integration-test/results/
-**/.venv/
\ No newline at end of file
+**/.venv/
diff --git a/.identity/00_data.tf b/.identity/00_data.tf
index 6b957cd5..8601f29c 100644
--- a/.identity/00_data.tf
+++ b/.identity/00_data.tf
@@ -41,13 +41,13 @@ data "azurerm_key_vault_secret" "key_vault_sonar" {
key_vault_id = data.azurerm_key_vault.key_vault.id
}
-data "azurerm_key_vault_secret" "key_vault_bot_token" {
- name = "bot-token-github"
- key_vault_id = data.azurerm_key_vault.key_vault.id
+data "azurerm_key_vault_secret" "key_vault_bot_cd_token" {
+ name = "pagopa-platform-domain-github-bot-cd-pat"
+ key_vault_id = data.azurerm_key_vault.domain_key_vault.id
}
data "azurerm_key_vault_secret" "key_vault_slack_webhook_url" {
- name = "slack-webhook-url"
+ name = "pagopa-pagamenti-deploy-webhook"
key_vault_id = data.azurerm_key_vault.domain_key_vault.id
}
@@ -70,4 +70,9 @@ data "azurerm_key_vault_secret" "integration_test_subscription_key" {
count = var.env_short == "p" ? 0 : 1
name = "integration-test-fdr1-subscription-key"
key_vault_id = data.azurerm_key_vault.domain_key_vault.id
+}
+
+data "azurerm_key_vault_secret" "key_vault_lightbend_key" {
+ name = "lightbend-key"
+ key_vault_id = data.azurerm_key_vault.domain_key_vault.id
}
\ No newline at end of file
diff --git a/.identity/03_github_environment.tf b/.identity/03_github_environment.tf
index c202977f..0f72c7f2 100644
--- a/.identity/03_github_environment.tf
+++ b/.identity/03_github_environment.tf
@@ -62,6 +62,12 @@ resource "github_actions_environment_variable" "github_environment_runner_variab
value = each.value
}
+resource "github_actions_secret" "lightbend_key" {
+ repository = local.github.repository
+ secret_name = "LIGHTBEND_KEY"
+ plaintext_value = data.azurerm_key_vault_secret.key_vault_lightbend_key.value
+}
+
#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
resource "github_actions_secret" "secret_sonar_token" {
@@ -75,7 +81,7 @@ resource "github_actions_secret" "secret_bot_token" {
repository = local.github.repository
secret_name = "BOT_TOKEN_GITHUB"
- plaintext_value = data.azurerm_key_vault_secret.key_vault_bot_token.value
+ plaintext_value = data.azurerm_key_vault_secret.key_vault_bot_cd_token.value
}
#tfsec:ignore:github-actions-no-plain-text-action-secrets # not real secret
diff --git a/.run/MainTest dev.run.xml b/.run/MainTest dev.run.xml
index 2fc37ced..39a240cb 100644
--- a/.run/MainTest dev.run.xml
+++ b/.run/MainTest dev.run.xml
@@ -6,7 +6,7 @@
-
+
@@ -24,6 +24,11 @@
+
+
+
+
+
diff --git a/build.sbt b/build.sbt
index 1ef3f183..7ac31545 100644
--- a/build.sbt
+++ b/build.sbt
@@ -53,7 +53,7 @@ lazy val azureStorageBlob = "12.22.2"
lazy val azureStorageQueue = "12.18.0"
lazy val azureIdentity = "1.9.0"
-val lightbendKey = sys.env.getOrElse("LIGHTBEND_KEY","5IDMAq0poMpRYz1HD58Y7c8jQ9kjlFs_yKCMkg3tdeBTeqiL")
+val lightbendKey = sys.env("LIGHTBEND_KEY")
ThisBuild / organization := "eu.sia.pagopa"
ThisBuild / scalaVersion := "2.13.6"
diff --git a/helm-fdr/helm/Chart.yaml b/helm-fdr/helm/Chart.yaml
new file mode 100644
index 00000000..fe48efc6
--- /dev/null
+++ b/helm-fdr/helm/Chart.yaml
@@ -0,0 +1,11 @@
+apiVersion: v2
+name: pagopa-fdr-nodo-dei-pagamenti
+description: Flussi di rendicontazione Fase 1
+type: application
+version: 2.1.9
+appVersion: 2.1.9-30-deploy-gh-action
+dependencies:
+ - name: microservice-chart
+ version: 7.1.1
+ repository: "https://pagopa.github.io/aks-microservice-chart-blueprint"
+# alias: pagopafdrnododeipagamenti
diff --git a/helm-fdr/helm/config/config-app.conf b/helm-fdr/helm/config/config-app.conf
new file mode 100644
index 00000000..8d3039c7
--- /dev/null
+++ b/helm-fdr/helm/config/config-app.conf
@@ -0,0 +1,294 @@
+reference {
+ akka {
+ management {
+ http {
+ hostname = 127.0.0.1
+ hostname = ${?MANAGEMENT_HTTP_HOST}
+ port = 8558
+ port = ${?MANAGEMENT_HTTP_PORT}
+ bind-hostname = 0.0.0.0
+ bind-hostname = ${?MANAGEMENT_HTTP_BIND_HOST}
+ bind-port = 8558
+ bind-port = ${?MANAGEMENT_HTTP_BIND_PORT}
+ }
+ }
+ remote {
+ artery {
+ transport = tcp
+ canonical{
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_HOST}
+ port = 2552
+ port = ${?REMOTING_PORT}
+ }
+ bind {
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_BIND_HOST}
+ port = 2552
+ port = ${?REMOTING_BIND_PORT}
+ }
+ advanced {
+ maximum-frame-size = 16 MiB
+ }
+ }
+ log-remote-lifecycle-events = off
+ }
+
+ coordinated-shutdown {
+ phases {
+ service-requests-done {
+ timeout=135s
+ }
+ before-actor-system-terminate {
+ timeout=30s
+ }
+ }
+ }
+ coordinated-shutdown.exit-jvm = on
+
+ loggers = ["akka.event.slf4j.Slf4jLogger"]
+ loglevel = "DEBUG"
+ logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
+
+ http {
+ host-connection-pool {
+ max-open-requests = 2048
+ max-retries = 0
+ max-connection-backoff = 1000 ms
+ max-connections = 100
+ }
+ server.parsing.max-content-length = 120m
+ server.parsing.max-chunk-size= 120m
+ client.parsing.max-chunk-size= 120m
+ }
+ }
+ cinnamon {
+ akka {
+ actors {
+ "/user/*" {
+ report-by = class
+ }
+ }
+ }
+ prometheus {
+ exporters += http-server
+ http-server {
+ host = 127.0.0.1
+ host = ${?PROMETHEUS_HOST}
+ port = 9091
+ port = ${?PROMETHEUS_PORT}
+ }
+ }
+ slf4j.mdc {
+ serialization.limit = 2048 bytes
+ }
+ }
+ cinnamon.akka.http.servers {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ cinnamon.akka.http.clients {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ eventhub-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ blobstorage-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ queueAdd-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ http-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 32
+ }
+ throughput = 1
+ }
+ config{
+ http {
+ server-request-timeout = 125
+ connect-timeout = 1
+ }
+ ftp{
+ connect-timeout = 1000
+ }
+ db {
+ postgres {
+ profile = "slick.jdbc.PostgresProfile$"
+ db {
+ dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
+ connectionPool = disabled
+ #connectionPool = "HikariCP"
+ registerMbeans = true
+ #numThreads= 5
+ #queueSize= 500
+ socketTimeout = 3000
+ connectionTimeout = 3000
+ }
+ }
+ }
+ }
+ httpactor {
+ ssl-config {
+# debug {
+# all = true
+# }
+ loose {
+ acceptAnyCertificate = true
+ allowWeakCiphers = true
+ disableHostnameVerification = true
+ allowWeakProtocols = true
+ }
+ disabledSignatureAlgorithms = ["MD2", "MD4", "MD5"]
+ disabledKeyAlgorithms = ["DHE keySize < 2048", "ECDH keySize < 2048", "ECDHE keySize < 2048", "RSA keySize < 2048", "DSA keySize < 2048", "EC keySize < 224", "RSA keySize < 1024", "DSA keySize < 1024"]
+ trustManager = {
+ stores = [{
+ path: ${app.bundle.cacerts.path}
+ }]
+ }
+ }
+ }
+}
+db {
+ database {
+ fdr = ${config.db.postgres}
+ fdr.db.properties.user = ${DB_FDR_USER}
+ fdr.db.properties.password = ${DB_FDR_PASSWORD}
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ fdr.db.properties.url = ${DB_FDR_URL}
+ }
+}
+jobs{
+ all{
+ bundleTimeoutSeconds=86400 #24 ore
+
+ database {
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ }
+ }
+}
+app {
+ apiConfigCache{
+ url=${APIM_URL}"/api-config-cache/p/v1/stakeholders/fdr/cache/schemas/v1"
+ subscriptionKey=${API_CONFIG_CACHE_SUBSCRIPTION_KEY}
+ timeout=60
+ }
+ nexi{
+ nodoChiediElencoFlussiRendicontazione {
+ url=${APIM_URL}"/fdr-legacy/nodo-per-pa/v1"
+ }
+ nodoChiediFlussoRendicontazione {
+ url=${APIM_URL}"/fdr-legacy/nodo-per-pa/v1"
+ }
+ subscriptionKey=${FDR_LEGACY_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ fdr{
+ internalGetWithRevision {
+ url=${APIM_URL}"/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}"
+ method="GET"
+ }
+ internalGetFdrPayment {
+ url=${APIM_URL}"/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}/payments"
+ method="GET"
+ }
+ subscriptionKey=${FDR_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ queuefdr{
+ pushRetry {
+ url="http://localhost:8080/push/retry"
+ }
+ timeoutSeconds=60
+ }
+ reXmlLog=true
+ reJsonLog=true
+ callNexiToo=true
+ pdd-host-header-name=X-Original-Forwarded-For
+ chiediElencoFlussiRendicontazioneDayLimit=30
+ configScheduleMinutes=1
+ limitjobsSize=100
+ limitDays=30
+ coordinatedShutdown=true
+ waitAsyncProcesses=true
+ coordinatedShutdownHttpTimeout=130
+ coordinatedShutdownTerminationTimeout=20
+ routing.useMetrics=true
+ bundle.startup.timeout=120
+ bundle.checkUTF8=false
+ bundleTimeoutSeconds=600#10 minuti
+ additionalFdrValidations=${ADDITIONAL_FDR_VALIDATIONS}
+ azure-hub-event {
+ azure-sdk-client {
+ re-event {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_NAME}
+ connection-string = ${EVENT_HUB_RE_CONNECTION_STRING}
+ }
+ blob-re {
+ container-name = ${BLOB_RE_CONTAINER_NAME}
+ connection-string = ${BLOB_RE_CONNECTION_STRING}
+ }
+ fdr-qi-reported-iuv {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_REPORTEDIUV_NAME}
+ connection-string = ${EVENT_HUB_REPORTEDIUV_CONNECTION_STRING}
+ }
+ fdr-qi-flows {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_FLOWTX_NAME}
+ connection-string = ${EVENT_HUB_FLOWTX_CONNECTION_STRING}
+ }
+ }
+ }
+ azure-storage-blob {
+ enabled = true
+ container-name = ${AZURE_STORAGE_BLOB_NAME}
+ connection-string = ${AZURE_STORAGE_BLOB_CONNECTION_STRING}
+ }
+ azure-queue {
+ name = ${AZURE_QUEUE_NAME}
+ connection-string = ${AZURE_QUEUE_CONNECTION_STRING}
+ }
+ micrometer {
+ http-server {
+ host = 127.0.0.1
+ host = ${?MICROMETER_HOST}
+ port = 9092
+ port = ${?MICROMETER_PORT}
+ hostname = "fdr-micrometer"
+ hostname = ${?MICROMETER_HOSTNAME}
+ }
+ }
+}
\ No newline at end of file
diff --git a/helm-fdr/helm/config/dev/config-app.conf b/helm-fdr/helm/config/dev/config-app.conf
new file mode 100644
index 00000000..80eb59de
--- /dev/null
+++ b/helm-fdr/helm/config/dev/config-app.conf
@@ -0,0 +1,294 @@
+reference {
+ akka {
+ management {
+ http {
+ hostname = 127.0.0.1
+ hostname = ${?MANAGEMENT_HTTP_HOST}
+ port = 8558
+ port = ${?MANAGEMENT_HTTP_PORT}
+ bind-hostname = 0.0.0.0
+ bind-hostname = ${?MANAGEMENT_HTTP_BIND_HOST}
+ bind-port = 8558
+ bind-port = ${?MANAGEMENT_HTTP_BIND_PORT}
+ }
+ }
+ remote {
+ artery {
+ transport = tcp
+ canonical{
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_HOST}
+ port = 2552
+ port = ${?REMOTING_PORT}
+ }
+ bind {
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_BIND_HOST}
+ port = 2552
+ port = ${?REMOTING_BIND_PORT}
+ }
+ advanced {
+ maximum-frame-size = 16 MiB
+ }
+ }
+ log-remote-lifecycle-events = off
+ }
+
+ coordinated-shutdown {
+ phases {
+ service-requests-done {
+ timeout=135s
+ }
+ before-actor-system-terminate {
+ timeout=30s
+ }
+ }
+ }
+ coordinated-shutdown.exit-jvm = on
+
+ loggers = ["akka.event.slf4j.Slf4jLogger"]
+ loglevel = "DEBUG"
+ logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
+
+ http {
+ host-connection-pool {
+ max-open-requests = 2048
+ max-retries = 0
+ max-connection-backoff = 1000 ms
+ max-connections = 100
+ }
+ server.parsing.max-content-length = 120m
+ server.parsing.max-chunk-size= 120m
+ client.parsing.max-chunk-size= 120m
+ }
+ }
+ cinnamon {
+ akka {
+ actors {
+ "/user/*" {
+ report-by = class
+ }
+ }
+ }
+ prometheus {
+ exporters += http-server
+ http-server {
+ host = 127.0.0.1
+ host = ${?PROMETHEUS_HOST}
+ port = 9091
+ port = ${?PROMETHEUS_PORT}
+ }
+ }
+ slf4j.mdc {
+ serialization.limit = 2048 bytes
+ }
+ }
+ cinnamon.akka.http.servers {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ cinnamon.akka.http.clients {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ eventhub-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ blobstorage-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ queueAdd-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ http-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 32
+ }
+ throughput = 1
+ }
+ config{
+ http {
+ server-request-timeout = 125
+ connect-timeout = 1
+ }
+ ftp{
+ connect-timeout = 1000
+ }
+ db {
+ postgres {
+ profile = "slick.jdbc.PostgresProfile$"
+ db {
+ dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
+ connectionPool = disabled
+ #connectionPool = "HikariCP"
+ registerMbeans = true
+ #numThreads= 5
+ #queueSize= 500
+ socketTimeout = 3000
+ connectionTimeout = 3000
+ }
+ }
+ }
+ }
+ httpactor {
+ ssl-config {
+# debug {
+# all = true
+# }
+ loose {
+ acceptAnyCertificate = true
+ allowWeakCiphers = true
+ disableHostnameVerification = true
+ allowWeakProtocols = true
+ }
+ disabledSignatureAlgorithms = ["MD2", "MD4", "MD5"]
+ disabledKeyAlgorithms = ["DHE keySize < 2048", "ECDH keySize < 2048", "ECDHE keySize < 2048", "RSA keySize < 2048", "DSA keySize < 2048", "EC keySize < 224", "RSA keySize < 1024", "DSA keySize < 1024"]
+ trustManager = {
+ stores = [{
+ path: ${app.bundle.cacerts.path}
+ }]
+ }
+ }
+ }
+}
+db {
+ database {
+ fdr = ${config.db.postgres}
+ fdr.db.properties.user = ${DB_FDR_USER}
+ fdr.db.properties.password = ${DB_FDR_PASSWORD}
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ fdr.db.properties.url = ${DB_FDR_URL}
+ }
+}
+jobs{
+ all{
+ bundleTimeoutSeconds=86400 #24 ore
+
+ database {
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ }
+ }
+}
+app {
+ apiConfigCache{
+ url="https://api.dev.platform.pagopa.it/api-config-cache/p/v1/stakeholders/fdr/cache/schemas/v1"
+ subscriptionKey=${API_CONFIG_CACHE_SUBSCRIPTION_KEY}
+ timeout=60
+ }
+ nexi{
+ nodoChiediElencoFlussiRendicontazione {
+ url="https://api.dev.platform.pagopa.it/fdr-legacy/nodo-per-pa/v1"
+ }
+ nodoChiediFlussoRendicontazione {
+ url="https://api.dev.platform.pagopa.it/fdr-legacy/nodo-per-pa/v1"
+ }
+ subscriptionKey=${FDR_LEGACY_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ fdr{
+ internalGetWithRevision {
+ url="https://api.dev.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}"
+ method="GET"
+ }
+ internalGetFdrPayment {
+ url="https://api.dev.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}/payments"
+ method="GET"
+ }
+ subscriptionKey=${FDR_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ queuefdr{
+ pushRetry {
+ url="http://localhost:8080/push/retry"
+ }
+ timeoutSeconds=60
+ }
+ reXmlLog=true
+ reJsonLog=true
+ callNexiToo=true
+ pdd-host-header-name=X-Original-Forwarded-For
+ chiediElencoFlussiRendicontazioneDayLimit=30
+ configScheduleMinutes=1
+ limitjobsSize=100
+ limitDays=30
+ coordinatedShutdown=true
+ waitAsyncProcesses=true
+ coordinatedShutdownHttpTimeout=130
+ coordinatedShutdownTerminationTimeout=20
+ routing.useMetrics=true
+ bundle.startup.timeout=120
+ bundle.checkUTF8=false
+ bundleTimeoutSeconds=600#10 minuti
+ additionalFdrValidations=${ADDITIONAL_FDR_VALIDATIONS}
+ azure-hub-event {
+ azure-sdk-client {
+ re-event {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_NAME}
+ connection-string = ${EVENT_HUB_RE_CONNECTION_STRING}
+ }
+ blob-re {
+ container-name = ${BLOB_RE_CONTAINER_NAME}
+ connection-string = ${BLOB_RE_CONNECTION_STRING}
+ }
+ fdr-qi-reported-iuv {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_REPORTEDIUV_NAME}
+ connection-string = ${EVENT_HUB_REPORTEDIUV_CONNECTION_STRING}
+ }
+ fdr-qi-flows {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_FLOWTX_NAME}
+ connection-string = ${EVENT_HUB_FLOWTX_CONNECTION_STRING}
+ }
+ }
+ }
+ azure-storage-blob {
+ enabled = true
+ container-name = ${AZURE_STORAGE_BLOB_NAME}
+ connection-string = ${AZURE_STORAGE_BLOB_CONNECTION_STRING}
+ }
+ azure-queue {
+ name = ${AZURE_QUEUE_NAME}
+ connection-string = ${AZURE_QUEUE_CONNECTION_STRING}
+ }
+ micrometer {
+ http-server {
+ host = 127.0.0.1
+ host = ${?MICROMETER_HOST}
+ port = 9092
+ port = ${?MICROMETER_PORT}
+ hostname = "fdr-micrometer"
+ hostname = ${?MICROMETER_HOSTNAME}
+ }
+ }
+}
\ No newline at end of file
diff --git a/helm-fdr/helm/config/dev/logback.xml b/helm-fdr/helm/config/dev/logback.xml
new file mode 100644
index 00000000..ac0613dd
--- /dev/null
+++ b/helm-fdr/helm/config/dev/logback.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app
+
+
+ apptimestamp
+
+
+
+
+
+
+
+ elapsed
+
+
+
+ true
+
+ {
+ "elapsed": "#asLong{%mdc{elapsed}}"
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/helm-fdr/helm/config/logback.xml b/helm-fdr/helm/config/logback.xml
new file mode 100644
index 00000000..ac0613dd
--- /dev/null
+++ b/helm-fdr/helm/config/logback.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app
+
+
+ apptimestamp
+
+
+
+
+
+
+
+ elapsed
+
+
+
+ true
+
+ {
+ "elapsed": "#asLong{%mdc{elapsed}}"
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/helm-fdr/helm/config/prod/config-app.conf b/helm-fdr/helm/config/prod/config-app.conf
new file mode 100644
index 00000000..560e78b9
--- /dev/null
+++ b/helm-fdr/helm/config/prod/config-app.conf
@@ -0,0 +1,294 @@
+reference {
+ akka {
+ management {
+ http {
+ hostname = 127.0.0.1
+ hostname = ${?MANAGEMENT_HTTP_HOST}
+ port = 8558
+ port = ${?MANAGEMENT_HTTP_PORT}
+ bind-hostname = 0.0.0.0
+ bind-hostname = ${?MANAGEMENT_HTTP_BIND_HOST}
+ bind-port = 8558
+ bind-port = ${?MANAGEMENT_HTTP_BIND_PORT}
+ }
+ }
+ remote {
+ artery {
+ transport = tcp
+ canonical{
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_HOST}
+ port = 2552
+ port = ${?REMOTING_PORT}
+ }
+ bind {
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_BIND_HOST}
+ port = 2552
+ port = ${?REMOTING_BIND_PORT}
+ }
+ advanced {
+ maximum-frame-size = 16 MiB
+ }
+ }
+ log-remote-lifecycle-events = off
+ }
+
+ coordinated-shutdown {
+ phases {
+ service-requests-done {
+ timeout=135s
+ }
+ before-actor-system-terminate {
+ timeout=30s
+ }
+ }
+ }
+ coordinated-shutdown.exit-jvm = on
+
+ loggers = ["akka.event.slf4j.Slf4jLogger"]
+ loglevel = "DEBUG"
+ logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
+
+ http {
+ host-connection-pool {
+ max-open-requests = 2048
+ max-retries = 0
+ max-connection-backoff = 1000 ms
+ max-connections = 100
+ }
+ server.parsing.max-content-length = 120m
+ server.parsing.max-chunk-size= 120m
+ client.parsing.max-chunk-size= 120m
+ }
+ }
+ cinnamon {
+ akka {
+ actors {
+ "/user/*" {
+ report-by = class
+ }
+ }
+ }
+ prometheus {
+ exporters += http-server
+ http-server {
+ host = 127.0.0.1
+ host = ${?PROMETHEUS_HOST}
+ port = 9091
+ port = ${?PROMETHEUS_PORT}
+ }
+ }
+ slf4j.mdc {
+ serialization.limit = 2048 bytes
+ }
+ }
+ cinnamon.akka.http.servers {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ cinnamon.akka.http.clients {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ eventhub-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ blobstorage-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ queueAdd-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ http-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 32
+ }
+ throughput = 1
+ }
+ config{
+ http {
+ server-request-timeout = 125
+ connect-timeout = 1
+ }
+ ftp{
+ connect-timeout = 1000
+ }
+ db {
+ postgres {
+ profile = "slick.jdbc.PostgresProfile$"
+ db {
+ dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
+ connectionPool = disabled
+ #connectionPool = "HikariCP"
+ registerMbeans = true
+ numThreads= 40
+ queueSize= 4000
+ socketTimeout = 3000
+ connectionTimeout = 3000
+ }
+ }
+ }
+ }
+ httpactor {
+ ssl-config {
+# debug {
+# all = true
+# }
+ loose {
+ acceptAnyCertificate = true
+ allowWeakCiphers = true
+ disableHostnameVerification = true
+ allowWeakProtocols = true
+ }
+ disabledSignatureAlgorithms = ["MD2", "MD4", "MD5"]
+ disabledKeyAlgorithms = ["DHE keySize < 2048", "ECDH keySize < 2048", "ECDHE keySize < 2048", "RSA keySize < 2048", "DSA keySize < 2048", "EC keySize < 224", "RSA keySize < 1024", "DSA keySize < 1024"]
+ trustManager = {
+ stores = [{
+ path: ${app.bundle.cacerts.path}
+ }]
+ }
+ }
+ }
+}
+db {
+ database {
+ fdr = ${config.db.postgres}
+ fdr.db.properties.user = ${DB_FDR_USER}
+ fdr.db.properties.password = ${DB_FDR_PASSWORD}
+ fdr.db.numThreads = 20
+ fdr.db.queueSize= 2000
+ fdr.db.properties.url = ${DB_FDR_URL}
+ }
+}
+jobs{
+ all{
+ bundleTimeoutSeconds=86400 #24 ore
+
+ database {
+ fdr.db.numThreads = 20
+ fdr.db.queueSize= 2000
+ }
+ }
+}
+app {
+ apiConfigCache{
+ url="https://api.platform.pagopa.it/api-config-cache/p/v1/stakeholders/fdr/cache/schemas/v1"
+ subscriptionKey=${API_CONFIG_CACHE_SUBSCRIPTION_KEY}
+ timeout=60
+ }
+ nexi{
+ nodoChiediElencoFlussiRendicontazione {
+ url="https://api.platform.pagopa.it/nodo/nodo-per-pa/v1"
+ }
+ nodoChiediFlussoRendicontazione {
+ url="https://api.platform.pagopa.it/nodo/nodo-per-pa/v1"
+ }
+ subscriptionKey=${FDR_LEGACY_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ fdr{
+ internalGetWithRevision {
+ url="https://api.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}"
+ method="GET"
+ }
+ internalGetFdrPayment {
+ url="https://api.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}/payments"
+ method="GET"
+ }
+ subscriptionKey=${FDR_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ queuefdr{
+ pushRetry {
+ url="http://localhost:8080/push/retry"
+ }
+ timeoutSeconds=60
+ }
+ reXmlLog=false
+ reJsonLog=true
+ callNexiToo=true
+ pdd-host-header-name=X-Original-Forwarded-For
+ chiediElencoFlussiRendicontazioneDayLimit=30
+ configScheduleMinutes=1
+ limitjobsSize=100
+ limitDays=30
+ coordinatedShutdown=true
+ waitAsyncProcesses=true
+ coordinatedShutdownHttpTimeout=130
+ coordinatedShutdownTerminationTimeout=20
+ routing.useMetrics=true
+ bundle.startup.timeout=120
+ bundle.checkUTF8=false
+ bundleTimeoutSeconds=600#10 minuti
+ additionalFdrValidations=${ADDITIONAL_FDR_VALIDATIONS}
+ azure-hub-event {
+ azure-sdk-client {
+ re-event {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_NAME}
+ connection-string = ${EVENT_HUB_RE_CONNECTION_STRING}
+ }
+ blob-re {
+ container-name = ${BLOB_RE_CONTAINER_NAME}
+ connection-string = ${BLOB_RE_CONNECTION_STRING}
+ }
+ fdr-qi-reported-iuv {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_REPORTEDIUV_NAME}
+ connection-string = ${EVENT_HUB_REPORTEDIUV_CONNECTION_STRING}
+ }
+ fdr-qi-flows {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_FLOWTX_NAME}
+ connection-string = ${EVENT_HUB_FLOWTX_CONNECTION_STRING}
+ }
+ }
+ }
+ azure-storage-blob {
+ enabled = true
+ container-name = ${AZURE_STORAGE_BLOB_NAME}
+ connection-string = ${AZURE_STORAGE_BLOB_CONNECTION_STRING}
+ }
+ azure-queue {
+ name = ${AZURE_QUEUE_NAME}
+ connection-string = ${AZURE_QUEUE_CONNECTION_STRING}
+ }
+ micrometer {
+ http-server {
+ host = 127.0.0.1
+ host = ${?MICROMETER_HOST}
+ port = 9092
+ port = ${?MICROMETER_PORT}
+ hostname = "fdr-micrometer"
+ hostname = ${?MICROMETER_HOSTNAME}
+ }
+ }
+}
\ No newline at end of file
diff --git a/helm-fdr/helm/config/prod/logback.xml b/helm-fdr/helm/config/prod/logback.xml
new file mode 100644
index 00000000..24feb40a
--- /dev/null
+++ b/helm-fdr/helm/config/prod/logback.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app
+
+
+ apptimestamp
+
+
+
+
+
+
+
+ elapsed
+
+
+
+ true
+
+ {
+ "elapsed": "#asLong{%mdc{elapsed}}"
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/helm-fdr/helm/config/uat/config-app.conf b/helm-fdr/helm/config/uat/config-app.conf
new file mode 100644
index 00000000..2f9ce4ac
--- /dev/null
+++ b/helm-fdr/helm/config/uat/config-app.conf
@@ -0,0 +1,294 @@
+reference {
+ akka {
+ management {
+ http {
+ hostname = 127.0.0.1
+ hostname = ${?MANAGEMENT_HTTP_HOST}
+ port = 8558
+ port = ${?MANAGEMENT_HTTP_PORT}
+ bind-hostname = 0.0.0.0
+ bind-hostname = ${?MANAGEMENT_HTTP_BIND_HOST}
+ bind-port = 8558
+ bind-port = ${?MANAGEMENT_HTTP_BIND_PORT}
+ }
+ }
+ remote {
+ artery {
+ transport = tcp
+ canonical{
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_HOST}
+ port = 2552
+ port = ${?REMOTING_PORT}
+ }
+ bind {
+ hostname = 127.0.0.1
+ hostname = ${?REMOTING_BIND_HOST}
+ port = 2552
+ port = ${?REMOTING_BIND_PORT}
+ }
+ advanced {
+ maximum-frame-size = 16 MiB
+ }
+ }
+ log-remote-lifecycle-events = off
+ }
+
+ coordinated-shutdown {
+ phases {
+ service-requests-done {
+ timeout=135s
+ }
+ before-actor-system-terminate {
+ timeout=30s
+ }
+ }
+ }
+ coordinated-shutdown.exit-jvm = on
+
+ loggers = ["akka.event.slf4j.Slf4jLogger"]
+ loglevel = "DEBUG"
+ logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
+
+ http {
+ host-connection-pool {
+ max-open-requests = 2048
+ max-retries = 0
+ max-connection-backoff = 1000 ms
+ max-connections = 100
+ }
+ server.parsing.max-content-length = 120m
+ server.parsing.max-chunk-size= 120m
+ client.parsing.max-chunk-size= 120m
+ }
+ }
+ cinnamon {
+ akka {
+ actors {
+ "/user/*" {
+ report-by = class
+ }
+ }
+ }
+ prometheus {
+ exporters += http-server
+ http-server {
+ host = 127.0.0.1
+ host = ${?PROMETHEUS_HOST}
+ port = 9091
+ port = ${?PROMETHEUS_PORT}
+ }
+ }
+ slf4j.mdc {
+ serialization.limit = 2048 bytes
+ }
+ }
+ cinnamon.akka.http.servers {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ cinnamon.akka.http.clients {
+ "*:*" {
+ paths {
+ "*" {
+ metrics = on
+ }
+ }
+ }
+ }
+ eventhub-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ blobstorage-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ queueAdd-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 16
+ }
+ throughput = 1
+ }
+ http-dispatcher {
+ type = Dispatcher
+ executor = "thread-pool-executor"
+ thread-pool-executor {
+ fixed-pool-size = 32
+ }
+ throughput = 1
+ }
+ config{
+ http {
+ server-request-timeout = 125
+ connect-timeout = 1
+ }
+ ftp{
+ connect-timeout = 1000
+ }
+ db {
+ postgres {
+ profile = "slick.jdbc.PostgresProfile$"
+ db {
+ dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
+ connectionPool = disabled
+ #connectionPool = "HikariCP"
+ registerMbeans = true
+ #numThreads= 5
+ #queueSize= 500
+ socketTimeout = 3000
+ connectionTimeout = 3000
+ }
+ }
+ }
+ }
+ httpactor {
+ ssl-config {
+# debug {
+# all = true
+# }
+ loose {
+ acceptAnyCertificate = true
+ allowWeakCiphers = true
+ disableHostnameVerification = true
+ allowWeakProtocols = true
+ }
+ disabledSignatureAlgorithms = ["MD2", "MD4", "MD5"]
+ disabledKeyAlgorithms = ["DHE keySize < 2048", "ECDH keySize < 2048", "ECDHE keySize < 2048", "RSA keySize < 2048", "DSA keySize < 2048", "EC keySize < 224", "RSA keySize < 1024", "DSA keySize < 1024"]
+ trustManager = {
+ stores = [{
+ path: ${app.bundle.cacerts.path}
+ }]
+ }
+ }
+ }
+}
+db {
+ database {
+ fdr = ${config.db.postgres}
+ fdr.db.properties.user = ${DB_FDR_USER}
+ fdr.db.properties.password = ${DB_FDR_PASSWORD}
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ fdr.db.properties.url = ${DB_FDR_URL}
+ }
+}
+jobs{
+ all{
+ bundleTimeoutSeconds=86400 #24 ore
+
+ database {
+ #fdr.db.numThreads = 5
+ #fdr.db.queueSize= 500
+ }
+ }
+}
+app {
+ apiConfigCache{
+ url="https://api.uat.platform.pagopa.it/api-config-cache/p/v1/stakeholders/fdr/cache/schemas/v1"
+ subscriptionKey=${API_CONFIG_CACHE_SUBSCRIPTION_KEY}
+ timeout=60
+ }
+ nexi{
+ nodoChiediElencoFlussiRendicontazione {
+ url="https://api.uat.platform.pagopa.it/fdr-legacy/nodo-per-pa/v1"
+ }
+ nodoChiediFlussoRendicontazione {
+ url="https://api.uat.platform.pagopa.it/fdr-legacy/nodo-per-pa/v1"
+ }
+ subscriptionKey=${FDR_LEGACY_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ fdr{
+ internalGetWithRevision {
+ url="https://api.uat.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}"
+ method="GET"
+ }
+ internalGetFdrPayment {
+ url="https://api.uat.platform.pagopa.it/fdr-internal/service/v1/internal/organizations/{organizationId}/fdrs/{fdr}/revisions/{revision}/psps/{pspId}/payments"
+ method="GET"
+ }
+ subscriptionKey=${FDR_SUBSCRIPTION_KEY}
+ timeoutSeconds=60
+ }
+ queuefdr{
+ pushRetry {
+ url="http://localhost:8080/push/retry"
+ }
+ timeoutSeconds=60
+ }
+ reXmlLog=true
+ reJsonLog=true
+ callNexiToo=true
+ pdd-host-header-name=X-Original-Forwarded-For
+ chiediElencoFlussiRendicontazioneDayLimit=30
+ configScheduleMinutes=1
+ limitjobsSize=100
+ limitDays=30
+ coordinatedShutdown=true
+ waitAsyncProcesses=true
+ coordinatedShutdownHttpTimeout=130
+ coordinatedShutdownTerminationTimeout=20
+ routing.useMetrics=true
+ bundle.startup.timeout=120
+ bundle.checkUTF8=false
+ bundleTimeoutSeconds=600#10 minuti
+ additionalFdrValidations=${ADDITIONAL_FDR_VALIDATIONS}
+ azure-hub-event {
+ azure-sdk-client {
+ re-event {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_NAME}
+ connection-string = ${EVENT_HUB_RE_CONNECTION_STRING}
+ }
+ blob-re {
+ container-name = ${BLOB_RE_CONTAINER_NAME}
+ connection-string = ${BLOB_RE_CONNECTION_STRING}
+ }
+ fdr-qi-reported-iuv {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_REPORTEDIUV_NAME}
+ connection-string = ${EVENT_HUB_REPORTEDIUV_CONNECTION_STRING}
+ }
+ fdr-qi-flows {
+ client-timeoput-ms = 5000
+ event-hub-name = ${EVENT_HUB_FLOWTX_NAME}
+ connection-string = ${EVENT_HUB_FLOWTX_CONNECTION_STRING}
+ }
+ }
+ }
+ azure-storage-blob {
+ enabled = true
+ container-name = ${AZURE_STORAGE_BLOB_NAME}
+ connection-string = ${AZURE_STORAGE_BLOB_CONNECTION_STRING}
+ }
+ azure-queue {
+ name = ${AZURE_QUEUE_NAME}
+ connection-string = ${AZURE_QUEUE_CONNECTION_STRING}
+ }
+ micrometer {
+ http-server {
+ host = 127.0.0.1
+ host = ${?MICROMETER_HOST}
+ port = 9092
+ port = ${?MICROMETER_PORT}
+ hostname = "fdr-micrometer"
+ hostname = ${?MICROMETER_HOSTNAME}
+ }
+ }
+}
\ No newline at end of file
diff --git a/helm-fdr/helm/config/uat/logback.xml b/helm-fdr/helm/config/uat/logback.xml
new file mode 100644
index 00000000..24feb40a
--- /dev/null
+++ b/helm-fdr/helm/config/uat/logback.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app
+
+
+ apptimestamp
+
+
+
+
+
+
+
+ elapsed
+
+
+
+ true
+
+ {
+ "elapsed": "#asLong{%mdc{elapsed}}"
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/helm-fdr/helm/values-dev.yaml b/helm-fdr/helm/values-dev.yaml
new file mode 100644
index 00000000..6b1a1a3c
--- /dev/null
+++ b/helm-fdr/helm/values-dev.yaml
@@ -0,0 +1,160 @@
+microservice-chart:
+ namespace: "fdr"
+ nameOverride: ""
+ fullnameOverride: "fdr-1"
+ terminationGracePeriodSeconds: 140
+ image:
+ repository: ghcr.io/pagopa/pagopa-fdr-nodo-dei-pagamenti
+ tag: "2.1.9-30-deploy-gh-action"
+ pullPolicy: Always
+ deployment:
+ create: true
+ canaryDelivery:
+ create: false
+ livenessProbe:
+ httpGet:
+ path: /alive
+ port: 8558
+ initialDelaySeconds: 15
+ failureThreshold: 10
+ periodSeconds: 5
+ readinessProbe:
+ httpGet:
+ path: /ready
+ port: 8558
+ initialDelaySeconds: 10
+ failureThreshold: 10
+ periodSeconds: 5
+ externalConfigMap:
+ create: true
+ configMaps:
+ - name: fdr-cacerts
+ key: cacerts
+ tmpVolumeMount:
+ create: true
+ resources:
+ requests:
+ memory: "640M"
+ cpu: "512m"
+ limits:
+ memory: "8Gi"
+ cpu: "2560m"
+ autoscaling:
+ enable: true
+ minReplica: 1
+ maxReplica: 1
+ pollingInterval: 10 # seconds
+ triggers:
+ - type: cpu
+ metricType: Utilization
+ metadata:
+ value: "70"
+ - type: memory
+ metricType: Utilization
+ metadata:
+ value: "80"
+ advanced:
+ restoreToOriginalReplicaCount: false
+ horizontalPodAutoscalerConfig:
+ behavior:
+ scaleDown:
+ stabilizationWindowSeconds: 300
+ policies:
+ - type: Pods
+ value: 1
+ periodSeconds: 20
+ scaleUp:
+ stabilizationWindowSeconds: 0
+ policies:
+ - type: Percent
+ value: 100
+ periodSeconds: 20
+ envConfig:
+ AZURE_INSIGHTS_ENABLED: "true"
+ APPLICATIONINSIGHTS_ROLE_NAME: "fdr-nodo"
+ MANAGEMENT_HTTP_PORT: "8558"
+ MANAGEMENT_HTTP_BIND_HOST: "0.0.0.0"
+ MANAGEMENT_HTTP_BIND_PORT: "8558"
+ SERVICE_HTTP_PORT: "8080"
+ SERVICE_HTTP_BIND_HOST: "0.0.0.0"
+ SERVICE_HTTP_BIND_PORT: "8080"
+ PROMETHEUS_HOST: "0.0.0.0"
+ PROMETHEUS_PORT: "9091"
+ MICROMETER_HOST: "0.0.0.0"
+ MICROMETER_PORT: "9092"
+ TZ: "Europe/Rome"
+ AKKA_SYSTEM_NAME: "pagopafdrnodo"
+ JAVA_OPTS: >-
+ -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+ DB_FDR_URL: jdbc:postgresql://fdr-db.d.internal.postgresql.pagopa.it:6432/fdr?sslmode=require&prepareThreshold=0
+ DB_FDR_USER: fdr
+ INSTANCE: DEV
+ EVENT_HUB_NAME: "fdr-re"
+ BLOB_RE_CONTAINER_NAME: "payload"
+ AZURE_STORAGE_BLOB_NAME: "xmlsharefile"
+ ADDITIONAL_FDR_VALIDATIONS: "true"
+ AZURE_QUEUE_NAME: "queueconversion"
+ EVENT_HUB_FLOWTX_NAME: "fdr-qi-flows"
+ EVENT_HUB_REPORTEDIUV_NAME: "fdr-qi-reported-iuv"
+ APIM_URL: "https://api.dev.platform.pagopa.it"
+ envSecret:
+ APPLICATIONINSIGHTS_CONNECTION_STRING: "ai-connection-string"
+ EVENT_HUB_RE_CONNECTION_STRING: "azure-event-hub-re-connection-string"
+ AZURE_STORAGE_BLOB_CONNECTION_STRING: "fdr-sa-connection-string"
+ AZURE_QUEUE_CONNECTION_STRING: "fdr-sa-connection-string"
+ BLOB_RE_CONNECTION_STRING: "fdr-re-sa-connection-string"
+ API_CONFIG_CACHE_SUBSCRIPTION_KEY: "api-config-cache-subscription-key-string"
+ FDR_SUBSCRIPTION_KEY: "fdr-internal-product-subscription-key"
+ FDR_LEGACY_SUBSCRIPTION_KEY: "fdr-legacy-subscription-key"
+ DB_FDR_PASSWORD: "db-fdr-password"
+ EVENT_HUB_REPORTEDIUV_CONNECTION_STRING: "fdr-qi-reported-iuv-tx-connection-string"
+ EVENT_HUB_FLOWTX_CONNECTION_STRING: "fdr-qi-flows-tx-connection-string"
+ keyvault:
+ name: "pagopa-d-fdr-kv"
+ tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
+ envFieldRef:
+ MANAGEMENT_HTTP_HOST: "status.podIP"
+ SERVICE_HTTP_HOST: "status.podIP"
+ MICROMETER_HOSTNAME: "metadata.name"
+ NAMESPACE: "metadata.namespace"
+ CINNAMON_HOST: "metadata.name"
+ APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
+ APP_NAME: "metadata.labels['app.kubernetes.io/name']"
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: node_type
+ operator: In
+ values:
+ - user
+ serviceMonitor:
+ create: true
+ endpoints:
+ - interval: 10s #micrometer
+ targetPort: 9092
+ path: /
+ - interval: 10s #cinnamon
+ targetPort: 9091
+ path: /metrics
+ ports:
+ - 8080 #http
+ - 8558 #akka-management
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ - 3000 #jmx debug port
+ service:
+ create: true
+ type: ClusterIP
+ ports:
+ - 8080 #http
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ ingress:
+ create: true
+ host: "weudev.fdr.internal.dev.platform.pagopa.it"
+ path: /pagopa-fdr-nodo-service(/|$)(.*)
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "130"
+ proxyBodySize: 100m
diff --git a/helm-fdr/helm/values-prod.yaml b/helm-fdr/helm/values-prod.yaml
new file mode 100644
index 00000000..0c24b0b8
--- /dev/null
+++ b/helm-fdr/helm/values-prod.yaml
@@ -0,0 +1,160 @@
+fdrnodo:
+ namespace: "fdr"
+ nameOverride: ""
+ fullnameOverride: ""
+ terminationGracePeriodSeconds: 140
+ image:
+ repository: pagopapcommonacr.azurecr.io/pagopafdrnododeipagamenti
+ tag: 1.0.0-SNAPSHOT
+ livenessProbe:
+ httpGet:
+ path: /alive
+ port: 8558
+ initialDelaySeconds: 15
+ failureThreshold: 10
+ periodSeconds: 5
+ readinessProbe:
+ httpGet:
+ path: /ready
+ port: 8558
+ initialDelaySeconds: 10
+ failureThreshold: 10
+ periodSeconds: 5
+ externalConfigMap:
+ create: true
+ configMaps:
+ - name: fdr-cacerts
+ key: cacerts
+ tmpVolumeMount:
+ create: true
+ resources:
+ requests:
+ memory: "6Gi"
+ cpu: "2048m"
+ limits:
+ memory: "8Gi"
+ cpu: "2560m"
+ autoscaling:
+ enable: true
+ minReplica: 4
+ maxReplica: 18
+ pollingInterval: 10 # seconds
+ triggers:
+ - type: cpu
+ metricType: Utilization
+ metadata:
+ value: "70"
+ - type: memory
+ metricType: Utilization
+ metadata:
+ value: "80"
+ advanced:
+ restoreToOriginalReplicaCount: false
+ horizontalPodAutoscalerConfig:
+ behavior:
+ scaleDown:
+ stabilizationWindowSeconds: 300
+ policies:
+ - type: Pods
+ value: 1
+ periodSeconds: 20
+ scaleUp:
+ stabilizationWindowSeconds: 0
+ policies:
+ - type: Percent
+ value: 100
+ periodSeconds: 20
+ envConfig:
+ AZURE_INSIGHTS_ENABLED: "true"
+ APPLICATIONINSIGHTS_ROLE_NAME: "fdr-nodo"
+ MANAGEMENT_HTTP_PORT: "8558"
+ MANAGEMENT_HTTP_BIND_HOST: "0.0.0.0"
+ MANAGEMENT_HTTP_BIND_PORT: "8558"
+ SERVICE_HTTP_PORT: "8080"
+ SERVICE_HTTP_BIND_HOST: "0.0.0.0"
+ SERVICE_HTTP_BIND_PORT: "8080"
+ PROMETHEUS_HOST: "0.0.0.0"
+ PROMETHEUS_PORT: "9091"
+ MICROMETER_HOST: "0.0.0.0"
+ MICROMETER_PORT: "9092"
+ TZ: "Europe/Rome"
+ AKKA_SYSTEM_NAME: "pagopafdrnodo"
+ JAVA_OPTS: >-
+ -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+ DB_FDR_URL: jdbc:postgresql://fdr-db.p.internal.postgresql.pagopa.it:6432/nodo?sslmode=require&prepareThreshold=0¤tSchema=offline
+ DB_FDR_USER: fdr
+ INSTANCE: PROD
+ EVENT_HUB_NAME: "fdr-re"
+ BLOB_RE_CONTAINER_NAME: "payload"
+ AZURE_STORAGE_BLOB_NAME: "xmlsharefile"
+ ADDITIONAL_FDR_VALIDATIONS: "true"
+ AZURE_QUEUE_NAME: "queueconversion"
+ EVENT_HUB_FLOWTX_NAME: "fdr-qi-flows"
+ EVENT_HUB_REPORTEDIUV_NAME: "fdr-qi-reported-iuv"
+ secretProvider:
+ create: true
+ envSecrets:
+ APPLICATIONINSIGHTS_CONNECTION_STRING: "ai-connection-string"
+ EVENT_HUB_RE_CONNECTION_STRING: "azure-event-hub-re-connection-string"
+ AZURE_STORAGE_BLOB_CONNECTION_STRING: "fdr-sa-connection-string"
+ AZURE_QUEUE_CONNECTION_STRING: "fdr-sa-connection-string"
+ BLOB_RE_CONNECTION_STRING: "fdr-re-sa-connection-string"
+ API_CONFIG_CACHE_SUBSCRIPTION_KEY: "api-config-cache-subscription-key-string"
+ FDR_SUBSCRIPTION_KEY: "fdr-internal-product-subscription-key"
+ FDR_LEGACY_SUBSCRIPTION_KEY: "fdr-legacy-subscription-key"
+ DB_FDR_PASSWORD: "db-fdr-password"
+ EVENT_HUB_REPORTEDIUV_CONNECTION_STRING: "fdr-qi-reported-iuv-tx-connection-string"
+ EVENT_HUB_FLOWTX_CONNECTION_STRING: "fdr-qi-flows-tx-connection-string"
+ keyvault:
+ name: "pagopa-p-fdr-kv"
+ tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
+ envFieldRef:
+ MANAGEMENT_HTTP_HOST: "status.podIP"
+ SERVICE_HTTP_HOST: "status.podIP"
+ MICROMETER_HOSTNAME: "metadata.name"
+ NAMESPACE: "metadata.namespace"
+ CINNAMON_HOST: "metadata.name"
+ APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
+ APP_NAME: "metadata.labels['app.kubernetes.io/name']"
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: node_type
+ operator: In
+ values:
+ - user
+ serviceMonitor:
+ create: true
+ endpoints:
+ - interval: 10s #micrometer
+ targetPort: 9092
+ path: /
+ - interval: 10s #cinnamon
+ targetPort: 9091
+ path: /metrics
+ ports:
+ - 8080 #http
+ - 8558 #akka-management
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ - 3000 #jmx debug port
+ service:
+ type: ClusterIP
+ ports:
+ - 8080 #http
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ ingress:
+ create: true
+ host: "weuprod.fdr.internal.platform.pagopa.it"
+ path: /pagopa-fdr-nodo-service(/|$)(.*)
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "130"
+ proxyBodySize: 100m
+microservice-chart:
+ image:
+ tag: 2.1.9-30-deploy-gh-action
+ canaryDelivery:
+ create: false
diff --git a/helm-fdr/helm/values-uat.yaml b/helm-fdr/helm/values-uat.yaml
new file mode 100644
index 00000000..2705d6a5
--- /dev/null
+++ b/helm-fdr/helm/values-uat.yaml
@@ -0,0 +1,161 @@
+fdrnodo:
+ namespace: "fdr"
+ nameOverride: ""
+ fullnameOverride: ""
+ terminationGracePeriodSeconds: 140
+ image:
+ repository: ghcr.io/pagopa/pagopa-fdr-nodo-dei-pagamenti
+ tag: "2.1.9-27-PAGOPA-2394"
+ pullPolicy: Always
+ livenessProbe:
+ httpGet:
+ path: /alive
+ port: 8558
+ initialDelaySeconds: 15
+ failureThreshold: 10
+ periodSeconds: 5
+ readinessProbe:
+ httpGet:
+ path: /ready
+ port: 8558
+ initialDelaySeconds: 10
+ failureThreshold: 10
+ periodSeconds: 5
+ externalConfigMap:
+ create: true
+ configMaps:
+ - name: fdr-cacerts
+ key: cacerts
+ tmpVolumeMount:
+ create: true
+ resources:
+ requests:
+ memory: "640M"
+ cpu: "512m"
+ limits:
+ memory: "8Gi"
+ cpu: "2560m"
+ autoscaling:
+ enable: true
+ minReplica: 1
+ maxReplica: 2
+ pollingInterval: 10 # seconds
+ triggers:
+ - type: cpu
+ metricType: Utilization
+ metadata:
+ value: "70"
+ - type: memory
+ metricType: Utilization
+ metadata:
+ value: "80"
+ advanced:
+ restoreToOriginalReplicaCount: false
+ horizontalPodAutoscalerConfig:
+ behavior:
+ scaleDown:
+ stabilizationWindowSeconds: 300
+ policies:
+ - type: Pods
+ value: 1
+ periodSeconds: 20
+ scaleUp:
+ stabilizationWindowSeconds: 0
+ policies:
+ - type: Percent
+ value: 100
+ periodSeconds: 20
+ envConfig:
+ AZURE_INSIGHTS_ENABLED: "true"
+ APPLICATIONINSIGHTS_ROLE_NAME: "fdr-nodo"
+ MANAGEMENT_HTTP_PORT: "8558"
+ MANAGEMENT_HTTP_BIND_HOST: "0.0.0.0"
+ MANAGEMENT_HTTP_BIND_PORT: "8558"
+ SERVICE_HTTP_PORT: "8080"
+ SERVICE_HTTP_BIND_HOST: "0.0.0.0"
+ SERVICE_HTTP_BIND_PORT: "8080"
+ PROMETHEUS_HOST: "0.0.0.0"
+ PROMETHEUS_PORT: "9091"
+ MICROMETER_HOST: "0.0.0.0"
+ MICROMETER_PORT: "9092"
+ TZ: "Europe/Rome"
+ AKKA_SYSTEM_NAME: "pagopafdrnodo"
+ JAVA_OPTS: >-
+ -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+ DB_FDR_URL: jdbc:postgresql://fdr-db.u.internal.postgresql.pagopa.it:6432/fdr?sslmode=require&prepareThreshold=0
+ DB_FDR_USER: fdr
+ INSTANCE: UAT
+ EVENT_HUB_NAME: "fdr-re"
+ BLOB_RE_CONTAINER_NAME: "payload"
+ AZURE_STORAGE_BLOB_NAME: "xmlsharefile"
+ ADDITIONAL_FDR_VALIDATIONS: "true"
+ AZURE_QUEUE_NAME: "queueconversion"
+ EVENT_HUB_FLOWTX_NAME: "fdr-qi-flows"
+ EVENT_HUB_REPORTEDIUV_NAME: "fdr-qi-reported-iuv"
+ secretProvider:
+ create: true
+ envSecrets:
+ APPLICATIONINSIGHTS_CONNECTION_STRING: "ai-connection-string"
+ EVENT_HUB_RE_CONNECTION_STRING: "azure-event-hub-re-connection-string"
+ AZURE_STORAGE_BLOB_CONNECTION_STRING: "fdr-sa-connection-string"
+ AZURE_QUEUE_CONNECTION_STRING: "fdr-sa-connection-string"
+ BLOB_RE_CONNECTION_STRING: "fdr-re-sa-connection-string"
+ API_CONFIG_CACHE_SUBSCRIPTION_KEY: "api-config-cache-subscription-key-string"
+ FDR_SUBSCRIPTION_KEY: "fdr-internal-product-subscription-key"
+ FDR_LEGACY_SUBSCRIPTION_KEY: "fdr-legacy-subscription-key"
+ DB_FDR_PASSWORD: "db-fdr-password"
+ EVENT_HUB_REPORTEDIUV_CONNECTION_STRING: "fdr-qi-reported-iuv-tx-connection-string"
+ EVENT_HUB_FLOWTX_CONNECTION_STRING: "fdr-qi-flows-tx-connection-string"
+ keyvault:
+ name: "pagopa-u-fdr-kv"
+ tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
+ envFieldRef:
+ MANAGEMENT_HTTP_HOST: "status.podIP"
+ SERVICE_HTTP_HOST: "status.podIP"
+ MICROMETER_HOSTNAME: "metadata.name"
+ NAMESPACE: "metadata.namespace"
+ CINNAMON_HOST: "metadata.name"
+ APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
+ APP_NAME: "metadata.labels['app.kubernetes.io/name']"
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: node_type
+ operator: In
+ values:
+ - user
+ serviceMonitor:
+ create: true
+ endpoints:
+ - interval: 10s #micrometer
+ targetPort: 9092
+ path: /
+ - interval: 10s #cinnamon
+ targetPort: 9091
+ path: /metrics
+ ports:
+ - 8080 #http
+ - 8558 #akka-management
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ - 3000 #jmx debug port
+ service:
+ type: ClusterIP
+ ports:
+ - 8080 #http
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ ingress:
+ create: true
+ host: "weuuat.fdr.internal.uat.platform.pagopa.it"
+ path: /pagopa-fdr-nodo-service(/|$)(.*)
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "130"
+ proxyBodySize: 100m
+microservice-chart:
+ image:
+ tag: 2.1.9-30-deploy-gh-action
+ canaryDelivery:
+ create: false
diff --git a/helm-fdr/run.sh b/helm-fdr/run.sh
new file mode 100644
index 00000000..67709bf2
--- /dev/null
+++ b/helm-fdr/run.sh
@@ -0,0 +1,123 @@
+#!/bin/bash
+
+DIR=.
+NAME=pagopafdrnodo
+NAMESPACE=fdr
+FILE_CONFIG_PATH_LOGBACK=../config/dev/logback.xml
+FILE_CONFIG_PATH_CONFIGAPP=../config/dev/config-app.conf
+
+location=weu
+
+usage() {
+ echo "Usage: $0 [--update] [--canary] [--install] [--uninstall] [--weight ] [--version ]" 1>&2;
+ echo ""
+ echo "Options:"
+ echo "--update Run helm dep update before installing."
+ echo "--canary Install canary version of the application."
+ echo "--install Install the application."
+ echo "--uninstall Uninstall the application."
+ echo "--weight Specify a weight percentage for the canary version."
+ echo "--version Specify a version for the deploy."
+ exit 1;
+}
+
+while [[ "$#" -gt 0 ]]; do
+ case $1 in
+ --update)
+ update=1
+ ;;
+ --canary)
+ canary=1
+ ;;
+ --install)
+ install=1
+ ;;
+ --uninstall)
+ uninstall=1
+ ;;
+ --weight)
+ shift
+ weight="$1"
+ ;;
+ --weu)
+ location="weu"
+ ;;
+ --neu)
+ location="neu"
+ ;;
+ --version)
+ shift
+ version="$1"
+ ;;
+ -h|--help)
+ usage
+ exit 0
+ ;;
+
+ *)
+ echo "Unknown parameter passed: $1" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [ "$install" == 1 ]; then
+ if [ ! -n "$version" ]; then
+ echo "Error: Version parameter required with --install." >&2
+ exit 1
+ fi
+fi
+
+if [ -n "$update" ]; then
+ echo "Updating dependencies"
+ helm dep update $DIR
+fi
+
+if [ "$location" == "weu" ]; then
+ valuesFile=$location-dev/values-dev.yaml
+ context="pagopa-d-$location-dev-aks"
+else
+ valuesFile=$location-dev/values-dev.yaml
+ context="pagopa-d-$location-dev-aks"
+fi
+
+echo "Using
+context | $context
+valuesFile | $valuesFile
+"
+
+kubectl config use-context $context
+
+if [ "$install" == 1 ]; then
+ if [ "$canary" == 1 ]; then
+ echo "Installing canary version $version"
+ helm upgrade --dry-run --namespace $NAMESPACE --install --values $valuesFile \
+ --set fdr.canaryDelivery.create="true" \
+ --set fdr.image.tag=$version \
+ --set-file fdr.configMapFromFile.logback\\.xml=$FILE_CONFIG_PATH_LOGBACK \
+ --set-file fdr.configMapFromFile.config-app\\.conf=$FILE_CONFIG_PATH_CONFIGAPP \
+ $NAME-canary $DIR > dry-canary.yaml
+ exit 0
+ else
+ echo "Installing stable version $version"
+ helm upgrade --namespace $NAMESPACE --install --values $valuesFile \
+ --set fdrnodo.image.tag=$version cj-ftp-upload.image.tag=$version\
+ --set-file fdrnodo.configMapFromFile.logback\\.xml=$FILE_CONFIG_PATH_LOGBACK cj-ftp-upload.configMapFromFile.logback\\.xml=$FILE_CONFIG_PATH_LOGBACK \
+ --set-file fdrnodo.configMapFromFile.config-app\\.conf=$FILE_CONFIG_PATH_CONFIGAPP cj-ftp-upload.configMapFromFile.config-app\\.conf=$FILE_CONFIG_PATH_CONFIGAPP\
+ $NAME $DIR
+ exit 0
+ fi
+fi
+
+if [ "$uninstall" == 1 ]; then
+ if [ "$canary" == 1 ]; then
+ echo "Uninstalling canary"
+ helm uninstall --namespace $NAMESPACE --wait $NAME-canary
+ else
+ echo "Uninstalling stable"
+ helm uninstall --namespace $NAMESPACE --wait $NAME
+ fi
+fi
+
+exit 0
\ No newline at end of file
diff --git a/helm/fdr/Chart.yaml b/helm/fdr/Chart.yaml
index 5cbb6444..f97b46e5 100644
--- a/helm/fdr/Chart.yaml
+++ b/helm/fdr/Chart.yaml
@@ -1,11 +1,11 @@
apiVersion: v2
-name: fdr-chart
-description: Flussi di rendicontazione
+name: pagopa-fdr-nodo-dei-pagamenti
+description: Flussi di rendicontazione Fase 1
type: application
version: 2.1.9
appVersion: 2.1.9
dependencies:
- name: microservice-chart
- version: 3.0.0
+ version: 7.1.1
repository: "https://pagopa.github.io/aks-microservice-chart-blueprint"
- alias: fdrnodo
+ alias: pagopafdrnododeipagamenti
diff --git a/helm/fdr/weu-dev/values-dev.yaml b/helm/fdr/weu-dev/values-dev.yaml
index 90da029f..caaafe39 100644
--- a/helm/fdr/weu-dev/values-dev.yaml
+++ b/helm/fdr/weu-dev/values-dev.yaml
@@ -4,7 +4,7 @@ fdrnodo:
fullnameOverride: ""
terminationGracePeriodSeconds: 140
image:
- repository: pagopadcommonacr.azurecr.io/pagopafdrnododeipagamenti
+ repository: ghcr.io/pagopa/pagopa-fdr-nodo-dei-pagamenti
tag: 1.0.0-SNAPSHOT
livenessProbe:
httpGet:
@@ -76,8 +76,8 @@ fdrnodo:
TZ: "Europe/Rome"
AKKA_SYSTEM_NAME: "pagopafdrnodo"
JAVA_OPTS: >-
- -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
- DB_FDR_URL: jdbc:postgresql://pagopa-d-weu-fdr-flexible-postgresql.postgres.database.azure.com:6432/fdr?sslmode=require&prepareThreshold=0
+ -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+ DB_FDR_URL: jdbc:postgresql://fdr-db.d.internal.postgresql.pagopa.it:6432/fdr?sslmode=require&prepareThreshold=0
DB_FDR_USER: fdr
INSTANCE: DEV
EVENT_HUB_NAME: "fdr-re"
diff --git a/helm/fdr/weu-uat/values-uat.yaml b/helm/fdr/weu-uat/values-uat.yaml
index cfc20645..b102d2ac 100644
--- a/helm/fdr/weu-uat/values-uat.yaml
+++ b/helm/fdr/weu-uat/values-uat.yaml
@@ -1,11 +1,12 @@
-fdrnodo:
+pagopafdrnododeipagamenti:
namespace: "fdr"
nameOverride: ""
- fullnameOverride: ""
+ fullnameOverride: "fdrnododeipagamenti"
terminationGracePeriodSeconds: 140
image:
- repository: pagopaucommonacr.azurecr.io/pagopafdrnododeipagamenti
- tag: 1.0.0-SNAPSHOT
+ repository: ghcr.io/pagopa/pagopa-fdr-nodo-dei-pagamenti
+ tag: "2.1.9-27-PAGOPA-2394"
+ pullPolicy: Always
livenessProbe:
httpGet:
path: /alive
@@ -20,6 +21,36 @@ fdrnodo:
initialDelaySeconds: 10
failureThreshold: 10
periodSeconds: 5
+ deployment:
+ create: true
+ serviceMonitor:
+ create: true
+ endpoints:
+ - interval: 10s #micrometer
+ targetPort: 9092
+ path: /
+ - interval: 10s #cinnamon
+ targetPort: 9091
+ path: /metrics
+ ports:
+ - 8080 #http
+ - 8558 #akka-management
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ - 3000 #jmx debug port
+ service:
+ create: true
+ type: ClusterIP
+ ports:
+ - 8080 #http
+ - 9091 #cinnamon
+ - 9092 #micrometer
+ ingress:
+ create: true
+ host: "weuuat.fdr.internal.uat.platform.pagopa.it"
+ path: /pagopa-fdr-nodo-service(/|$)(.*)
+ annotations:
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "130"
externalConfigMap:
create: true
configMaps:
@@ -48,22 +79,22 @@ fdrnodo:
metricType: Utilization
metadata:
value: "80"
- advanced:
- restoreToOriginalReplicaCount: false
- horizontalPodAutoscalerConfig:
- behavior:
- scaleDown:
- stabilizationWindowSeconds: 300
- policies:
- - type: Pods
- value: 1
- periodSeconds: 20
- scaleUp:
- stabilizationWindowSeconds: 0
- policies:
- - type: Percent
- value: 100
- periodSeconds: 20
+ # advanced:
+ # restoreToOriginalReplicaCount: false
+ # horizontalPodAutoscalerConfig:
+ # behavior:
+ # scaleDown:
+ # stabilizationWindowSeconds: 300
+ # policies:
+ # - type: Pods
+ # value: 1
+ # periodSeconds: 20
+ # scaleUp:
+ # stabilizationWindowSeconds: 0
+ # policies:
+ # - type: Percent
+ # value: 100
+ # periodSeconds: 20
envConfig:
AZURE_INSIGHTS_ENABLED: "true"
APPLICATIONINSIGHTS_ROLE_NAME: "fdr-nodo"
@@ -80,7 +111,7 @@ fdrnodo:
TZ: "Europe/Rome"
AKKA_SYSTEM_NAME: "pagopafdrnodo"
JAVA_OPTS: >-
- -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+ -Dlogback.configurationFile=/mnt/file-config/logback.xml -Dconfig.app=/mnt/file-config/config-app.conf -Dapp.bundle.cacerts.path=/mnt/file-config-external/fdr-cacerts/cacerts -Duser.language=it -Duser.country=IT -Duser.timezone=Europe/Rome -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=3000 -Dcom.sun.management.jmxremote.rmi.port=3000 -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
DB_FDR_URL: jdbc:postgresql://fdr-db.u.internal.postgresql.pagopa.it:6432/fdr?sslmode=require&prepareThreshold=0
DB_FDR_USER: fdr
INSTANCE: UAT
@@ -125,31 +156,3 @@ fdrnodo:
operator: In
values:
- user
- serviceMonitor:
- create: true
- endpoints:
- - interval: 10s #micrometer
- targetPort: 9092
- path: /
- - interval: 10s #cinnamon
- targetPort: 9091
- path: /metrics
- ports:
- - 8080 #http
- - 8558 #akka-management
- - 9091 #cinnamon
- - 9092 #micrometer
- - 3000 #jmx debug port
- service:
- type: ClusterIP
- ports:
- - 8080 #http
- - 9091 #cinnamon
- - 9092 #micrometer
- ingress:
- create: true
- host: "weuuat.fdr.internal.uat.platform.pagopa.it"
- path: /pagopa-fdr-nodo-service(/|$)(.*)
- annotations:
- nginx.ingress.kubernetes.io/proxy-read-timeout: "130"
- proxyBodySize: 100m
diff --git a/openapi/openapi.json b/openapi/openapi.json
index 1aa1b32c..64411ba4 100644
--- a/openapi/openapi.json
+++ b/openapi/openapi.json
@@ -4,7 +4,7 @@
"title": "FDR - Flussi di rendicontazione FASE 1",
"description": "FDR - Flussi di rendicontazione FASE 1",
"termsOfService": "https://www.pagopa.gov.it/",
- "version": "2.1.9"
+ "version": "2.1.9-30-deploy-gh-action"
},
"servers": [
{
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 9758fe49..4813dfd1 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,6 +1,6 @@
scalacOptions := Seq("-feature", "-unchecked", "-deprecation", "-encoding", "utf8")
-val lightbendKey = sys.env.getOrElse("LIGHTBEND_KEY","5IDMAq0poMpRYz1HD58Y7c8jQ9kjlFs_yKCMkg3tdeBTeqiL")
+val lightbendKey = sys.env("LIGHTBEND_KEY")
ThisBuild / resolvers += "lightbend-commercial-mvn" at s"https://repo.lightbend.com/pass/${lightbendKey}/commercial-releases"
ThisBuild / resolvers += Resolver.url(
diff --git a/version.sbt b/version.sbt
index e4618e81..6c76e17a 100644
--- a/version.sbt
+++ b/version.sbt
@@ -1 +1 @@
-ThisBuild / version := "2.1.9"
+ThisBuild / version := "2.1.9-30-deploy-gh-action"