Giter Site home page Giter Site logo

mojaloop / helm Goto Github PK

View Code? Open in Web Editor NEW
21.0 35.0 60.0 694.32 MB

Helm Charts. Helm repo http://mojaloop.io/helm/repo/index.yaml

Home Page: https://mojaloop.io

License: Other

Shell 17.16% JavaScript 10.27% Mustache 71.14% Smarty 1.43%
helm core-spec

helm's Introduction

Mojaloop Helm Charts

Git Commit Git Releases CircleCI

Quick Links

Pre-requisites

  1. Add Helm dependency repositories:

    helm repo add stable https://charts.helm.sh/stable
    helm repo add incubator https://charts.helm.sh/incubator
    helm repo add kiwigrid https://kiwigrid.github.io
    helm repo add kokuwa https://kokuwaio.github.io/helm-charts
    helm repo add elastic https://helm.elastic.co
    helm repo add codecentric https://codecentric.github.io/helm-charts
    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo add mojaloop-charts https://mojaloop.github.io/charts/repo 
    helm repo add redpanda https://charts.redpanda.com

Configure remote Mojaloop Helm repo on your Helm Client

  1. Add Mojaloop repo

    helm repo add mojaloop https://mojaloop.io/helm/repo/

  2. Keep your local Mojaloop repo up to date

    helm repo update

Deployment

Deploying Backend Dependencies

It is recommended and it is a best practice that you deploy each External Backend Dependencies (i.e. MySQL, Kafka, MongoDB, etc) as a separate deployment as to ensure that each deployment is operationally isolated and maintainable.

We have provided an example Helm Wrapper chart that packages all dependencies, called the example-mojaloop-backend Helm chart. The example-mojaloop-backend is provided purely for convenience and should only be used for PoC environments, and for testing purposes. You can also use this as a reference to determine which External Dependency Helm charts can be utilized for this purpose, and how to potentially configure them.

Refer to example-mojaloop-backend/README.md#installation on how to deploy the example-mojaloop-backend.

The following Helm Charts have the following external dependencies:

Chart Dependency Notes
Account-Lookup-Service MySQL
Quoting-Service MySQL
ML-API-Adapter Kafka
Central-Ledger Kafka, MySQL, MongoDB
Central-Settlements MySQL
Central-Event-Processor Kafka, MongoDB
Transaction-Request-Service N/A
Thirdparty Auth-Service Redis, MySQL
Thirdparty Consent Oracle MySQL
Thirdparty SDK N/A
Simulator N/A
Mojaloop-Simulator Redis There is a dependency on Redis, however due to the dynamic nature of the Mojaloop-Simulator, a Redis container will be created dynamically for each configured Simulator.
Mojaloop-Testing-Toolkit MongoDB
Mojaloop-TTK-Simulators Redis, MongoDB
SDK-Scheme-Adapter Redis, Kafka
Bulk-API-Adapter Kafka, MongoDB

Deploying Mojaloop Helm Charts

  1. Deploy the Mojaloop chart

    This chart is a "Wrapper" chart that packages the core Mojaloop components that one would use as a base "Switch" deployment. It includes all the components that one needs for executing and testing the Discovery, Quoting, and Transfer phases of the FSPIOP API specification, as well as supporting components for Bulk, and Settlement Processing.

    Warning: This will deploy all core Mojaloop charts with default backends configurations. See #deploying-backend-dependencies on how to deploy them using the example-mojaloop-backend/README.md Helm chart.

    • helm --namespace <namespace> install <release_name> mojaloop/mojaloop

    e.g. helm --namespace moja install dev mojaloop/mojaloop

  2. Deploy Mojaloop with Bulk-API-Adapter

    Warning: This will deploy all core Mojaloop charts. and the Bulk-API-Adapter

    • helm --namespace <namespace> install <release_name> mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true

    e.g. helm --namespace moja install dev mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true

  3. Deploy Mojaloop with Thirdparty components

    Refer to thirdparty/README.md for more information on what pre-requisites are required to enable Thirdparty components and how to manually deploy backend dependencies.

  4. Deploy Mojaloop with Bulk-API-Adapter and SDK-TTK Bulk simulators

    Warning: This will deploy all core Mojaloop charts., the Bulk-API-Adapter and additional SDK+TTK simulators

    • helm --namespace <namespace> install <release_name> mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true

    e.g. helm --namespace moja install dev mojaloop/mojaloop --set mojaloop-bulk.enabled=true --set ml-ttk-test-val-bulk.tests.enabled=true --set mojaloop-ttk-simulators.enabled=true --set global.kafka.host=<MOJALOOP_INSTALL_NAME>-kafka --set global.redis.host=<REDIS_INSTALL_NAME>-redis-master --set ml-ttk-test-val-sdk-bulk.tests.enabled=true

  5. Deploy specific chart

    Warning: This will deploy a single Mojaloop charts. You will need to ensure that you have met all pre-requisites for that chart (e.g. external dependencies such as MySQL, Kafka, AND internal dependencies such as the Central-Ledger API Service). This can be done by customization the values.yaml of each chart to suite your environment.

    • helm --namespace <namespace> install <release_name> mojaloop/<chart_name> -f {custom-values.yaml}

    e.g. helm --namespace moja install dev mojaloop/centralledger -f ./values.yaml

    Refer to the following default chart config file for configurable values: http://mojaloop.io/helm/<chart_name>/values.yaml

    Alternatively one can set specific values via cli arguments based on the config file above:

    • helm --namespace <namespace> install <release_name> mojaloop/<chart_name> --set foo=bar --set {key.subkey.subsubkey}={value}
  6. Deploy specific version for a chart

    • helm --namespace <namespace> install <release_name> mojaloop/<chart_name> --version {version}

    e.g. helm --namespace moja install dev mojaloop/centralledger --version v1.0.0

    Refer to the following default chart config file for values: http://mojaloop.io/helm/<chart_name>/values.yaml

