Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm upgrade v10.4.0 -> v11.0.0 upgrade issues #1759

Closed
elnyry-sam-k opened this issue Oct 9, 2020 · 2 comments
Closed

Helm upgrade v10.4.0 -> v11.0.0 upgrade issues #1759

elnyry-sam-k opened this issue Oct 9, 2020 · 2 comments
Assignees
Labels
oss-core This is an issue - story or epic related to a feature on a Mojaloop core service or related to it
Milestone

Comments

@elnyry-sam-k
Copy link
Member

elnyry-sam-k commented Oct 9, 2020

Summary:
There's an issue upgrading from helm v10.4.0 -> v11.0.0 with default config

Severity:
Medium

Priority:
High

Expected Behavior
Helm upgrade succeeds without any issue

Steps to Reproduce

  1. Helm install v10.4.0 (default config) helm install --namespace xxxx d2-116-2 --version 10.4.0 mojaloop/mojaloop
  2. Helm upgrade to v11.0.0 (default config) helm upgrade --namespace xxxx d2-116-2 --version 11.0.0 mojaloop/mojaloop
  3. Logs below
Error: UPGRADE FAILED: rendered manifests contain a new resource that already exists. Unable to continue with update: existing resource conflict: namespace: xxxx, name: d2-116-2-account-lookup-service-admin, existing_kind: apps/v1, Kind=Deployment, new_kind: apps/v1, Kind=Deployment
  1. Logs with helm upgrade --namespace xxxx d2-116-2 --version 11.0.0 mojaloop/mojaloop --dry-run --debug
upgrade.go:84: [debug] preparing upgrade for d2-116-2
upgrade.go:92: [debug] performing update for d2-116-2
Error: UPGRADE FAILED: rendered manifests contain a new resource that already exists. Unable to continue with update: existing resource conflict: namespace: xxxx, name: d2-116-2-account-lookup-service-admin, existing_kind: apps/v1, Kind=Deployment, new_kind: apps/v1, Kind=Deployment
helm.go:75: [debug] existing resource conflict: namespace: xxxx, name: d2-116-2-account-lookup-service-admin, existing_kind: apps/v1, Kind=Deployment, new_kind: apps/v1, Kind=Deployment
rendered manifests contain a new resource that already exists. Unable to continue with update
helm.sh/helm/v3/pkg/action.(*Upgrade).performUpgrade
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/pkg/action/upgrade.go:221
helm.sh/helm/v3/pkg/action.(*Upgrade).Run
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/pkg/action/upgrade.go:93
main.newUpgradeCmd.func1
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/cmd/helm/upgrade.go:137
github.com/spf13/cobra.(*Command).execute
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:826
github.com/spf13/cobra.(*Command).ExecuteC
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914
github.com/spf13/cobra.(*Command).Execute
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
main.main
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/cmd/helm/helm.go:74
runtime.main
	/usr/local/Cellar/go@1.13/1.13.8/libexec/src/runtime/proc.go:203
runtime.goexit
	/usr/local/Cellar/go@1.13/1.13.8/libexec/src/runtime/asm_amd64.s:1357
UPGRADE FAILED
main.newUpgradeCmd.func1
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/cmd/helm/upgrade.go:139
github.com/spf13/cobra.(*Command).execute
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:826
github.com/spf13/cobra.(*Command).ExecuteC
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914
github.com/spf13/cobra.(*Command).Execute
	/private/tmp/helm-20200317-45091-md2sa4/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
main.main
	/private/tmp/helm-20200317-45091-md2sa4/src/helm.sh/helm/cmd/helm/helm.go:74
runtime.main
	/usr/local/Cellar/go@1.13/1.13.8/libexec/src/runtime/proc.go:203
runtime.goexit
	/usr/local/Cellar/go@1.13/1.13.8/libexec/src/runtime/asm_amd64.s:1357

Specifications

  • Component (if known): Helm
  • Version: v11.0.0
  • Platform: AWS (k8s)
  • Subsystem: helm upgrade
  • Type of testing: release / manual
  • Bug found/raised by: @elnyry-sam-k

Notes:

  • Severity when opened: medium
  • Priority when opened: high
@elnyry-sam-k elnyry-sam-k added bug oss-core This is an issue - story or epic related to a feature on a Mojaloop core service or related to it labels Oct 9, 2020
@elnyry-sam-k elnyry-sam-k added this to the Sprint 11.6 milestone Oct 9, 2020
@mdebarros
Copy link
Member

