Skip to content

Latest commit

 

History

History
306 lines (236 loc) · 28.3 KB

release-v15.0.0.md

File metadata and controls

306 lines (236 loc) · 28.3 KB

Helm Release Notes

Date Revision Description
2023-02-20 0 Initial draft
2023-03-23 0 Initial release
  • For BREAKING CHANGES, please review the section #5 "Breaking Changes" below.
  • For KNOWN ISSUES, please review the section #8 "Known Issues" below.

0. Summary

Major updates with this release include:

  1. Externalize Backend Dependencies for services including TTK, 3PPI services - which helps make maintenance of Mojaloop easier (and reduces breaking changes)
  2. Utilize externalized secrets for user/password management (and removing plain text passwords in config files)
  3. Support sub-scenarios for transfers and thereby use-cases that are enabled by this field

Refer to full feature and bug fix list below for more info; and testing improvements listed separately.

1. New Features

  1. mojaloop/#2887 Externalize Backend Dependencies (helm/pull/535, helm/pull/551), closes mojaloop/#2887
  2. mojaloop/#3083 Externalize Backend Dependencies for Thirdparty Helm Charts (helm/pull/538, helm/pull/551), closes mojaloop/#3083
  3. mojaloop/#3091 Externalize Backend Dependencies for TTK Helm Charts (helm/pull/538, helm/pull/551), closes mojaloop/#3091
  4. mojaloop/#3082 Utilize externalized secrets for user/password management (helm/pull/538, helm/pull/551), closes mojaloop/#3082
  5. mojaloop/#3078: get /trans callback is wrong for exp trans (central-ledger/pull/938), closes mojaloop/#3078
  6. mojaloop/#3129: separate mongodb uri config (central-ledger/pull/945), closes mojaloop/#3129
  7. mojaloop/#3131: separate mongodb uri config (bulk-api-adapter/pull/95), closes mojaloop/#3131
  8. mojaloop/#3139: rework config to accept env variables for DB (auth-service/pull/132), closes mojaloop/#3131
  9. mojaloop/3023: align ttk func tests from ttk testcases repo (sdk-scheme-adapter/issues/#425) (sdk-scheme-adapter/commit/973faa7)
  10. mojaloop/#3074: sync DFSP backend api with api-snippets (sdk-scheme-adapter/issues/#428) (sdk-scheme-adapter/commit/edf601e), closes mojaloop/#3074
  11. mojaloop/#3053: add support for subscenarios to backend, outboud and ilp (sdk-scheme-adapter/issues/#430) (sdk-scheme-adapter/commit/f6c739a), closes mojaloop/#3053
  12. mojaloop/#2928: upgrade logger to central-services-logger (mojaloop-simulator/issues/#148) (mojaloop-simulator/commit/8a1573e, 6583dec), closes mojaloop/#2928
  13. chore: update backend simulator api (mojaloop-simulator/issues/#156) (mojaloop-simulator/commit/ff253a5)
  14. mojaloop/#3053: update sdk backend api (mojaloop-simulator/issues/#159) (mojaloop-simulator/commit/165e08a), closes mojaloop/#3053
  15. mojaloop/#2740: add test currencies to api (mojaloop-simulator/issues/#154) (mojaloop-simulator/commit/64c80a1), closes mojaloop/#2740
  16. mojaloop/#3130: alter db config and allow password env setting (ml-testing-toolkit/pull/237), closes mojaloop/#3130
  17. mojaloop/#3133 add report name customization and saving option (ml-testing-toolkit-ui/pull/171), closes mojaloop/#3133
  18. mojaloop/#3133 add option to specify report name saved to TTK backend (ml-testing-toolkit-client-lib/pull/6), closes mojaloop/#3133

2. Bug Fixes

  1. mojaloop/#3163: Thirdparty Helm Charts are not scalable due to the Kubernetes Service being a headless service (helm/pull/551), closes mojaloop/#3163
  2. mojaloop/#3171: cronjob support for k8s v1.25 (helm/pull/559), closes mojaloop/#3171
  3. mojaloop/#3152: initial open settlementWindow is failing on clean install (central-ledger/pull/946), closes mojaloop/#3152
  4. mojaloop/#3020: add checks for when mongodb is disabled (central-ledger/pull/927), closes mojaloop/#3020
  5. mojaloop/#2644: missing error-code for the transfer in the central-ledger db (central-ledger/pull/929), closes mojaloop/#2644
  6. mojaloop/#3096: unable to upgrade knex dependency on centralLedger (central-ledger/pull/939), closes mojaloop/#3096
  7. mojaloop/#2891: fix outbound fspiop headers (sdk-scheme-adapter/issues/#436) (sdk-scheme-adapter/commit/bfce0b0)
  8. mojaloop/#3132: wso2 auth fix fspiop handler (sdk-scheme-adapter/issues/#437) (sdk-scheme-adapter/commit/4260361)
  9. mojaloop/#3137: bulk transactions sdk crash (sdk-scheme-adapter/issues/#440) (sdk-scheme-adapter/commit/acb7a01)
  10. mojaloop/#3156: ML Toolkit Mobile sim demo having issues with ML V15 RC-1 (helm/commit/32f2699), closes mojaloop/#3156
  11. mojaloop/#3053: fix config async changes (ml-testing-toolkit/pull/229), closes mojaloop/#3053
  12. mojaloop/#3053: fix config fetching for monitoring payload condition (ml-testing-toolkit/pull/228), closes mojaloop/#3053
  13. mojaloop/#3076: refactor break on error (ml-testing-toolkit/pull/227), closes mojaloop/#3076
  14. mojaloop/#3000: parameterized the inbound request size (ml-testing-toolkit/pull/221), closes mojaloop/#3000
  15. mojaloop/#3165: post clean up scripts failing (mojaloop/testing-toolkit-test-cases/pull/117, mojaloop/helm/pull/557), closes mojaloop/#3000

3. Application versions

  1. ml-api-adapter: v14.0.0
  2. central-ledger: v16.3.1 -> v17.0.1 (Compare)
  3. account-lookup-service: v14.0.0
  4. quoting-service: v15.0.2
  5. central-settlement: v15.0.0
  6. central-event-processor: v12.0.0
  7. bulk-api-adapter: v14.2.0 -> v15.0.0 (Compare)
  8. email-notifier: v12.0.0
  9. als-oracle-pathfinder: v12.0.0
  10. transaction-requests-service: v14.0.1
  11. finance-portal-ui: v10.4.3 (DEPRECATED)
  12. finance-portal-backend-service: v15.0.2 (DEPRECATED)
  13. settlement-management: v11.0.0 (DEPRECATED)
  14. operator-settlement: v11.0.0 (DEPRECATED)
  15. event-sidecar: v12.0.0
  16. event-stream-processor: v12.0.0-snapshot.7
  17. simulator: 12.0.0
  18. mojaloop-simulator: v13.0.1 -> v14.0.1 (Compare)
  19. sdk-scheme-adapter: v21.4.0 -> v22.0.1 (Compare)
  20. ml-testing-toolkit: v15.7.0 -> v16.0.0 (Compare)
  21. ml-testing-toolkit-ui: v15.1.3 -> v15.2.1 (Compare)
  22. ml-testing-toolkit-client-lib: v1.1.1 -> v1.2.0 (Compare)
  23. auth-service: v13.0.2 -> v14.0.0 (Compare)
  24. als-consent-oracle: v0.2.0
  25. thirdparty-api-svc: v13.0.2
  26. thirdparty-sdk: v15.1.0

4. Application release notes

  1. ml-api-adapter - https://github.com/mojaloop/ml-api-adapter/releases/tag/v14.0.0
  2. central-ledger - https://github.com/mojaloop/central-ledger/releases/tag/v17.0.1
  3. account-lookup-service - https://github.com/mojaloop/account-lookup-service/releases/tag/v14.0.0
  4. quoting-service - https://github.com/mojaloop/quoting-service/releases/tag/v15.0.2
  5. central-settlement- https://github.com/mojaloop/central-settlement/releases/tag/v15.0.0
  6. central-event-processor - https://github.com/mojaloop/central-event-processor/releases/tag/v12.0.0
  7. bulk-api-adapter - https://github.com/mojaloop/bulk-api-adapter/releases/tag/v15.0.0
  8. email-notifier - https://github.com/mojaloop/email-notifier/releases/tag/v12.0.0
  9. als-oracle-pathfinder - https://github.com/mojaloop/als-oracle-pathfinder/releases/tag/v12.0.0
  10. transaction-requests-service - https://github.com/mojaloop/transaction-requests-service/releases/tag/v14.0.1
  11. finance-portal-ui (DEPRECATED) - https://github.com/mojaloop/finance-portal-ui/releases/tag/v10.4.3
  12. finance-portal-backend-service (DEPRECATED) - https://github.com/mojaloop/finance-portal-backend-service/releases/tag/v15.0.2
  13. settlement-management (DEPRECATED) - https://github.com/mojaloop/settlement-management/releases/tag/v11.0.0
  14. operator-settlement (DEPRECATED) - https://github.com/mojaloop/operator-settlement/releases/tag/v11.0.0
  15. event-sidecar - https://github.com/mojaloop/event-sidecar/releases/tag/v12.0.0
  16. event-stream-processor - https://github.com/mojaloop/event-stream-processor/releases/v12.0.0-snapshot.7
  17. simulator - https://github.com/mojaloop/simulator/releases/tag/v12.0.0
  18. mojaloop-simulator - https://github.com/mojaloop/mojaloop-simulator/releases/tag/v14.0.1
  19. sdk-scheme-adapter - https://github.com/mojaloop/sdk-scheme-adapter/releases/tag/v22.0.1
  20. ml-testing-toolkit - https://github.com/mojaloop/ml-testing-toolkit/releases/tag/v16.0.0
  21. ml-testing-toolkit-ui - https://github.com/mojaloop/ml-testing-toolkit-ui/releases/tag/v15.2.1
  22. ml-testing-toolkit-client-lib - https://github.com/mojaloop/ml-testing-toolkit-client-lib/releases/tag/v1.2.0
  23. auth-service - https://github.com/mojaloop/auth-service/releases/tag/v14.0.0
  24. als-consent-oracle - https://github.com/mojaloop/als-consent-oracle/releases/tag/v0.2.0
  25. thirdparty-api-svc - https://github.com/mojaloop/thirdparty-api-svc/releases/tag/v13.0.2
  26. thirdparty-sdk-adapter - https://github.com/mojaloop/thirdparty-sdk/releases/tag/v15.1.0

5. Breaking changes

  1. Backend dependencies have been externalized, see deploying-backend-dependencies for an example on how to deploy backend dependencies, and refer to the upgrade-strategy-guide for best practices on deployment topologies.

  2. The central-event-processor and email-notifier services are no longer packaged as part of the main Mojaloop Helm chart, but can be deployed independently:

    1. central-event-processor - Refer to centraleventprocessor/values.yaml for configuration options.

      Pre-requisites:

      Use the following command to deploy central-event-processor :

      helm -n <NAMESPACE> install mojaloop/centraleventprocessor -v <VERSION> -f <CUSTOMIZED_VALUES.yaml>
    2. email-notifier - Refer to emailnotifier/values.yaml for configuration options.

      Pre-requisites:

      Use the following command to deploy email-notifier:

      helm -n <NAMESPACE> install mojaloop/emailnotifier -v <VERSION> -f <CUSTOMIZED_VALUES.yaml>
  3. Charts have been re-factored for consistency, which will impact the following value configs. These are not necessarily breaking changes, but you will need to ensure any customized values files are updated to reflect these changes:

    • Image, Command definitions have been made consistent, with added "debug" added.
    • InitContainers definitions have been made consistent.
    • Service definitions have been made consistent.
    • "config" and "config_files" are being used for consistency. This mainly impacts ML-Testing-Toolkit-Backend and ThirdParty Services.
      • "config" is used for general configurations.
      • "config_files" are used for actual config files as per the name.
  4. The following services no longer support a "Connection URL" for backend configurations to support Password Injection via Env Vars. You will now explicitly configure the Host, User, Pass, DB, Port, etc instead.

  5. Several ML-Testing-Toolkit Backend Dependencies are no longer needed as the associated functionality has been deprecated

    • removed deprecated dependencies: Keycloak, Connection-Manager
  6. Migrations tableName for the Thirdparty Auth-Svc has changed from auth-svc to migration for consistency. If you have an existing migrated/seeded database, ensure that you rename this table to migration or otherwise manually customize your configuration (values.yaml) to use "tableName": "auth-svc", instead of "tableName": "migration".

  7. Thirdparty Kubernetes Services ports were standardized to port 80 for the following components: tp-api-svc, auth-svc & consent-oracle.

  8. The following Thirdparty Kubernetes Services are incorrectly deployed as a headless service in v14.x releases:

    1. tp-api-svc
    2. auth-svc
    3. consent-oracle

    Headless services cannot be used for load-balancing purposes, and thus the service would be unavailable if scaled-up.

    NOTE: This DOES not impact new installations!

    To fix this going forward one must manually re-create (delete & create) the affected services prior to the upgrade by removing the following JSON keys:

    • .spec.clusterIP
    • .spec.clusterIPs

    NOTE: Modifying the existing Kubernetes definition will NOT take effect, thus the need to completely re-create the Kubernetes service by deleting it and then creating it!

    Alternatively, you can execute the following commands against your existing v14.x deployment - copy and paste them in to your terminal or save them to an executable bash script.

    Ensure you update the exported env variables prior to execution:

    • SERVICE_NS - Namespace of the deployment
    • SERVICE_NAME - Name of the Service to be re-created. If you are running this against v14.x or earlier, no change is necessary.

    Pre-requisites:

    • kubectl - Kubernetes command-line tool, with configured access to your target Kubernetes cluster.
    • jq - A lightweight and flexible command-line JSON processor.

    Script to execute:

    export SERVICE_NS="<NAMESPACE>";
    
    export SERVICE_NAME="tp-api-svc"; \
    echo "Re-creating the $SERVICE_NS/$SERVICE_NAME"; \
    export K8_DESCRIPTOR=$(kubectl -n $SERVICE_NS get svc/$SERVICE_NAME -o json | jq 'del(.spec.clusterIP) | del(.spec.clusterIPs)') && \
    kubectl -n $SERVICE_NS delete svc/$SERVICE_NAME && \
    echo $K8_DESCRIPTOR | kubectl create --save-config -f -;
    
    export SERVICE_NAME="auth-svc"; \
    echo "Re-creating the $SERVICE_NS/$SERVICE_NAME"; \
    export K8_DESCRIPTOR=$(kubectl -n $SERVICE_NS get svc/$SERVICE_NAME -o json | jq 'del(.spec.clusterIP) | del(.spec.clusterIPs)') && \
    kubectl -n $SERVICE_NS delete svc/$SERVICE_NAME && \
    echo $K8_DESCRIPTOR | kubectl create --save-config -f -;
    
    export SERVICE_NAME="consent-oracle"; \
    echo "Re-creating the $SERVICE_NS/$SERVICE_NAME"; \
    export K8_DESCRIPTOR=$(kubectl -n $SERVICE_NS get svc/$SERVICE_NAME -o json | jq 'del(.spec.clusterIP) | del(.spec.clusterIPs)') && \
    kubectl -n $SERVICE_NS delete svc/$SERVICE_NAME && \
    echo $K8_DESCRIPTOR | kubectl create --save-config -f -;

6. Deprecations

The following components have been deprecated from the packaged Mojaloop Helm chart release and have been with Business Operation Framework (BOF), which can be deployed by the official BoF Helm Chart:

Note these Helm Chart are still available for deployment in the Mojaloop Helm Repo (http://mojaloop.io/helm/repo/).

This is due to the underlying services having been deprecated by the Micro-Services provided by the Business Operation Framework (BOF) for Financial Management and Reporting.

More information can be found here:

BOF Helm charts to deploy the Business Operation Framework can be found here:

7. Testing notes

  1. This release has been validated against the following dependency Test Matrix:

    Dependency Version Notes
    Kubernetes v1.24.8 Rancher v2.6.8
    Docker v20.10.21
    Nginx Ingress Controller rancher/nginx-ingress-controller:nginx-1.2.1-rancher1
    Ubuntu v20.04 LTS
    MySQL bitnami/mysql:8.0.32-debian-11-r0
    Kafka bitnami/kafka:3.3.1-debian-11-r1
    Redis bitnami/redis:7.0.5-debian-11-r7
    MongoDB bitnami/mongodb:6.0.2-debian-11-r11
    Testing Toolkit Test Cases v15.0.0
    example-mojaloop-backend v15.0.0 README
  2. It is recommended that all Mojaloop deployments are verified using the Mojaloop Testing Toolkit. More information can be found in the Mojaloop Deployment Guide.

  3. The testing-toolkit-test-cases for v15.0.0 Golden Path collections expects:

    • the Quoting service operating mode to be set quoting-service.config.simple_routing_mode_enabled=true (in helm mojaloop/values.yaml under quoting-service config). If this is incorrectly configured, it will result in several failures in the quoting-service tests (7 expected failures). If this is disabled, ensure that you update the corresponding test-case environment variable parameter SIMPLE_ROUTING_MODE_ENABLED ( in helm mojaloop/values.yaml ml-testing-toolkit -> extraEnvironments.hub-k8s-default-environment.json.inputValues) to match.
    • the on-us transfers (in mojaloop/values.yaml "enable_on_us_transfers: false" under centralledger-handler-transfer-prepare -> config and cl-handler-bulk-transfer-prepare -> config) configuration to be disabled. The test-case environment variable parameter (ON_US_TRANSFERS_ENABLED (in helm mojaloop/values.yaml ml-testing-toolkit -> extraEnvironments.hub-k8s-default-environment.json.inputValues), the same name used on postman collections) must similarly match this value.
  4. Simulators

    • We recommend using Testing Toolkit instead of Postman which is better suited for the async nature of the Mojaloop API specification (see above)
    • Mojaloop-Simulator is enabled by default (six instances used for single transfers usually and three more specific to bulk).
    • Ensure that correct Postman Scripts are used if you wish to test against the Mojaloop-Simulators:
    • Legacy Simulators are still required and deployed by default; disabling this will cause issues since there is Account Lookup directory mocking functionality in this service.
  5. Thirdparty Testing Toolkit Test Collections are not repeatable. Please refer to the following issue for more information #2717 - Thirdparty TTK Test-Collection is not repeatable. It is possible to manually cleanup persistent data to re-run the test if required.

  6. Bulk API Helm Tests

    Refer to the Testing Deployments section in the main README for detailed information on how to enable bulk-api-adapter tests.

  7. Thirdparty API Helm Tests

    Refer to thirdparty/README.md#validating-and-testing-the-3p-api on how to enabled and execute Thirdparty verification tests.

  8. Testing the new Bulk functionality (sdk-scheme-adapter)

    For details regarding deployment and validation of simulators needed for bulk (for adoption provided in sdk-scheme-adapter) refer to deploying Mojaloop TTK simulators.

8. Known Issues

  1. #2119 - Idempotency for duplicate quote request
  2. #2322 - Helm install failing with with "medium to large" release names
  3. #2317 - Mojaloop Helm deployments are not compatible when deployed to ARM-arch based hosts
  4. #2892 - Disabled DFSP showing getParty info
  5. #2435 - Quoting-Service is incorrectly handling failed responses to FSPs when forwarding requests
  6. Test issues causing instability/intermitant failures on Test Case Results
    1. #2717 - Thirdparty TTK Test-Collection is not repeatable
    2. #2845 - QA: Replace Legacy-Simulator as a NORESPONSE_SIMPAYEE in Testing-Toolkit Goden Path Test-Suite
    3. #3027 - QA: Mojaloop Helm v14.1.0 Release - Bulk Tests fail on first run
    4. #2925 - Helm Test Intermittent failure with 'Generic ID not found
    5. #3164 - GP Tests fail intermitantly when upgrading a release from v14.1.1 to v15 due to WS issues between TTK and SDKs

9. Contributors

  • Organizations: BMGF, CrossLake, InFiTX
  • Individuals: @chris-me-law , @dfry , @elnyry-sam-k , @kirgene , @kleyow , @PaulGregoryBaker , @mdebarros , @sri-miriyala , @tdaly61 , @vijayg10

Note: companies are in alphabetical order, individuals are in no particular order.