Deploying development versions

  1. To deploy the latest development version, use the --devel flag:

    • helm --namespace <namespace> install <release_name> mojaloop/mojaloop --devel

      This is useful if you've had some work merged into main but it has not yet been released.

      The --devel flag can also be supplied to helm search and helm upgrade commands.

      Development versions can be specified in a requirements.yaml file if you're using Mojaloop as a child chart.

Upgrading Deployments from Repo

helm --namespace <namespace> upgrade <release-name> mojaloop/<chart_name>

e.g. helm --namespace moja upgrade dev mojaloop/centralenduserregistry

Deployment from Source for local repo deployments

Update Chart Dependencies for Source for local repo deployments (i.e. from the cloned github repository)

Run the following script sh ./update-charts-dep.sh in the helm root folder.

This script will ensure that all dependencies and child-dependencies are updated correctly. This is temporary until recursive updates is supported in future: helm/helm#2247.

Deployment

  1. Deploy specific chart

    • helm --namespace <namespace> install <release_name> <chart_folder>

    e.g. helm --namespace mojaloop install dev ./centralledger

  2. Deploy the Mojaloop chart

    Warning: This will deploy all core Mojaloop charts with default backends. See #deploying-backends on how to disabled the default backends and deploy them using the example-mojaloop-backend/README.md Helm chart.

    • helm --namespace <namespace> install <release_name> mojaloop

    e.g. helm --namespace mojaloop install dev ./mojaloop

Upgrading Deployments from Source

  • helm --namespace <namespace> upgrade <release-name> <chart_folder>

e.g. helm --namespace mojaloop upgrade dev ./centralenduserregistry

Testing Deployments

Validation

Note: This is currently only supported by Helm v3.

Mojaloop Helm deployments currently include the following provisioning (setup) and test (val) collections:

Helm Test Test Cases Description Enabled by default? Notes
ml-ttk-test-setup.tests hub/provisioning Standard Provisioning Collection Yes Required as a pre-requisite for all tests.
ml-ttk-test-val-gp hub/golden_path Golden-Path (GP) Test Collection Yes Previously named ml-ttk-test-validation prior to v13.1.0 release.
ml-ttk-test-val-bulk hub/other_tests/bulk_transfers Bulk Test Collection No mojaloop-bulk.enabled=true must be set to deploy the Bulk-API-Adapter components.
ml-ttk-test-setup-sdk-bulk hub/provisioning_sdkbulk SDK Bulk Provisioning Collection No mojaloop-bulk.enabled=true & mojaloop-ttk-simulators.enabled=true must be set to deploy the Bulk-API-Adapter and TTK Simulators components.
ml-ttk-test-val-sdk-bulk hub/sdk_scheme_adapter/bulk SDK Bulk Test Collection No mojaloop-bulk.enabled=true & mojaloop-ttk-simulators.enabled=true must be set to deploy Bulk-API-Adapter and TTK Simulators components. components.
ml-ttk-test-val-sdk-r2p hub/sdk_scheme_adapter/request-to-pay SDK Request To Pay Test Collection No mojaloop-ttk-simulators.enabled=true must be set to deploy the TTK Simulators components. components.
ml-ttk-test-setup-tp hub/provisioning_thirdparty Thirdparty Provisioning Collection No thirdparty.enabled=true, account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true must be set to deploy the Thirdparty components.
ml-ttk-test-val-tp hub/thirdparty Thirdparty Test Collection No thirdparty.enabled=true, account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true must be set to deploy the Bulk-API-Adapter components.
ml-ttk-test-cleanup hub/cleanup Thirdparty Test Collection Yes Post cleanup scripts, e.g. executes position reset test collection. Note that ml-ttk-test-cleanup.test.config.saveReport is disabled by default.
  1. Ensure Tests are enabled

    Ensure the following properties are set in your values.yaml file depending on which tests you wish to execute:

    • ml-ttk-test-setup.tests.enabled=true
    • ml-ttk-test-val-gp.tests.enabled=true
    • ml-ttk-test-val-bulk.tests.enabled=true (Note: only applicable if mojaloop-bulk.enabled=true is set)
    • ml-ttk-test-setup-sdk-bulk.tests.enabled=true (Note: only applicable if mojaloop-bulk.enabled=true, mojaloop-ttk-simulators.enabled=true is set)
    • ml-ttk-test-val-sdk-bulk.tests.enabled=true (Note: only applicable if mojaloop-bulk.enabled=true, mojaloop-ttk-simulators.enabled=true is set)
    • ml-ttk-test-val-sdk-r2p.tests.enabled=true (Note: only applicable if mojaloop-ttk-simulators.enabled=true is set)
    • ml-ttk-test-setup-tp.tests.enabled=true (Note: only applicable if thirdparty.enabled=true, account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true is set)
    • ml-ttk-test-val-tp.tests.enabled=true (Note: only applicable if thirdparty.enabled=true, account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true & account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true is set)
    • ml-ttk-test-cleanup.test.enabled=true

    Or alternatively add --set for each of the above parameters on the install command:

    helm install ... --set ml-ttk-test-setup.tests.enabled=true --set ml-ttk-test-val-gp.tests.enabled=true ...

  2. Run Tests

    Run tests: helm test <RELEASE_NAME>

    Run tests with logs:

    helm test <RELEASE_NAME> --logs