mdebarros commented Oct 9, 2020

I have not been able to reproduce the exact issue above, but I have picked up another issue causing the upgrade to fail due to the following change to the Kafka helm chart --> helm/charts@c194bce

Investigating options on how to handle this issue.

@mdebarros mdebarros changed the title Helm upgrade v10.4.0 -> v11.0.0 having issue ALS admin service upgrade Helm upgrade v10.4.0 -> v11.0.0 having upgrade issueup Oct 9, 2020
@mdebarros mdebarros changed the title Helm upgrade v10.4.0 -> v11.0.0 having upgrade issueup Helm upgrade v10.4.0 -> v11.0.0 upgrade issueu Oct 9, 2020
@mdebarros mdebarros changed the title Helm upgrade v10.4.0 -> v11.0.0 upgrade issueu Helm upgrade v10.4.0 -> v11.0.0 upgrade issue Oct 9, 2020
@mdebarros mdebarros changed the title Helm upgrade v10.4.0 -> v11.0.0 upgrade issue Helm upgrade v10.4.0 -> v11.0.0 upgrade issues Oct 9, 2020
@elnyry-sam-k elnyry-sam-k removed this from the Sprint 11.6 milestone Oct 22, 2020
@elnyry-sam-k elnyry-sam-k added this to the Sprint 12.2 milestone Nov 16, 2020
@mdebarros
Copy link
Member

mdebarros commented Nov 18, 2020

As a result of changes made at the dependency level (i.e. Kafka), we will not be able to support upgrades in v11.0.0.

Going forward, I propose that all external dependencies are removed from the Mojaloop helm charts as per the following story #1852. This will ensure that this issue is avoided in future releases.

I have not been able to reproduce the exact issue above, but I have picked up another issue causing the upgrade to fail due to the following change to the Kafka helm chart --> helm/charts@c194bce

Investigating options on how to handle this issue.

mdebarros added a commit to mojaloop/helm that referenced this issue Nov 25, 2020
## Helm release changes