Ingress

  1. Add the following to your hosts file and ensure you have installed Ingress Controller on your Kubernetes Cluster:

    <ip-of-k8s-node-ingress> ml-api-adapter.local central-ledger.local account-lookup-service.local quoting-service.local central-settlement-service.local moja-simulator.local testing-toolkit.local testing-toolkit-specapi.local

  2. Curl Health End-points for ML-API-Adapter

    • curl http://ml-api-adapter.local/health

    Expected output:

    {"status":"OK"}

  3. Curl Health End-points for Central Ledger

    • curl http://central-ledger.local/health

    Expected output:

    {"status":"OK"}

  4. Testing Toolkit

    Open http://testing-toolkit.local in your browser.

    Or access the Mobile Simulator Demo directly on http://testing-toolkit.local/mobilesimulator.

    Check out the User Guide to learn more about the Testing Toolkit.

Removing Deployments

  • helm --namespace <namespace> del <release-name>

e.g. helm --namespace mojaloop del dev

Debugging Charts

  1. Execute a dry-run to display all the Kubernetes deployment files

    • helm --namespace <namespace> install <release_name> <chart_folder> --dry-run
  2. Enable debug to display raw configurations that will be injected into Helm templates

    • helm --namespace <namespace> install <release_name> <chart_folder> --dry-run --debug
  3. Use Helm Linter to check for any issues

    • helm lint --strict <chart_folder>

Helper scripts

# lint all parent charts and ensure they conform to Helm's standards
./lint-charts.sh

# Update all charts, and their respective dependencies (requirements).
./update-charts-dep.sh

# Package all charts, and created an index.yaml in ./repo directory
./package.sh

Monitoring Mojaloop

Refer to Monitoring Documentation

Batch Processing

To enable batch processing in your system, please follow the steps below:

  • 1. Add a New Kafka Topic: Add a new topic named topic-transfer-position-batch to your Kafka configuration. If you are using the example-mojaloop-backend for your backend dependencies, this topic is already added to the Kafka provisioning section by default.

  • 2. Update Mojaloop Values File: In the Mojaloop values file, make sure to enable the batch_processing_enabled flag in the global configuration.

    global:
        batch_processing_enabled: &CL_BATCH_PROCESSING_ENABLED true

    Enabling this variable does the following

    a. Activates Batch Position Handler: Triggers the activation of the Batch Position Handler.

    b. Configures Prepare Handler for Kafka Events: The configuration change also sets up the Prepare Handler to publish Kafka events to the newly designated batch topic.

    Note:

    Please note that this configuration change relies on the use of the YAML anchor CL_BATCH_PROCESSING_ENABLED._

    It's essential to consider the context of your deployment. If you have the entire Helm values file as an override, this configuration change will work seamlessly.

    However, if you are using a Helm override file with only a subset of values overridden, ensure that you include all the configuration parameters associated with the CL_BATCH_PROCESSING_ENABLED anchor. Failing to include these parameters might result in unexpected behavior.

Known Issues

  1. Snapshot releases will fail if the commit SHA starts with a 0 - helm/helm#7064

helm's People

Contributors

akihisa-kanehira-rexvirt-com avatar bdfintechpy avatar bushjames avatar dfry avatar elnyry-sam-k avatar geka-evk avatar georgi-logodazhki avatar ggrg avatar henkkodde avatar kalinkrustev avatar kamuelafranco avatar kleyow avatar ksatya77 avatar lewisdaly avatar mdebarros avatar muzammil360 avatar ndonnan avatar oderayi avatar partiallyordered avatar rmothilal avatar shashi165 avatar vgenev avatar vijayg10 avatar vorburger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helm's Issues

Central Ledger migration scripts fails on Percona MySQL server due to missing key on the MIGRATION_LOCK table

Central Ledger migration scripts fails on Percona MySQL server due to missing key on the MIGRATION_LOCK table.

To resolve the issue, manually run the following command on the Percona MySQL server:

  1. SSH into the box and run the following command
mysql
  1. Switch databases
use central_ledger;
  1. Alter migration_lock table to add the primary key
alter table migration_lock add column `id` int(10) unsigned primary KEY AUTO_INCREMENT;
  1. Either wait for Central Ledger to recover or delete the pod so that the migration scripts will re-execute

This is pending a perm fix as follows:

  1. Waiting for update from Knex to resolve the issue
  2. Add an Init-Containter onto the Kubernetes deployment to ensure that the DB is setup correctly, and the migration scripts run as required. (preferred approach for the time being)

dev-centralenduserregistry-postgresql has been configured incorrectly as a ClusterIP instead of a LoadBalancer

dev-centralenduserregistry-postgresql has been configured incorrectly as a ClusterIP instead of a LoadBalancer:

NAME                                           TYPE            EXTERNAL-IP                                                                 
dev-centraldirectory                           LoadBalancer    ae92427b8f54
dev-centraldirectory-postgresql                LoadBalancer    ae91fe62cf54f1
dev-centralenduserregistry                     LoadBalancer    ae9112bfef54f1
dev-centralenduserregistry-postgresql          ClusterIP       <none>
dev-centralhub                                 LoadBalancer    ae945a7b9f54f
dev-centralkms                                 LoadBalancer    ae92c1680f54f1
dev-centralkms-postgresql                      LoadBalancer    ae927f1ddf54f11e7a
dev-centralledger                              LoadBalancer    ae941336ff54f1
dev-centralledger-postgresql                   LoadBalancer    ae93a88b2f54f11e7
dev-forensicloggingsidecar-ledger              LoadBalancer    ae9372db1f54f11e7
dev-forensicloggingsidecar-ledger-postgresql   LoadBalancer    ae93358ebf54f11e
dev-mockpathfinder                             LoadBalancer    ae91c1ba0f54f
dev-mockpathfinder-postgresql                  LoadBalancer    ae91790d0f54f11e

Helm script or values need to be updated to resolve this issue.

TTK errors in Helm v15.0.0

When I clone Mojaloop v15.0.0 and deploy the vanilla charts and then run helm test I see 3 TTK failures.
this is using k3s version 1.24

Also at the time of filing this ticket the Mojaloop slack announcements channel is reporting TTK failures in the CI/CD pipleine for v15.0.0 yet a week or so ago this was running clean. Miguel suggests that the CI/CD pipeline deployment has exhausted some resource and this is likely as there are > 100 failures.

Along with the helm test error and the TTK test failures themselves what is not clear is why the current vanilla deployment fails yet a week or so ago the GP tests ran clean. I have searched for something I have inadvertently changed from default but running diff on helm/mojaloop/values.yaml from what I deploy and a fresh clone of v15.0.0 shows I made no changes to the default. It makes me wonder of there might be a difference between the v15.0/0 repo and the bundled helm charts as this could explain the difference (I will check this and update this ticket when I have).

To reproduce manually :
git clone --branch v15.0.0 https://github.com/mojaloop/helm.git
cd helm ; ./package.sh
helm install the example backend chart
helm install the mojaloop chart e.g. helm install ml --wait --timeout 2400s /home/ubuntu/helm/mojaloop
run the ttk tests : helm test ml --logs

(alternatively just use mini-loop v5.0 branch)

results :

ubuntu@miniloop-vm ~/mini-loop (v5.0) $ helm test ml --logs
NAME: ml
LAST DEPLOYED: Sat Apr 22 10:36:32 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: ml-ml-ttk-test-setup
Last Started: Sat Apr 22 11:14:41 2023
Last Completed: Sat Apr 22 11:17:12 2023
Phase: Succeeded
TEST SUITE: ml-ml-ttk-test-val-gp
Last Started: Sat Apr 22 11:17:12 2023
Last Completed: Sat Apr 22 11:21:56 2023
Phase: Failed
NOTES:
Thank you for installing mojaloop.

Your release is named: ml.

Mojaloop Official Website: https://mojaloop.io

To learn more about Mojaloop: https://docs.mojaloop.io
To learn more about Mojaloop deployments: https://docs.mojaloop.io/legacy/deployment-guide
To learn more about this release: https://github.com/mojaloop/helm/releases/tag/v15.0.0

This Helm chart lives @ http://github.com/mojaloop/helm

To learn more about this deployment, try:

$ helm status ml

Use the following command to execute Test cases:

$ helm -n default test ml

Use the following command to execute Test cases and print logs to console:

$ helm -n default test ml --logs

Use the following command to execute a specific Test case:

$ helm -n default test ml --filter "name=ml-<TEST_NAME_1>,name=ml-<TEST_NAME_2>"

Use the following command to ignore a specific Test case:

$ helm -n default test ml --filter "!name=ml-<TEST_NAME_1>"

View Test logs with the following commands:
$ kubectl -n default logs pod/ml-ml-ttk-test-setup
$ kubectl -n default logs pod/ml-ml-ttk-test-val-gp
$ kubectl -n default logs pod/ml-ml-ttk-test-cleanup

Copyright © 2020 Mojaloop Foundation

Error: unable to get pod logs for ml-ml-ttk-test-cleanup: pods "ml-ml-ttk-test-cleanup" not found

The report is attached.

report.zip

Error: Transport is closing when install helm charts

I have tried both Master and Develop and both seem to have this issue when deploying to the Rancher Cluster (Casa UAT0-Dev1)

$ helm install --debug --namespace=casa-dev --name=casa-dev ./mojaloop --wait --timeout 3600
[debug] Created tunnel using local port: '52379'

[debug] SERVER: "127.0.0.1:52379"

[debug] Original chart version: ""
[debug] CHART PATH: /Users/jeffplesko/modusbox/casablanca/helm-ml/mojaloop

2018/10/10 09:36:52 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for annotations (map[nginx.ingress.kubernetes.io/rewrite-target:/])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for annotations (map[nginx.ingress.kubernetes.io/rewrite-target:/])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: destination for hosts is a table. Ignoring non-table value [central-kms.local]
2018/10/10 09:36:53 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[memory:2Gi cpu:500m]])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[cpu:500m memory:2Gi]])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[cpu:500m memory:2Gi]])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for annotations (map[nginx.ingress.kubernetes.io/rewrite-target:/])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for annotations (map[nginx.ingress.kubernetes.io/rewrite-target:/])
2018/10/10 09:36:53 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[cpu:500m memory:2Gi]])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[cpu:500m memory:2Gi]])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for resources (map[limits:map[cpu:1 memory:4Gi] requests:map[cpu:500m memory:2Gi]])
2018/10/10 09:36:53 warning: destination for annotations is a table. Ignoring non-table value
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
2018/10/10 09:36:53 warning: cannot overwrite table with non table for tolerations (map[])
Error: transport is closing

path "/" is already defined in ingress kube-public/moja-centralledger-service

I want to deploy Mojaloop on MacBook 2017. I have created the namespace and issued this command on the terminal.
helm --namespace mojaloop install dev mojaloop/mojaloop

This is the response I'm getting. I've been on this for over 18 hours now. can someone help out. This is my first time of working on it.