### 1. Maintenance updates
1. GitHub issue: mojaloop/project#1617
2. FSP Interoperability API v1.1 Swagger file used from here: https://github.com/mojaloop/mojaloop-specification/tree/master/documents/v1.1-document-set
3. For breaking changes, please review the "Breaking Changes" section below for for Mojaloop Helm v11.0.0
4. Notes on simulators 
	- [Mojaloop-Simulator](https://github.com/mojaloop/mojaloop-simulator) is enabled by default (six instances used). 
	- Ensure that correct Postman Scripts are used if you wish to test against the Mojaloop-Simulators:
        	-  A single MojaSim collection is now available after reconciliation between two collections that existed previously.
        	- Setup Mojaloop Hub : [MojaloopHub_Setup](https://github.com/mojaloop/postman/blob/master/MojaloopHub_Setup.postman_collection.json)
        	- Setup Mojaloop Simulators for testing : [MojaloopSims_Onboarding](https://github.com/mojaloop/postman/blob/master/MojaloopSims_Onboarding.postman_collection.json)
        	- Golden path tests: [Golden_Path_Mojaloop](https://github.com/mojaloop/postman/blob/master/Golden_Path_Mojaloop.postman_collection.json)
	- 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. To run Golden path tests using the Legacy simulator:
                - Setup Mojaloop Hub, test FSPs : [ML_OSS_Setup_LegacySim](https://github.com/mojaloop/postman/blob/master/ML_OSS_Setup_LegacySim.postman_collection.json)
        	- Golden path tests: [ML_OSS_Golden_Path_LegacySim](https://github.com/mojaloop/postman/blob/master/ML_OSS_Golden_Path_LegacySim.postman_collection.json)
	- In order to run the Legacy Simulator postman collection or the Mojaloop-Simulator collection, their corresponding setup collection needs to be run first; this can be done without redeployment.
5. Upgrades to all core and supporting services to support 11.0.0 release _(see Application versions and release notes below)_
6. The current Golden Path collection expects
 `quoting-service.config.simple_routing_mode_enabled` to be set to `false` to get 100% pass-rate, if this flag is disabled, there will be failures in several quoting-service tests (7 expected failures). This command can be used to override the default config: `helm install moja ./mojaloop/ -n demo --set quoting-service.config.simple_routing_mode_enabled=false`
7. Along with this configuration for on-us transfers is disabled on both default deployments and postman (ON_US_TRANSFERS_ENABLED on postman) collections.
8. Moving to SemVer as the standard is now adopted. This will start with v11.0.0 and follow the general semantic versioning guidance after that.
9. Updated Promfana chart with "Prometheus: v2.20.1; Grafana: v7.1.1"
10. Updated EFK chart with “appVersion: "elasticsearch: 7.7.1; kibana: 7.7.1; apm-server: 7.7.1; fluentd-elasticsearch: 3.0.4"
11. Charts now support deployments on Kubernetes v1.16.x onwards - Fix for issue #219
12. Removed deprecated ingress-nginx chart (#350). Please use [Nginx official chart](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/).
13. Updated official Helm repo URIs for stable & incubator dependencies and documentation: 
	- Stable: https://kubernetes-charts.storage.googleapis.com/ --> https://charts.helm.sh/stable
	- Incubator: http://storage.googleapis.com/kubernetes-charts-incubator --> https://charts.helm.sh/incubator
13. Updated `innodb_flush_log_at_trx_commit` to the value of `1` for MySQL servers to ensure ACID compliance (ref: https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit)
14. Renamed Central-Event-Processor's (CEP) MongoDB instance dependency to: `nameOverride: cep-mongodb`. This will ensure that the CEP has its own MongoDB instance.
15. Renamed Mojaloop-Self-Testing-Toolkit's (TTK) MongoDB instance dependency to: `nameOverride: ttk-mongodb`. This will ensure that the TTK has its own MongoDB instance.


### 2. New Features
1. Along with changes from v10.4.0 related to the version v1.1 of the Mojaloop FSP Interoperability API, additional follow-up changes are implemented and a few fixes made. The changes are listed in the [tracking issue](mojaloop/mojaloop-specification#52) of the specification and there is additional context offered [here](https://mojaloop.io/mojaloop-fsp-interoperability-api-version-1-1/). Epic: mojaloop/project#1333
2. Added TTK CLI chart to ml-testing-toolkit (#380).
3. Added the option to pass a template as the rules.json (#353) in quoting service
4. Updates for bulk transfers support in MojaSims/Scheme-Adapter (mojaloop/project/issues/1386)
5. Added charts for bulk-get-handler: mojaloop/project/issues/1496
6. Package development versions (#354)
7. Update helm charts to support kubernetes deployments1.15 and later versions: mojaloop/project/issues/1463 (PR#349)
8. Added TTK CLI chart to ml-testing-toolkit (#380)
9. Modified the testing toolkit CLI chart to enabled scheduling (#381) 


### 3. Bug Fixes
1. Incorrect error behaviour on transfer fulfilment with future timestamp [1708](mojaloop/project#1708)
2. ACCEPT header returned in the PUT from switch for the timeout scenario [1710](mojaloop/project#1710) 
3. Date header missing from the Switch signature in timeout scenario [1709](mojaloop/project#1709)  
4. Valid transactionRequests callback in SDK responding with error response [1647](mojaloop/project#1647)  
5. Support test currencies XXX, XTS in ml-api-adapter [1652](mojaloop/project#1652)

## 4. Application versions
Application versions that are supported for this update:
1. ml-api-adapter: v10.5.0 -> **v11.1.2**
2. central-ledger: v10.5.1 -> **v11.3.1**
3. account-lookup-service: v10.4.2 -> **v11.1.2**
4. quoting-service: v10.5.5 -> **v11.1.4**
5. central-settlement: **v10.5.0** (no change)
6. central-event-processor: **v10.5.0** (no change)
7. bulk-api-adapter: v10.5.0 -> **v11.0.2**
8. email-notifier: **v9.5.0** (no change)
9. als-oracle-pathfinder: v9.4.0 --> **v10.2.0**
10. transaction-requests-service: v10.4.0 -> **v11.1.2**
11. finance-portal-ui: **v10.4.0** (no change)
12. finance-portal-backend-service: **v10.4.0** (no change)
13. settlement-management: **v8.8.2** (no change)
14. operator-settlement: **v9.2.1**  (no change)
15. event-sidecar: **v9.5.1**  (no change)
16. event-stream-processor: **v9.5.0-snapshot**
17. simulator: v10.5.3 -> **v11.0.2**
18. mojaloop-simulator: v10.4.1 -> **v11.2.1**
19. sdk-scheme-adapter: v10.5.0 -> **v11.8.0**
20. ml-testing-toolkit: v10.4.1 -> **v11.5.0**
21. ml-testing-toolkit-ui: v10.4.1 -> **v11.5.0**
22. ml-testing-toolkit-cli: **v11.3.0** (new)
 
## 5. Application release notes
1. ml-api-adapter - https://github.com/mojaloop/ml-api-adapter/releases/tag/v11.1.2
2. central-ledger - https://github.com/mojaloop/central-ledger/releases/tag/v11.3.1
3. account-lookup-service - https://github.com/mojaloop/account-lookup-service/releases/tag/v11.1.2
4. quoting-service - https://github.com/mojaloop/quoting-service/releases/tag/v11.1.4
5. central-settlement- https://github.com/mojaloop/central-settlement/releases/tag/v10.5.0
6. central-event-processor - https://github.com/mojaloop/central-event-processor/releases/tag/v10.5.0
7. bulk-api-adapter - https://github.com/mojaloop/bulk-api-adapter/releases/tag/v11.0.2
8. email-notifier - https://github.com/mojaloop/email-notifier/releases/tag/v9.5.0
9. als-oracle-pathfinder - https://github.com/mojaloop/als-oracle-pathfinder/releases/tag/v10.2.0
10. transaction-requests-service - https://github.com/mojaloop/transaction-requests-service/releases/tag/v11.1.2
11. finance-portal-ui - https://github.com/mojaloop/finance-portal-ui/releases/tag/v10.4.0
12. finance-portal-backend-service - https://github.com/mojaloop/finance-portal-backend-service/releases/tag/v10.4.0
13. settlement-management - https://github.com/mojaloop/settlement-management/releases/tag/v8.8.2
14. operator-settlement - https://github.com/mojaloop/operator-settlement/releases/tag/v9.2.1
15. event-sidecar - https://github.com/mojaloop/event-sidecar/releases/tag/v9.5.1
16. event-stream-processor - https://github.com/mojaloop/event-stream-processor/releases/v9.5.0-snapshot
17. simulator - https://github.com/mojaloop/simulator/releases/tag/v11.0.2
18. mojaloop-simulator - https://github.com/mojaloop/mojaloop-simulator/releases/tag/v11.2.1
19. sdk-scheme-adapter - https://github.com/mojaloop/sdk-scheme-adapter/releases/tag/v11.8.0
20. ml-testing-toolkit - https://github.com/mojaloop/ml-testing-toolkit/releases/tag/v11.5.0
21. ml-testing-toolkit-ui - https://github.com/mojaloop/ml-testing-toolkit-ui/releases/tag/v11.5.0
22. ml-testing-toolkit-cli - https://github.com/mojaloop/ml-testing-toolkit-ui/releases/tag/v11.3.0
 
## 6. Operational Chart versions
- EFK: **v7.1.0**  -> **v11.0.0**
- Promfana: **v8.4.0** -> **v11.0.0**

## 7. Breaking changes
- Helm release v10.4.0 is not upgradable to v11.0.0 - mojaloop/project#1759

## 8. Known Issues
- Proposal to remove external dependencies from Mojaloop Helm Charts - mojaloop/design-authority-project#69 **(_Note: this will be a breaking change in the next major release_)**
- ~Testing Toolkit Post-Hook Install tests are not compatible with Postman (_Note: this will not impact default installations_) - mojaloop/project#1864


## 9. Contributors:

- Contributing organizations: BMGF, CrossLake, MBX 
- Crosslake: @lewisdaly
- ModusBox: @amarmodus, @elnyry-sam-k , @mdebarros, @oderayi, @rmothilal , @vgenev , @vijayg10, @msk-, @vbarzokas, @aaronreynoza, @KamuelaFranco
- Individuals:  @vorburger
_Note: companies in alphabetical order_

---
## PR Dependencies
- mojaloop/project#1866
- mojaloop/postman#188
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
oss-core This is an issue - story or epic related to a feature on a Mojaloop core service or related to it
Projects
None yet
Development

No branches or pull requests

2 participants