W0617 10:50:13.482558   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.495938   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.549322   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.554859   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.561888   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.569083   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.576043   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.615336   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.721337   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.797912   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.832190   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.872470   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.923017   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:13.960996   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.008993   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.041808   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.052618   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.091184   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.120292   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.132595   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:14.323579   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:39.544476   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:40.454091   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.305395   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.318532   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.422202   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.506778   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.526305   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.546119   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.601327   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.646128   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.654789   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.674697   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.708353   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.719889   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.730274   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.730424   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.733611   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.752907   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.767007   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.800131   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
W0617 10:50:41.812752   77344 warnings.go:70] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
Error: admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: host "central-ledger.local" and path "/" is already defined in ingress kube-public/moja-centralledger-service

Helm release name must be less then 32 characters for mojaloop charts with dependencies on Percona MySQL

Currently the charts will deploy Percona cluster with the following cluster name

ENV VAR wsrep_cluster_name: "-centralledger-mysql"

If wsrep_cluster_name is larger then 32 characters, the Percona cluster will fail to start as there is a max limit of 32 characters.

ref: https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1468964
ref: https://jira.percona.com/browse/PXC-1123
ref: https://github.com/bloomberg/chef-bcpc/issues/649

Mojaloop chart does not support ingress 0.22.* or later

Mojaloop chart does not support ingress 0.22.* or later due to the rewrite rules no longer being backwards compatible.

Refer to the following -> https://kubernetes.github.io/ingress-nginx/examples/rewrite/#rewrite-target

Specifically the annotations on the values.yaml files need to be changed from nginx.ingress.kubernetes.io/rewrite-target: '/' to nginx.ingress.kubernetes.io/rewrite-target: '/$1'.

All values files will need to be updated to reflect this change.

Interop-switch chart has the incorrect configuration in values.yaml file for `ML_API_ADAPTER_PORT`

Summary
Interop-switch chart has the incorrect configuration in values.yaml file for ML_API_ADAPTER_PORT key:

    config:
      ML_API_ADAPTER_PORT: 80

This should be 8088 to match the port of the ml-api-adapter helm chart, or alternatively the ml-api-adapter helm chart should be configured to use port 80 instead.

Severity:
Medium

Priority:
Low

Expected Behavior
Interop-switch chart should have the following value in the values.yaml file for ML_API_ADAPTER_PORT key:

    config:
      ML_API_ADAPTER_PORT: 8088

Steps to Reproduce

  1. Deploy interop-switch, or mojaloop helm charts with default values

Specifications

  • Component (if known): Helm
  • Version: 3.4.2
  • Type of testing: Manual
  • Bug found/raised by: @mdebarros

Notes:
N/A

Pull Requests:

change all boolean checks to use boolean values as opposed to strings

Regarding the mojaloop-simulator helm chart:

Doing string comparisons for boolean values is not compatible with Terraform since when setting values to true or false (or TRUE or FALSE), terraform automatically casts them to booleans which results in failure for the following string comparison:

{{- if eq ($config.config.schemeAdapter.env.JWS_SIGN | upper) "TRUE" }}

Please convert all these values that should be booleans into actual booleans and change the conditionals to just check the value: {{- if $config.config.schemeAdapter.env.JWS_SIGN }}

I haven't done a thorough check but it is happening at least in the secrets.yaml and config-jws-public-keys.yaml

Also, true in quotes is being used in the values files, not sure if this is really needed anywhere, ideally they should be unquoted booleans.

3ppi ttk test failures on Mojaloop v15.0.0

It appears that there are failures in the 3PPI TTK tests with

  • account linking - happy path web
  • account linking - happy path OTP

(see report attached)

To reproduce:

  • deploy vanilla Mojaloop 15.0.0 including the vanilla example-backend-services and enable both 3PPI modules and 3PPI TTK tests per the Mojaloop documentation (see : #567 for small vanilla deploy script)
  • using the web interface (e.g. http://testing-toolkit.local) use the collections for mojaloop v15.0.0 and enable
  • hub/provisioning_thirdparty and hub/thirdparty
  • run the tests

report:
report.zip

Wrong yaml in swagger from the interop-switch service

Summary:
The swagger of the interop-switch service is pointing (hardcoded) to
http://ec2-35-163-231-111.us-west-2.compute.amazonaws.com:8088/interop/switch/v1/documentation/interop-switch.yaml
instead of the local file
http://192.168.99.100:31328/switch/v1/documentation/interop-switch.yaml

Expected Behavior:
When you access to the swagger of the interop-switch, it should load automatically the local yaml of that installation.

Steps to Reproduce:
After an installation of Mojaloop with Minikube you change from ClusterIP to NodePort the service of interop-switch with:

kubectl edit svc dev-interop-switch --namespace=mojaloop

and Minikube assigns the port (for example) 31328.

You can access the swagger vía:

http://192.168.99.100:31328/switch/v1/documentation/

Nonetheless, the URL/yaml that is trying to load, it seems that is hardcoded because is pointing to:

http://ec2-35-163-231-111.us-west-2.compute.amazonaws.com:8088/interop/switch/v1/documentation/interop-switch.yaml

Instead of pointing to:

http://192.168.99.100:31328/switch/v1/documentation/interop-switch.yaml

@mdebarros @ksatya77 @arfintechpy

Zookeeper dependency does not scale correctly based on the replicaCount in the values.yaml files

Summary:
Zookeeper dependency does not scale correctly based on the replicaCount in the values.yaml files

Severity:
Low

Priority:
Low

Expected Behavior
Zookeeper pods should scale correctly based on the replicaCount in the values.yaml files

Steps to Reproduce

  1. Zookeeper pods should scale correctly based on the replicaCount in the values.yaml files

Specifications

  • Component: Helm
  • Version: 3.5.1
  • Platform: Helm
  • Bug found/raised by: @mdebarros

Notes:

Helm charts incompatible with Kubernetes v1.16.x

Summary:
Helm charts may be incompatible with Kubernetes v1.16.x due to deprecated APIs as per the following link: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/

The following resource kinds will need to be migrated:

  • NetworkPolicy (in the extensions/v1beta1 API group)
    Migrate to use the networking.k8s.io/v1 API, available since v1.8. Existing persisted data can be retrieved/updated via the networking.k8s.io/v1 API.
  • PodSecurityPolicy (in the extensions/v1beta1 API group)
    Migrate to use the policy/v1beta1 API, available since v1.10. Existing persisted data can be retrieved/updated via the policy/v1beta1 API.
  • DaemonSet, Deployment, StatefulSet, and ReplicaSet (in the extensions/v1beta1 and apps/v1beta2 API groups)
    Migrate to use the apps/v1 API, available since v1.9. Existing persisted data can be retrieved/updated via the apps/v1 API.

The following resource kinds need to be maintained:

  • Ingress (in the extensions/v1beta1 API group) SHOULD NOT be upgraded at this time since it will impact backward compatibility < 1.14.x. This will need to be migrated at a later point once v1.20.x reaches critical mass.

Severity:
High

Priority:
Critical

Expected Behavior

Deployments should be successful on v1.16x, v1.15x, v1.14x and v1.11x

Steps to Reproduce

  1. Deploy Mojaloop Helm chart to v1.16.x Kubernetes cluster

Specifications

  • Component (if known): Mojaloop Helm Charts
  • Version: v8.x.x
  • Platform: Helm
  • Subsystem: n/a
  • Type of testing: Manual
  • Bug found/raised by: @vijayg10

Notes:

  • Severity when opened: High
  • Priority when opened: Critical
  • Fixes should be tested against Kubernetes v1.11.x, v1.14 & v1.15.x to ensure backward compatibility,
  • Alternatively, there will need to be a config param that sets the apiVersion appropriately for backward compatibility to be maintained, assuming the update apiVersion in v1.16.x is not supported in v.15.x

ingress-nginx chart from upstream instead of mojaloop/helm/kube-public/ingress-nginx

Kubernetes Version constraint (kubeVersion)

I've learnt in #341 that the Mojaloop Helm charts are currently fairly picky about the Kubernetes versions.

I understand that efforts such as #219 are under way to make it compatible with more recent versions, but it seems to me that the project could lower its barrier to entry by a) having a line about required versions in its doc, and b) making the Helm charts "fail fast & early" on unsupported Kubernetes versions?

I'll raise a PR for a) the doc ASAP. For b) my Helm Foo isn't good enough yet, but as I learn, I'll contribute - or someone else can before me.

Interop-switch is no pre-fixing the ml-adapter end-point in Config

Scenario

Interop-switch is no pre-fixing the ml-adapter end-point in Config

Issue

Running a helm install command with --name=pi33
$ helm install --namespace=mojatest --name=pi33 --repo=http://mojaloop.io/helm/repo --version 2.4.0 -f ./values-test-harness.yaml mojaloop

This will generate the following configMap/pi33-interop-switch:

CENTRAL_DIR_HOST: pi33-centraldirectory
CENTRAL_DIR_PORT: 3000
CONNECTOR_HOST: pi33-interop-connector
ML_API_ADAPTER_HOST: ml-api-adapter
ML_API_ADAPTER_PORT: 8088
PSQL_DATABASE: interop_switch
PSQL_HOST: pi33-interop-switch-postgresql
PSQL_PORT: 5432
SWITCH_SERVICE_HOST: 0.0.0.0
SWITCH_SERVICE_PORT: 8088

Where the ML_API_ADAPTER_HOST is missing the pi33 prefix.

Fix

Update the configMap/pi33-interop-switch mapping to correctly add the name prefix during helm install.

Timeout Handler has been configured with the incorrect command as `--get` instead of `--timeout`

Summary:

Timeout Handler has been configured with the incorrect command as --get instead of --timeout as per the following file:

https://github.com/mojaloop/helm/blob/master/centralledger/chart-handler-timeout/values.yaml

Which contains the following cmd:
command: '["node", "src/handlers/index.js", "handler", "--get"]'

Severity:
High

Priority:
Medium

Expected Behavior

File config:
https://github.com/mojaloop/helm/blob/master/centralledger/chart-handler-timeout/values.yaml

Must contains the following cmd:
command: '["node", "src/handlers/index.js", "handler", "--timeout"]'

Steps to Reproduce

  1. Deploy helm chart

Specifications

  • Component (if known):
  • Version:
  • Platform:
  • Subsystem:
  • Type of testing:
  • Bug found/raised by:

Notes:

  • Severity when opened: High
  • Priority when opened: Medium

Backend example not working with mojaloop - kafka init containers not finishing

Hi there,

Followed the instructions here https://docs.mojaloop.io/technical/deployment-guide/ to deploy mojaloop (v15.0.0) on Azure AKS.
It does not work out of the box and the problem appears to be the kafka init containers not being able to connect to kafka controllers.
kafka init container logs:
Waiting for Kafka... [2024-04-29 23:25:54,518] WARN [LegacyAdminClient clientId=admin-1] Bootstrap broker kafka:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient) Exception in thread "main" java.lang.RuntimeException: Request METADATA failed on brokers List(kafka:9092 (id: -1 rack: null)) at kafka.admin.BrokerApiVersionsCommand$AdminClient.sendAnyNode(BrokerApiVersionsCommand.scala:159) at kafka.admin.BrokerApiVersionsCommand$AdminClient.findAllBrokers(BrokerApiVersionsCommand.scala:182) at kafka.admin.BrokerApiVersionsCommand$AdminClient.awaitBrokers(BrokerApiVersionsCommand.scala:174) at kafka.admin.BrokerApiVersionsCommand$.execute(BrokerApiVersionsCommand.scala:61) at kafka.admin.BrokerApiVersionsCommand$.main(BrokerApiVersionsCommand.scala:55) at kafka.admin.BrokerApiVersionsCommand.main(BrokerApiVersionsCommand.scala)

Kafka Controller logs
[2024-04-29 23:37:29,574] INFO [SocketServer listenerType=BROKER, nodeId=0] Failed authentication with /10.244.0.185 (channelId=10.244.0.227:9092-10.244.0.185:45134-41935) (Unexpected Kafka request of type METADATA during SASL handshake.) (org.apache.kafka.common.network.Selector) ... [2024-04-29 23:37:49,862] INFO [SocketServer listenerType=BROKER, nodeId=0] Failed authentication with /10.244.0.185 (channelId=10.244.0.227:9092-10.244.0.185:51610-41937) (Unexpected Kafka request of type METADATA during SASL handshake.) (org.apache.kafka.common.network.Selector)
When this happens the containers "wait-for-kafka" will chew up all the CPU resources and may give the wrong impression that the cluster/node is saturated. tried with a different version of contaner init (solsson/kafka:3.3.0 instead of solsson/kafka:2.8.1) but the same problem exists.

K8S service transaction-requests-service has wrong port configured in helm v8.7.0

Summary:

Can not send requests to transaction-requests-service through ingress controller if the mojaloop cluster is deployed using helm version v8.7.0.

The K8s service transaction-requests-service is misconfigured to forward the requests to port 3002 instead of 4001.

The target port needs to be change to 4001

Severity:
High

Priority:
Critical

Expected Behavior

The k8s service should forward the requests to 4001 port of "moja-transaction-requests-service".

Steps to Reproduce

  1. Deploy Mojaloop Helm chart mojaloop-8.7.0
  2. Deploy ingress controller nginx-ingress-1.25.0
  3. You can not reach http://transaction-request-service.local/transactionRequests

Temporary Workaround

Edit the k8s service using the following command and change the targetPort to 4001

kubectl -n demo edit service/moja-transaction-requests-service

Install.sh script?

How about "scripting" https://docs.mojaloop.io/documentation/deployment-guide/#4-helm and https://docs.mojaloop.io/documentation/deployment-guide/#5-mojaloop ?

I'm thinking nothing fancy, just a good ol' bash script... and then put that into the root of this repo, and simplify the Deployment Guide to "run this script" instead of those ca. 10 manual steps.

This would also make "testing" something like mojaloop/documentation#236 easier - one would just run this new script to see if it works.

I'm willing to contribute to the project and raise a PR for this, if this seems useful to you? I just need to first be able to get it running manually - I'm currently stuck at #341.

PS: Perhaps this could even be the beginning of more fancy automated test of these Helm charts (in a next step)? Like a ./test.sh which calls this script but also creates a completely clean new Kube env from scratch and see if everything works. Then we can hook that up to check for each PR.

Error: validation failed: [unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta2", unable to recognize "" ...

Does anyone know what could cause this error:

$ helm --namespace demo --name moja install mojaloop/mojaloop
Error: validation failed: [unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta2", unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "": no matches for kind "Deployment" in version "apps/v1beta1", unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta2", unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta1"]

I'm getting this when following https://docs.mojaloop.io/documentation/deployment-guide/ - both with Helm v2 as currently documented, as well as when following the v3 doc coming up on mojaloop/documentation#236.

I'm not using microk8s but minikube (currently v1.11.0), but (I'm hoping that) shouldn't matter here, given that doc sounds like it should work on any Kube distro? Do the Mojaloop charts perhaps only work with a more specific Kube version, and I'm on a too new one? If you suspect that could be it, please clarify which Kube version ya' all are using, and can re-try with that (and if that's it, clarify this with a PR to the doc).

Full disclosure: I a complete noob to Helm (but I more or less know my way around core Kubernetes).

README.md is missing information/steps for adding ml-api-adapter and interop-switch

Summary:
README.md is missing information/steps for adding ml-api-adapter and interop-switch to the DNS records for testing.

Severity:
Medium

Priority:
Critical

Expected Behavior
README.md should contain information/steps for adding ml-api-adapter and interop-switch to the DNS records locally under Testing Deployments on step 1

Steps to Reproduce

  1. Open the following link in your browser: https://github.com/mojaloop/helm/blob/master/README.md#testing-deployments

Specifications

  • Component: Helm README.md
  • Version: v3.4.*
  • Platform: n/a
  • Subsystem: n/a
  • Type of testing: manual
  • Bug found/raised by: @bdfintechpy

Notes:
n/a

helm test errors in Mojaloop helm v15.0.0.0 (can't test 3ppi or bulk with helm test)

helm test --logs <=== has errors and appears to abort with error

Error: unable to get pod logs for ml-ml-ttk-test-cleanup: pods "ml-ml-ttk-test-cleanup" not found
This appears to imply that 3ppi and bulk tests can't be tested with helm test as documented i.e. with helm test facility

To ensure that mini-loop is not introducing any variables and to aid re-reproducibility I extracted the current Mojaloop v15.0.0.0 readme instructions into a small script called ml-default-test.sh

#!/usr/bin/env bash 
# script to test vanilla deploy of Mojaloop from package repo 
# assumes correct version of kubernetes , helm, ingress etc already installed and configured.
# April 2023 
# see install instructions in readme.md at https://github.com/mojaloop/helm and https://github.com/mojaloop/helm/blob/master/thirdparty/README.md

helm repo update 
helm repo list
helm delete ml
helm delete be 

helm install be --wait --timeout 300s mojaloop/example-mojaloop-backend
helm install ml --wait --timeout 2400s mojaloop/mojaloop \
  --set account-lookup-service.account-lookup-service.config.featureEnableExtendedPartyIdType=true \
  --set account-lookup-service.account-lookup-service-admin.config.featureEnableExtendedPartyIdType=true \
  --set thirdparty.enabled=true \
  --set ml-ttk-test-setup-tp.tests.enabled=true \
  --set ml-ttk-test-val-tp.tests.enabled=true 
   
helm test ml --logs

Results

ubuntu@miniloop-vm ~/mini-loop/util/test (v5.0) $ ./ml-default-testing.sh
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "codecentric" chart repository
...Successfully got an update from the "kiwigrid" chart repository
...Successfully got an update from the "elastic" chart repository
...Successfully got an update from the "mojaloop" chart repository
...Successfully got an update from the "charts" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
NAME URL
kiwigrid https://kiwigrid.github.io
elastic https://helm.elastic.co
bitnami https://charts.bitnami.com/bitnami
mojaloop http://mojaloop.io/helm/repo/
charts https://docs.mojaloop.io/charts/repo
codecentric https://codecentric.github.io/helm-charts
release "ml" uninstalled
Error: uninstall: Release not loaded: be: release: not found
NAME: be
LAST DEPLOYED: Mon Apr 24 07:10:27 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
coalesce.go:220: warning: cannot overwrite table with non table for mojaloop.thirdparty.consent-oracle.env (map[])
coalesce.go:220: warning: cannot overwrite table with non table for mojaloop.thirdparty.consent-oracle.env (map[])
coalesce.go:220: warning: cannot overwrite table with non table for mojaloop.thirdparty.consent-oracle.env (map[])
NAME: ml
LAST DEPLOYED: Mon Apr 24 07:12:50 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Thank you for installing mojaloop.

Your release is named: ml.

Mojaloop Official Website: https://mojaloop.io

To learn more about Mojaloop: https://docs.mojaloop.io
To learn more about Mojaloop deployments: https://docs.mojaloop.io/legacy/deployment-guide
To learn more about this release: https://github.com/mojaloop/helm/releases/tag/v15.0.0

This Helm chart lives @ http://github.com/mojaloop/helm

To learn more about this deployment, try:

$ helm status ml

Use the following command to execute Test cases:

$ helm -n default test ml

Use the following command to execute Test cases and print logs to console:

$ helm -n default test ml --logs

Use the following command to execute a specific Test case:

$ helm -n default test ml --filter "name=ml-<TEST_NAME_1>,name=ml-<TEST_NAME_2>"

Use the following command to ignore a specific Test case:

$ helm -n default test ml --filter "!name=ml-<TEST_NAME_1>"

View Test logs with the following commands:
$ kubectl -n default logs pod/ml-ml-ttk-test-setup
$ kubectl -n default logs pod/ml-ml-ttk-test-val-gp
$ kubectl -n default logs pod/ml-ml-ttk-test-setup-tp
$ kubectl -n default logs pod/ml-ml-ttk-test-val-tp
$ kubectl -n default logs pod/ml-ml-ttk-test-cleanup

Copyright © 2020 Mojaloop Foundation
NAME: ml
LAST DEPLOYED: Mon Apr 24 07:12:50 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: ml-ml-ttk-test-setup
Last Started: Mon Apr 24 07:29:13 2023
Last Completed: Mon Apr 24 07:31:49 2023
Phase: Succeeded
TEST SUITE: ml-ml-ttk-test-val-gp
Last Started: Mon Apr 24 07:31:49 2023
Last Completed: Mon Apr 24 07:36:34 2023
Phase: Failed
NOTES:
Thank you for installing mojaloop.

Your release is named: ml.

Mojaloop Official Website: https://mojaloop.io

To learn more about Mojaloop: https://docs.mojaloop.io
To learn more about Mojaloop deployments: https://docs.mojaloop.io/legacy/deployment-guide
To learn more about this release: https://github.com/mojaloop/helm/releases/tag/v15.0.0

This Helm chart lives @ http://github.com/mojaloop/helm

To learn more about this deployment, try:

$ helm status ml

Use the following command to execute Test cases:

$ helm -n default test ml

Use the following command to execute Test cases and print logs to console:

$ helm -n default test ml --logs

Use the following command to execute a specific Test case:

$ helm -n default test ml --filter "name=ml-<TEST_NAME_1>,name=ml-<TEST_NAME_2>"

Use the following command to ignore a specific Test case:

$ helm -n default test ml --filter "!name=ml-<TEST_NAME_1>"

View Test logs with the following commands:
$ kubectl -n default logs pod/ml-ml-ttk-test-setup
$ kubectl -n default logs pod/ml-ml-ttk-test-val-gp
$ kubectl -n default logs pod/ml-ml-ttk-test-setup-tp
$ kubectl -n default logs pod/ml-ml-ttk-test-val-tp
$ kubectl -n default logs pod/ml-ml-ttk-test-cleanup

Copyright © 2020 Mojaloop Foundation

Error: unable to get pod logs for ml-ml-ttk-test-cleanup: pods "ml-ml-ttk-test-cleanup" not found
ubuntu@miniloop-vm ~/mini-loop/util/test (v5.0) $ kubectl -n default logs pod/ml-ml-ttk-test-val-tp
Error from server (NotFound): pods "ml-ml-ttk-test-val-tp" not found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.