diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml new file mode 100644 index 000000000..d38b74aec --- /dev/null +++ b/.github/workflows/create-release-pr.yml @@ -0,0 +1,249 @@ +# NOTES: +# - GitHub Actions must be explicitly allowed to create pull requests in this repository. +# This setting can be found in the repository's settings under Actions > General > Workflow permissions. +# - A repository secret `AUTO_RELEASE_TOKEN` (permissions: `contents: write`, `pull-requests: write`, `repositories: read`) needs to be created. +# The secret should contain a github access token with the permissions specified above. +# The secret is used by the `create-pull-request` action to create the pull request and `updatecli` to access all updateable repositories. +# The secret can be created at https://github.com/mojaloop/helm/settings/secrets/actions + +name: Create Release PR + +on: + workflow_dispatch: + inputs: + branch: + type: string + description: "Branch to create release PR from (e.g. master)" + required: false + default: "master" + release_name: + type: string + description: "Release name (e.g. Acacia)" + required: false + release_version: + type: string + description: "Release version (e.g. v1.0.0)" + required: false + last_release_tag: + type: string + description: "Last release tag (e.g. v1.0.0)" + required: false + example_backend_version: + type: string + description: "Example backend version (e.g. v1.0.0)" + required: true + default: "v15.0.0" + deployment_release_name: + type: string + description: "Deployment release name (e.g. moja1)" + required: true + default: "moja2" + deployment_namespace: + type: string + description: "Deployment namespace (e.g. moja1)" + required: true + default: "moja2" + deployment_values_file: + type: string + description: "Deployment values file in oss-core-env repo" + required: true + default: "helm-values-moja2-mojaloop-v15.3.0.yaml" + +jobs: + create_release_pr: + name: Create Release PR + runs-on: ubuntu-latest + env: + AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }} + AWS_DEFAULT_OUTPUT: ${{ vars.AWS_DEFAULT_OUTPUT }} + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v3 + with: + version: v3.13.3 + + - name: Install dependencies + run: | + # Install mo + curl -sL https://raw.githubusercontent.com/tests-always-included/mo/master/mo -o /usr/local/bin/mo + chmod +x /usr/local/bin/mo + + # Install updatecli + curl -sL https://github.com/updatecli/updatecli/releases/download/v0.71.0/updatecli_amd64.deb -o /tmp/updatecli_amd64.deb + sudo apt install /tmp/updatecli_amd64.deb + + # Install jq + sudo apt-get install jq + + - name: Setup Helm repositories + run: | + 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 + helm repo add mojaloop https://mojaloop.io/helm/repo/ + helm repo update + + - name: Update chart dependencies + env: + AUTO_RELEASE_TOKEN: ${{ secrets.AUTO_RELEASE_TOKEN }} + run: .github/workflows/scripts/update-charts.sh + + - name: Generate changelog + env: + AUTO_RELEASE_TOKEN: ${{ secrets.AUTO_RELEASE_TOKEN }} + run: .github/workflows/scripts/generate-changelog.sh ${{ inputs.last_release_tag }} + + - name: Determine release version number + id: determine-release-version + env: + _RELEASE_VERSION: ${{ inputs.release_version }} + run: | + if [[ -z $_RELEASE_VERSION ]]; then + release_version=$(.github/workflows/scripts/determine-release-version.sh '${{ inputs.last_release_tag }}') + echo "release_version=$release_version" + echo "RELEASE_VERSION=$(echo $release_version)" >> "$GITHUB_OUTPUT" + else + echo "RELEASE_VERSION=$(echo $_RELEASE_VERSION)" >> "$GITHUB_OUTPUT" + fi + + - name: Next release version + run: | + release_version='${{ steps.determine-release-version.outputs.RELEASE_VERSION }}' + if [[ -z "$release_version" || ! "$release_version" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "RELEASE_VERSION is not set or is not a valid semver version" + exit 1 + fi + + - name: Prepare TTK test cases release + uses: ncipollo/release-action@v1 + with: + token: ${{ secrets.AUTO_RELEASE_TOKEN }} + repo: testing-toolkit-test-cases + makeLatest: true + allowUpdates: false + generateReleaseNotes: true + skipIfReleaseExists: true + tag: ${{ steps.determine-release-version.outputs.RELEASE_VERSION }} + commit: master + + - name: Update TTK test cases version + env: + AUTO_RELEASE_TOKEN: ${{ secrets.AUTO_RELEASE_TOKEN }} + run: updatecli apply --config .github/workflows/manifests/third-pass/mojaloop.yaml + + - name: Syncronize release version with mojaloop chart version + env: + AUTO_RELEASE_TOKEN: ${{ secrets.AUTO_RELEASE_TOKEN }} + run: | + release_version='${{ steps.determine-release-version.outputs.RELEASE_VERSION }}' + if [[ -z "$release_version" || ! "$release_version" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "RELEASE_VERSION is not set or is not a valid semver version" + exit 1 + fi + release_version="${release_version:1}" + sed -i "s/^version:.*/version: $release_version/" mojaloop/Chart.yaml + awk -v release_version="$release_version" '/^version:/ {print "version: " release_version; next} 1' mojaloop/Chart.yaml > mojaloop/Chart.yaml.tmp && mv mojaloop/Chart.yaml.tmp mojaloop/Chart.yaml + + - name: Generate release note + id: generate-release-note + env: + AUTO_RELEASE_TOKEN: ${{ secrets.AUTO_RELEASE_TOKEN }} + run: | + .github/workflows/scripts/generate-release-note.sh '${{ inputs.release_name }}' '${{ steps.determine-release-version.outputs.RELEASE_VERSION }}' '${{ inputs.last_release_tag }}' '${{ steps.determine-release-version.outputs.RELEASE_VERSION }}' '${{ inputs.example_backend_version }}' + echo "RELEASE_NOTE_FILE=.changelog/release-${{ steps.determine-release-version.outputs.RELEASE_VERSION }}.md" >> "$GITHUB_OUTPUT" + + - name: Create pull request + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.AUTO_RELEASE_TOKEN }} + commit-message: "chore: upgrade helm chart depdenencies" + title: "[auto] feat: release candidate for ${{ inputs.release_name }} ${{ steps.determine-release-version.outputs.RELEASE_VERSION }}" + body-path: ${{ steps.generate-release-note.outputs.RELEASE_NOTE_FILE }} + branch: release/release-candidate-${{ inputs.release_name }}-${{ steps.determine-release-version.outputs.RELEASE_VERSION }}-${{ github.run_id }} + base: master + draft: true + + - name: Clone oss-core-env repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.AUTO_RELEASE_TOKEN }} + repository: mojaloop/oss-core-env + ref: main + path: .tmp/oss-core-env + + - name: Prepare deployment values file + run: | + set -a && . .tmp/oss-core-env/config/test-mojaloop-live/.env && set +a + sed -i "s/{{CI_ENV_NAME}}/$ENV_NAME/" .tmp/oss-core-env/config/test-mojaloop-live/${{ inputs.deployment_values_file }} + sed -i "s/{{CI_HELM_NAMESPACE}}/${{ inputs.deployment_namespace }}/" .tmp/oss-core-env/config/test-mojaloop-live/${{ inputs.deployment_values_file }} + sed -i "s/{{CI_ENV_VERSION}}/${{ steps.determine-release-version.outputs.RELEASE_VERSION }}/" .tmp/oss-core-env/config/test-mojaloop-live/${{ inputs.deployment_values_file }} + + - name: Set KUBECONFIG + run: | + echo "${{ secrets.AUTO_RELEASE_KUBECONFIG }}" > .tmp/test.mojaloop.live.conf + chmod 600 .tmp/test.mojaloop.live.conf + + - name: Cluster Info + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + run: kubectl cluster-info + + - name: Delete existing deployments + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + run: helm ls -n ${{ inputs.deployment_namespace }} --short | xargs -L1 sh -c 'if [ -n "$1" ]; then helm uninstall -n ${{ inputs.deployment_namespace }} "$1"; fi' _ + + - name: Deploy backend + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + run: helm install backend mojaloop/example-mojaloop-backend --namespace ${{ inputs.deployment_namespace }} + + - name: Build charts + run: | + ./update-charts-dep.sh + + - name: Deploy charts + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + run: | + # Install Mojaloop + helm install ${{ inputs.deployment_release_name }} ./mojaloop -f .tmp/oss-core-env/config/test-mojaloop-live/${{ inputs.deployment_values_file }} --namespace ${{ inputs.deployment_namespace }} + + - name: Wait for deployment to be ready + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + timeout-minutes: 15 + run: | + while [[ $(kubectl get pods -n ${{ inputs.deployment_namespace }} -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}' | grep False) ]]; do + echo "Waiting for pods to be ready..." + sleep 10 + done + echo "All pods are ready!" + continue-on-error: true + + - name: Run TTK tests + env: + KUBECONFIG: .tmp/test.mojaloop.live.conf + timeout-minutes: 15 + run: | + helm test ${{ inputs.deployment_release_name }} --namespace ${{ inputs.deployment_namespace }} + continue-on-error: true + + - name: Clean up + run: | + rm -rf .tmp diff --git a/.github/workflows/manifests/first-pass/account-lookup-service.yaml b/.github/workflows/manifests/first-pass/account-lookup-service.yaml new file mode 100644 index 000000000..f9f6f0a0b --- /dev/null +++ b/.github/workflows/manifests/first-pass/account-lookup-service.yaml @@ -0,0 +1,131 @@ +name: account-lookup-service + +sources: + account-lookup-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: account-lookup-service + als-oracle-pathfinder: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: als-oracle-pathfinder + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-account-lookup-service: + sourceid: account-lookup-service + kind: dockerimage + spec: + image: mojaloop/account-lookup-service + docker-als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: dockerimage + spec: + image: mojaloop/als-oracle-pathfinder + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + appVersion-account-lookup-service: + sourceid: account-lookup-service + kind: file + spec: + file: account-lookup-service/Chart.yaml + matchpattern: '(account-lookup-service:) (v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1 {{ source "account-lookup-service" }}' + appVersion-als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: file + spec: + file: account-lookup-service/Chart.yaml + matchpattern: '(als-oracle-pathfinder:) (v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1 {{ source "als-oracle-pathfinder" }}' + account-lookup-service: + sourceid: account-lookup-service + kind: helmchart + spec: + name: account-lookup-service + file: values.yaml + key: $.account-lookup-service.image.tag + account-lookup-service-admin: + sourceid: account-lookup-service + kind: helmchart + spec: + name: account-lookup-service + file: values.yaml + key: $.account-lookup-service-admin.image.tag + als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: helmchart + spec: + name: account-lookup-service + file: values.yaml + key: $.als-oracle-pathfinder.image.tag + common: + sourceid: common + kind: helmchart + spec: + name: account-lookup-service + file: Chart.yaml + key: $.dependencies[3].version + chart-admin: + sourceid: account-lookup-service + kind: helmchart + spec: + name: account-lookup-service/chart-admin + file: values.yaml + key: $.image.tag + appversion: true + chart-admin--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: account-lookup-service/chart-admin + file: values.yaml + key: $.sidecar.image.tag + chart-admin--common: + sourceid: common + kind: helmchart + spec: + name: account-lookup-service/chart-admin + file: Chart.yaml + key: $.dependencies[0].version + chart-service: + sourceid: account-lookup-service + kind: helmchart + spec: + name: account-lookup-service/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: account-lookup-service/chart-service + file: values.yaml + key: $.sidecar.image.tag + chart-service--common: + sourceid: common + kind: helmchart + spec: + name: account-lookup-service/chart-service + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/als-oracle-pathfinder.yaml b/.github/workflows/manifests/first-pass/als-oracle-pathfinder.yaml new file mode 100644 index 000000000..781fa942d --- /dev/null +++ b/.github/workflows/manifests/first-pass/als-oracle-pathfinder.yaml @@ -0,0 +1,38 @@ +name: als-oracle-pathfinder + +sources: + als-oracle-pathfinder: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: als-oracle-pathfinder + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: dockerimage + spec: + image: mojaloop/als-oracle-pathfinder + +targets: + als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: helmchart + spec: + name: als-oracle-pathfinder + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: als-oracle-pathfinder + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/bulk-api-adapter.yaml b/.github/workflows/manifests/first-pass/bulk-api-adapter.yaml new file mode 100644 index 000000000..09bac91d5 --- /dev/null +++ b/.github/workflows/manifests/first-pass/bulk-api-adapter.yaml @@ -0,0 +1,75 @@ +name: bulk-api-adapter + +sources: + bulk-api-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: bulk-api-adapter + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-bulk-api-adapter: + sourceid: bulk-api-adapter + kind: dockerimage + spec: + image: mojaloop/bulk-api-adapter + +targets: + bulk-api-adapter-service: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: bulk-api-adapter + file: values.yaml + key: $.bulk-api-adapter-service.image.tag + appversion: true + bulk-api-adapter-handler-notification: + sourceid: bulk-api-adapter + kind: yaml + spec: + file: bulk-api-adapter/values.yaml + key: $.bulk-api-adapter-handler-notification.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: bulk-api-adapter + file: Chart.yaml + key: $.dependencies[2].version + chart-adapter-notification: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: bulk-api-adapter/chart-handler-notification + file: values.yaml + key: $.image.tag + appversion: true + chart-adapter-notification--common: + sourceid: common + kind: helmchart + spec: + name: bulk-api-adapter/chart-handler-notification + file: Chart.yaml + key: $.dependencies[0].version + chart-service: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: bulk-api-adapter/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--common: + sourceid: common + kind: helmchart + spec: + name: bulk-api-adapter/chart-service + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/bulk-centralledger.yaml b/.github/workflows/manifests/first-pass/bulk-centralledger.yaml new file mode 100644 index 000000000..a75a70b85 --- /dev/null +++ b/.github/workflows/manifests/first-pass/bulk-centralledger.yaml @@ -0,0 +1,122 @@ +name: bulk-centralledger + +sources: + central-ledger: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-ledger + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-central-ledger: + sourceid: central-ledger + kind: dockerimage + spec: + image: mojaloop/central-ledger + +targets: + cl-handler-bulk-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger + file: values.yaml + key: $.cl-handler-bulk-transfer-prepare.image.tag + appversion: true + cl-handler-bulk-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger + file: values.yaml + key: $.cl-handler-bulk-transfer-fulfil.image.tag + appversion: true + cl-handler-bulk-transfer-processing: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger + file: values.yaml + key: $.cl-handler-bulk-transfer-processing.image.tag + appversion: true + cl-handler-bulk-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger + file: values.yaml + key: $.cl-handler-bulk-transfer-get.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: bulk-centralledger + file: Chart.yaml + key: $.dependencies[4].version + chart-handler-bulk-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-fulfil + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-bulk-transfer-fulfil--common: + sourceid: common + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-fulfil + file: Chart.yaml + key: $.dependencies[0].version + chart-handler-bulk-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-get + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-bulk-transfer-get--common: + sourceid: common + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-get + file: Chart.yaml + key: $.dependencies[0].version + chart-handler-bulk-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-prepare + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-bulk-transfer-prepare--common: + sourceid: common + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-prepare + file: Chart.yaml + key: $.dependencies[0].version + chart-handler-bulk-transfer-processing: + sourceid: central-ledger + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-processing + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-bulk-transfer-processing--common: + sourceid: common + kind: helmchart + spec: + name: bulk-centralledger/chart-handler-bulk-transfer-processing + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/centraleventprocessor.yaml b/.github/workflows/manifests/first-pass/centraleventprocessor.yaml new file mode 100644 index 000000000..2928a6514 --- /dev/null +++ b/.github/workflows/manifests/first-pass/centraleventprocessor.yaml @@ -0,0 +1,39 @@ +name: centraleventprocessor + +sources: + central-event-processor: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-event-processor + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-central-event-processor: + sourceid: central-event-processor + kind: dockerimage + spec: + image: mojaloop/central-event-processor + +targets: + central-event-processor: + sourceid: central-event-processor + kind: helmchart + spec: + name: centraleventprocessor + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: centraleventprocessor + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/centralledger.yaml b/.github/workflows/manifests/first-pass/centralledger.yaml new file mode 100644 index 000000000..73870077d --- /dev/null +++ b/.github/workflows/manifests/first-pass/centralledger.yaml @@ -0,0 +1,241 @@ +name: centralledger + +sources: + central-ledger: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-ledger + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + +conditions: + docker-central-ledger: + sourceid: central-ledger + kind: dockerimage + spec: + image: mojaloop/central-ledger + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + centralledger-service: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-service.image.tag + appversion: true + centralledger-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-service.sidecar.image.tag + centralledger-handler-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-prepare.image.tag + appversion: true + centralledger-handler-transfer-prepare--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-prepare.sidecar.image.tag + appversion: true + centralledger-handler-transfer-position: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-position.image.tag + appversion: true + centralledger-handler-transfer-position--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-position.sidecar.image.tag + centralledger-handler-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-get.image.tag + appversion: true + centralledger-handler-transfer-get--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-get.sidecar.image.tag + centralledger-handler-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-fulfil.image.tag + appversion: true + centralledger-handler-transfer-fulfil--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-transfer-fulfil.sidecar.image.tag + centralledger-handler-timeout: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-timeout.image.tag + appversion: true + centralledger-handler-timeout--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-timeout.sidecar.image.tag + centralledger-handler-admin-transfer: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-admin-transfer.image.tag + appversion: true + centralledger-handler-admin-transfer--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger + file: values.yaml + key: $.centralledger-handler-admin-transfer.sidecar.image.tag + chart-handler-admin-transfer: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-admin-transfer + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-admin-transfer--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-admin-transfer + file: values.yaml + key: $.sidecar.image.tag + chart-handler-timeout: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-timeout + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-timeout--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-timeout + file: values.yaml + key: $.sidecar.image.tag + chart-handler-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-fulfil + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-transfer-fulfil--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-fulfil + file: values.yaml + key: $.sidecar.image.tag + chart-handler-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-get + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-transfer-get--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-get + file: values.yaml + key: $.sidecar.image.tag + chart-handler-transfer-position: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-position + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-transfer-position--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-position + file: values.yaml + key: $.sidecar.image.tag + chart-handler-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-prepare + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-transfer-prepare--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-handler-transfer-prepare + file: values.yaml + key: $.sidecar.image.tag + chart-service: + sourceid: central-ledger + kind: helmchart + spec: + name: centralledger/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralledger/chart-service + file: values.yaml + key: $.sidecar.image.tag + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/centralsettlement.yaml b/.github/workflows/manifests/first-pass/centralsettlement.yaml new file mode 100644 index 000000000..bf9da37a4 --- /dev/null +++ b/.github/workflows/manifests/first-pass/centralsettlement.yaml @@ -0,0 +1,105 @@ +name: centralsettlement + +sources: + central-settlement: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-settlement + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + +conditions: + docker-central-settlement: + sourceid: central-settlement + kind: dockerimage + spec: + image: mojaloop/central-settlement + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + centralsettlement-service: + sourceid: central-settlement + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-service.image.tag + appversion: true + centralsettlement-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-service.sidecar.image.tag + centralsettlement-handler-deferredsettlement: + sourceid: central-settlement + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-deferredsettlement.image.tag + appversion: true + centralsettlement-handler-deferredsettlement--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-deferredsettlement.sidecar.image.tag + centralsettlement-handler-grosssettlement: + sourceid: central-settlement + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-grosssettlement.image.tag + appversion: true + centralsettlement-handler-grosssettlement--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-grosssettlement.sidecar.image.tag + centralsettlement-handler-rules: + sourceid: central-settlement + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-rules.image.tag + appversion: true + centralsettlement-handler-rules--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralsettlement + file: values.yaml + key: $.centralsettlement-handler-rules.sidecar.image.tag + chart-service: + sourceid: central-settlement + kind: helmchart + spec: + name: centralsettlement/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: centralsettlement/chart-service + file: values.yaml + key: $.sidecar.image.tag + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/emailnotifier.yaml b/.github/workflows/manifests/first-pass/emailnotifier.yaml new file mode 100644 index 000000000..fe2c62ae6 --- /dev/null +++ b/.github/workflows/manifests/first-pass/emailnotifier.yaml @@ -0,0 +1,38 @@ +name: emailnotifier + +sources: + email-notifier: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: email-notifier + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-email-notifier: + sourceid: email-notifier + kind: dockerimage + spec: + image: mojaloop/email-notifier + +targets: + email-notifier: + sourceid: email-notifier + kind: helmchart + spec: + name: emailnotifier + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: emailnotifier + file: Chart.yaml + key: $.dependencies[0].version diff --git a/.github/workflows/manifests/first-pass/eventstreamprocessor.yaml b/.github/workflows/manifests/first-pass/eventstreamprocessor.yaml new file mode 100644 index 000000000..4644b8cce --- /dev/null +++ b/.github/workflows/manifests/first-pass/eventstreamprocessor.yaml @@ -0,0 +1,39 @@ +name: eventstreamprocessor + +sources: + event-stream-processor: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-stream-processor + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + + +conditions: + docker-event-stream-processor: + sourceid: event-stream-processor + kind: dockerimage + spec: + image: mojaloop/event-stream-processor + +targets: + event-stream-processor: + sourceid: event-stream-processor + kind: helmchart + spec: + name: eventstreamprocessor + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: eventstreamprocessor + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/example-mojaloop-backend.yaml b/.github/workflows/manifests/first-pass/example-mojaloop-backend.yaml new file mode 100644 index 000000000..b6e462521 --- /dev/null +++ b/.github/workflows/manifests/first-pass/example-mojaloop-backend.yaml @@ -0,0 +1,104 @@ +name: example-mojaloop-backend + +sources: + kafka: + kind: helmchart + spec: + url: https://charts.bitnami.com/bitnami + name: kafka + mysql: + kind: helmchart + spec: + url: https://charts.bitnami.com/bitnami + name: mysql + mongodb: + kind: helmchart + spec: + url: https://charts.bitnami.com/bitnami + name: mongodb + redis: + kind: helmchart + spec: + url: https://charts.bitnami.com/bitnami + name: redis + +conditions: {} + +targets: + appVersion-mysql: + sourceid: mysql + kind: file + spec: + file: example-mojaloop-backend/Chart.yaml + matchpattern: '(mysql:) ([\d\.]+)' + replacepattern: '$1 {{ source "mysql" }}' + appVersion-kafka: + sourceid: kafka + kind: file + spec: + file: example-mojaloop-backend/Chart.yaml + matchpattern: '(kafka:) ([\d\.]+)' + replacepattern: '$1 {{ source "kafka" }}' + appVersion-mongodb: + sourceid: mongodb + kind: file + spec: + file: example-mojaloop-backend/Chart.yaml + matchpattern: '(mongodb:) ([\d\.]+)' + replacepattern: '$1 {{ source "mongodb" }}' + appVersion-redis: + sourceid: redis + kind: file + spec: + file: example-mojaloop-backend/Chart.yaml + matchpattern: '(redis:) ([\d\.]+)' + replacepattern: '$1 {{ source "redis" }}' + kafka: + sourceid: kafka + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[0].version + mysql: + sourceid: mysql + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[1].version + cl-mongodb: + sourceid: mongodb + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[2].version + cep-mongodb: + sourceid: mongodb + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[3].version + ttk-mongodb: + sourceid: mongodb + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[4].version + ttksims-redis: + sourceid: redis + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[5].version + auth-svc-redis: + sourceid: redis + kind: helmchart + spec: + name: example-mojaloop-backend + file: Chart.yaml + key: $.dependencies[6].version diff --git a/.github/workflows/manifests/first-pass/kube-system.yaml b/.github/workflows/manifests/first-pass/kube-system.yaml new file mode 100644 index 000000000..24e0a5b87 --- /dev/null +++ b/.github/workflows/manifests/first-pass/kube-system.yaml @@ -0,0 +1,19 @@ +name: kube-system + +sources: + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: {} + +targets: + common: + sourceid: common + kind: helmchart + spec: + name: kube-system/ntpd + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/ml-api-adapter.yaml b/.github/workflows/manifests/first-pass/ml-api-adapter.yaml new file mode 100644 index 000000000..ba63df4c9 --- /dev/null +++ b/.github/workflows/manifests/first-pass/ml-api-adapter.yaml @@ -0,0 +1,116 @@ +name: ml-api-adapter + +sources: + ml-api-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-api-adapter + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-ml-api-adapter: + sourceid: ml-api-adapter + kind: dockerimage + spec: + image: mojaloop/ml-api-adapter + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + ml-api-adapter-service: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: ml-api-adapter + file: values.yaml + key: $.ml-api-adapter-service.image.tag + appversion: true + ml-api-adapter-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: ml-api-adapter + file: values.yaml + key: $.ml-api-adapter-service.sidecar.image.tag + ml-api-adapter-handler-notification: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: ml-api-adapter + file: values.yaml + key: $.ml-api-adapter-handler-notification.image.tag + appversion: true + ml-api-adapter-handler-notification--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: ml-api-adapter + file: values.yaml + key: $.ml-api-adapter-handler-notification.sidecar.image.tag + common: + sourceid: common + kind: helmchart + spec: + name: ml-api-adapter + file: Chart.yaml + key: $.dependencies[2].version + chart-handler-notification: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: ml-api-adapter/chart-handler-notification + file: values.yaml + key: $.image.tag + appversion: true + chart-handler-notification--sidecar: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: ml-api-adapter/chart-handler-notification + file: values.yaml + key: $.sidecar.image.tag + appversion: true + chart-handler-notification--common: + sourceid: common + kind: helmchart + spec: + name: ml-api-adapter/chart-handler-notification + file: Chart.yaml + key: $.dependencies[0].version + chart-service: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: ml-api-adapter/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: ml-api-adapter/chart-service + file: values.yaml + key: $.sidecar.image.tag + chart-service--common: + sourceid: common + kind: helmchart + spec: + name: ml-api-adapter/chart-service + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/ml-operator.yaml b/.github/workflows/manifests/first-pass/ml-operator.yaml new file mode 100644 index 000000000..07a80bd10 --- /dev/null +++ b/.github/workflows/manifests/first-pass/ml-operator.yaml @@ -0,0 +1,21 @@ +# NOTE: Automated update of the dependencies in values.yaml is currently not supported due to its current format. +# This will be resolved in a future release. For now, please manually update the dependencies. +name: ml-operator + +sources: + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: {} + +targets: + common: + sourceid: common + kind: helmchart + spec: + name: ml-operator + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/ml-testing-toolkit-cli.yaml b/.github/workflows/manifests/first-pass/ml-testing-toolkit-cli.yaml new file mode 100644 index 000000000..05cfd30aa --- /dev/null +++ b/.github/workflows/manifests/first-pass/ml-testing-toolkit-cli.yaml @@ -0,0 +1,33 @@ +name: ml-testing-toolkit-cli + +sources: + ml-testing-toolkit-client-lib: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit-client-lib + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: {} + +targets: + ml-testing-toolkit-client-lib: + sourceid: ml-testing-toolkit-client-lib + kind: helmchart + spec: + name: ml-testing-toolkit-cli + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: ml-testing-toolkit-cli + file: Chart.yaml + key: $.dependencies[0].version diff --git a/.github/workflows/manifests/first-pass/ml-testing-toolkit.yaml b/.github/workflows/manifests/first-pass/ml-testing-toolkit.yaml new file mode 100644 index 000000000..e9df21ea2 --- /dev/null +++ b/.github/workflows/manifests/first-pass/ml-testing-toolkit.yaml @@ -0,0 +1,85 @@ +name: ml-testing-toolkit + +sources: + ml-testing-toolkit: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit + ml-testing-toolkit-ui: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit-ui + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: dockerimage + spec: + image: mojaloop/ml-testing-toolkit + docker-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: dockerimage + spec: + image: mojaloop/ml-testing-toolkit-ui + +targets: + appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: ml-testing-toolkit/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: ml-testing-toolkit/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + common: + sourceid: common + kind: helmchart + spec: + name: ml-testing-toolkit + file: Chart.yaml + key: $.dependencies[2].version + chart-backend: + sourceid: ml-testing-toolkit + kind: helmchart + spec: + name: ml-testing-toolkit/chart-backend + file: values.yaml + key: $.image.tag + appversion: true + chart-backend--common: + sourceid: common + kind: helmchart + spec: + name: ml-testing-toolkit/chart-backend + file: Chart.yaml + key: $.dependencies[0].version + chart-frontend: + sourceid: ml-testing-toolkit-ui + kind: helmchart + spec: + name: ml-testing-toolkit/chart-frontend + file: values.yaml + key: $.image.tag + appversion: true + chart-frontend--common: + sourceid: common + kind: helmchart + spec: + name: ml-testing-toolkit/chart-frontend + file: Chart.yaml + key: $.dependencies[0].version \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/mojaloop-bulk.yaml b/.github/workflows/manifests/first-pass/mojaloop-bulk.yaml new file mode 100644 index 000000000..3b5d5f098 --- /dev/null +++ b/.github/workflows/manifests/first-pass/mojaloop-bulk.yaml @@ -0,0 +1,97 @@ +name: mojaloop-bulk + +sources: + bulk-api-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: bulk-api-adapter + central-ledger: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-ledger + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-bulk-api-adapter: + sourceid: bulk-api-adapter + kind: dockerimage + spec: + image: mojaloop/bulk-api-adapter + docker-central-ledger: + sourceid: central-ledger + kind: dockerimage + spec: + image: mojaloop/central-ledger + +targets: + appVersion-bulk-api-adapter: + sourceid: bulk-api-adapter + kind: file + spec: + file: mojaloop-bulk/Chart.yaml + matchpattern: '(bulk-api-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "bulk-api-adapter" }}' + appVersion-central-ledger: + sourceid: central-ledger + kind: file + spec: + file: mojaloop-bulk/Chart.yaml + matchpattern: '(central-ledger:) (v[\d\.]+)' + replacepattern: '$1 {{ source "central-ledger" }}' + common: + sourceid: common + kind: helmchart + spec: + name: mojaloop-bulk + file: Chart.yaml + key: $.dependencies[2].version + bulk-api-adapter--bulk-api-adapter-service: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-api-adapter.bulk-api-adapter-service.image.tag + bulk-api-adapter--bulk-api-adapter-handler-notification: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-api-adapter.bulk-api-adapter-handler-notification.image.tag + bulk-centralledger--cl-handler-bulk-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-centralledger.cl-handler-bulk-transfer-prepare.image.tag + bulk-centralledger--cl-handler-bulk-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-centralledger.cl-handler-bulk-transfer-fulfil.image.tag + bulk-centralledger--cl-handler-bulk-transfer-processing: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-centralledger.cl-handler-bulk-transfer-processing.image.tag + bulk-centralledger--cl-handler-bulk-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop-bulk + file: values.yaml + key: $.bulk-centralledger.cl-handler-bulk-transfer-get.image.tag \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/mojaloop-simulator.yaml b/.github/workflows/manifests/first-pass/mojaloop-simulator.yaml new file mode 100644 index 000000000..d35465745 --- /dev/null +++ b/.github/workflows/manifests/first-pass/mojaloop-simulator.yaml @@ -0,0 +1,100 @@ +name: mojaloop-simulator + +sources: + # NOTE: redis update will be added in the future + # redis: + # kind: dockerimage + # spec: + # image: redis + sdk-scheme-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: sdk-scheme-adapter + mojaloop-simulator: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: mojaloop-simulator + thirdparty-sdk: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: thirdparty-sdk + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: dockerimage + spec: + image: mojaloop/sdk-scheme-adapter + docker-mojaloop-simulator: + sourceid: mojaloop-simulator + kind: dockerimage + spec: + image: mojaloop/mojaloop-simulator + docker-thirdparty-sdk: + sourceid: thirdparty-sdk + kind: dockerimage + spec: + image: mojaloop/thirdparty-sdk + +targets: + appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-simulator/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + appVersion-mojaloop-simulator: + sourceid: mojaloop-simulator + kind: file + spec: + file: mojaloop-simulator/Chart.yaml + matchpattern: '(mojaloop-simulator:) (v[\d\.]+)' + replacepattern: '$1 {{ source "mojaloop-simulator" }}' + appVersion-thirdparty-sdk: + sourceid: thirdparty-sdk + kind: file + spec: + file: mojaloop-simulator/Chart.yaml + matchpattern: '(thirdparty-sdk:) (v[\d\.]+)' + replacepattern: '$1 {{ source "thirdparty-sdk" }}' + common: + sourceid: common + kind: helmchart + spec: + name: mojaloop-simulator + file: Chart.yaml + key: $.dependencies[0].version + sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: mojaloop-simulator + file: values.yaml + key: $.defaults.config.schemeAdapter.image.tag + mojaloop-simulator: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: mojaloop-simulator + file: values.yaml + key: $.defaults.config.backend.image.tag + thirdparty-sdk: + sourceid: thirdparty-sdk + kind: helmchart + spec: + name: mojaloop-simulator + file: values.yaml + key: $.defaults.config.thirdpartysdk.image.tag + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/mojaloop-ttk-simulators.yaml b/.github/workflows/manifests/first-pass/mojaloop-ttk-simulators.yaml new file mode 100644 index 000000000..3d282bf90 --- /dev/null +++ b/.github/workflows/manifests/first-pass/mojaloop-ttk-simulators.yaml @@ -0,0 +1,177 @@ +name: mojaloop-ttk-simulator + +sources: + # NOTE: redis update will be added in the future + # redis: + # kind: dockerimage + # spec: + # image: redis + ml-testing-toolkit: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit + ml-testing-toolkit-ui: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit-ui + sdk-scheme-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: sdk-scheme-adapter + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: dockerimage + spec: + image: mojaloop/ml-testing-toolkit + docker-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: dockerimage + spec: + image: mojaloop/ml-testing-toolkit-ui + docker-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: dockerimage + spec: + image: mojaloop/sdk-scheme-adapter + +targets: + appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: mojaloop-ttk-simulators/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: mojaloop-ttk-simulators/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit-ui" }}' + appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + chart-sim1--sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim1/values.yaml + matchpattern: '(https://github.com/mojaloop/sdk-scheme-adapter/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "sdk-scheme-adapter" }}' + chart-sim1--appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim1/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + chart-sim1--appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim1/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit-ui" }}' + chart-sim1--appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim1/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + chart-sim1--common: + sourceid: common + kind: helmchart + spec: + name: mojaloop-ttk-simulators/chart-sim1 + file: Chart.yaml + key: $.dependencies[2].version + chart-sim2--sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim2/values.yaml + matchpattern: '(https://github.com/mojaloop/sdk-scheme-adapter/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "sdk-scheme-adapter" }}' + chart-sim2--appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim2/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + chart-sim2--appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim2/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit-ui" }}' + chart-sim2--appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim2/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + chart-sim2--common: + sourceid: common + kind: helmchart + spec: + name: mojaloop-ttk-simulators/chart-sim2 + file: Chart.yaml + key: $.dependencies[2].version + chart-sim3--sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim3/values.yaml + matchpattern: '(https://github.com/mojaloop/sdk-scheme-adapter/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "sdk-scheme-adapter" }}' + chart-sim3--appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim3/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + chart-sim3--appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim3/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit-ui" }}' + chart-sim3--appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop-ttk-simulators/chart-sim3/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + chart-sim3--common: + sourceid: common + kind: helmchart + spec: + name: mojaloop-ttk-simulators/chart-sim3 + file: Chart.yaml + key: $.dependencies[2].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/mojaloop.yaml b/.github/workflows/manifests/first-pass/mojaloop.yaml new file mode 100644 index 000000000..2e8725e84 --- /dev/null +++ b/.github/workflows/manifests/first-pass/mojaloop.yaml @@ -0,0 +1,751 @@ +name: mojaloop + +sources: + account-lookup-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: account-lookup-service + als-oracle-pathfinder: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: als-oracle-pathfinder + quoting-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: quoting-service + ml-api-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-api-adapter + central-ledger: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-ledger + central-settlement: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: central-settlement + transaction-requests-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: transaction-requests-service + auth-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: auth-service + als-consent-oracle: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: als-consent-oracle + thirdparty-api-svc: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: thirdparty-api-svc + sdk-scheme-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: sdk-scheme-adapter + mojaloop-simulator: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: mojaloop-simulator + thirdparty-sdk: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: thirdparty-sdk + simulator: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: simulator + bulk-api-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: bulk-api-adapter + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + ml-testing-toolkit: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit + ml-testing-toolkit-ui: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: ml-testing-toolkit-ui + ml-testing-toolkit-test-cases: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: testing-toolkit-test-cases + ml-testing-toolkit-test-cases-trimmed: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: testing-toolkit-test-cases + transformers: + - trimprefix: v + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + # redis: + # kind: dockerimage + # spec: + # image: redis + +conditions: + docker-account-lookup-service: + sourceid: account-lookup-service + kind: dockerimage + spec: + image: mojaloop/account-lookup-service + docker-als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: dockerimage + spec: + image: mojaloop/als-oracle-pathfinder + docker-quoting-service: + sourceid: quoting-service + kind: dockerimage + spec: + image: mojaloop/quoting-service + docker-ml-api-adapter: + sourceid: ml-api-adapter + kind: dockerimage + spec: + image: mojaloop/ml-api-adapter + docker-central-ledger: + sourceid: central-ledger + kind: dockerimage + spec: + image: mojaloop/central-ledger + docker-central-settlement: + sourceid: central-settlement + kind: dockerimage + spec: + image: mojaloop/central-settlement + docker-transaction-requests-service: + sourceid: transaction-requests-service + kind: dockerimage + spec: + image: mojaloop/transaction-requests-service + docker-auth-service: + sourceid: auth-service + kind: dockerimage + spec: + image: mojaloop/auth-service + docker-als-consent-oracle: + sourceid: als-consent-oracle + kind: dockerimage + spec: + image: mojaloop/als-consent-oracle + docker-thirdparty-api-svc: + sourceid: thirdparty-api-svc + kind: dockerimage + spec: + image: mojaloop/thirdparty-api-svc + docker-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: dockerimage + spec: + image: mojaloop/sdk-scheme-adapter + docker-mojaloop-simulator: + sourceid: mojaloop-simulator + kind: dockerimage + spec: + image: mojaloop/mojaloop-simulator + docker-thirdparty-sdk: + sourceid: thirdparty-sdk + kind: dockerimage + spec: + image: mojaloop/thirdparty-sdk + docker-simulator: + sourceid: simulator + kind: dockerimage + spec: + image: mojaloop/simulator + docker-bulk-api-adapter: + sourceid: bulk-api-adapter + kind: dockerimage + spec: + image: mojaloop/bulk-api-adapter + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + docker-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: dockerimage + spec: + image: mojaloop/ml-testing-toolkit + # docker-ml-testing-toolkit-ui: + # sourceid: ml-testing-toolkit-ui + # kind: dockerimage + # spec: + # image: mojaloop/ml-testing-toolkit-ui + +targets: + appVersion-ml-api-adapter: + sourceid: ml-api-adapter + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(ml-api-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-api-adapter" }}' + appVersion-central-ledger: + sourceid: central-ledger + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(central-ledger:) (v[\d\.]+)' + replacepattern: '$1 {{ source "central-ledger" }}' + appVersion-account-lookup-service: + sourceid: account-lookup-service + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(account-lookup-service:) (v[\d\.]+)' + replacepattern: '$1 {{ source "account-lookup-service" }}' + appVersion-quoting-service: + sourceid: quoting-service + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(quoting-service:) (v[\d\.]+)' + replacepattern: '$1 {{ source "quoting-service" }}' + appVersion-central-settlement: + sourceid: central-settlement + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(central-settlement:) (v[\d\.]+)' + replacepattern: '$1 {{ source "central-settlement" }}' + appVersion-bulk-api-adapter: + sourceid: bulk-api-adapter + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(bulk-api-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "bulk-api-adapter" }}' + appVersion-transaction-requests-service: + sourceid: transaction-requests-service + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(transaction-requests-service:) (v[\d\.]+)' + replacepattern: '$1 {{ source "transaction-requests-service" }}' + appVersion-simulator: + sourceid: simulator + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(simulator:) (v[\d\.]+)' + replacepattern: '$1 {{ source "simulator" }}' + appVersion-mojaloop-simulator: + sourceid: mojaloop-simulator + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(mojaloop-simulator:) (v[\d\.]+)' + replacepattern: '$1 {{ source "mojaloop-simulator" }}' + appVersion-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(sdk-scheme-adapter:) (v[\d\.]+)' + replacepattern: '$1 {{ source "sdk-scheme-adapter" }}' + appVersion-auth-service: + sourceid: auth-service + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(auth-service:) (v[\d\.]+)' + replacepattern: '$1 {{ source "auth-service" }}' + appVersion-als-consent-oracle: + sourceid: als-consent-oracle + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(als-consent-oracle:) (v[\d\.]+)' + replacepattern: '$1 {{ source "als-consent-oracle" }}' + appVersion-thirdparty-sdk: + sourceid: thirdparty-sdk + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(thirdparty-sdk:) (v[\d\.]+)' + replacepattern: '$1 {{ source "thirdparty-sdk" }}' + appVersion-ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(ml-testing-toolkit:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit" }}' + appVersion-ml-testing-toolkit-ui: + sourceid: ml-testing-toolkit-ui + kind: file + spec: + file: mojaloop/Chart.yaml + matchpattern: '(ml-testing-toolkit-ui:) (v[\d\.]+)' + replacepattern: '$1 {{ source "ml-testing-toolkit-ui" }}' + common: + sourceid: common + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[11].version + account-lookup-service: + sourceid: account-lookup-service + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.account-lookup-service.account-lookup-service.image.tag + account-lookup-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.account-lookup-service.account-lookup-service.sidecar.image.tag + account-lookup-service-admin: + sourceid: account-lookup-service + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.account-lookup-service.account-lookup-service-admin.image.tag + account-lookup-service-admin--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.account-lookup-service.account-lookup-service-admin.sidecar.image.tag + als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.account-lookup-service.als-oracle-pathfinder.image.tag + quoting-service: + sourceid: quoting-service + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.quoting-service.image.tag + quoting-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.quoting-service.sidecar.image.tag + ml-api-adapter: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.ml-api-adapter.ml-api-adapter-service.image.tag + ml-api-adapter--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.ml-api-adapter.ml-api-adapter-service.sidecar.image.tag + ml-api-adapter-handler-notification: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.ml-api-adapter.ml-api-adapter-handler-notification.image.tag + ml-api-adapter-handler-notification--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.ml-api-adapter.ml-api-adapter-handler-notification.sidecar.image.tag + centralledger: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-service.image.tag + centralledger--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-service.sidecar.image.tag + centralledger-handler-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-prepare.image.tag + centralledger-handler-transfer-prepare--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-prepare.sidecar.image.tag + centralledger-handler-transfer-position: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-position.image.tag + centralledger-handler-transfer-position--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-position.sidecar.image.tag + centralledger-handler-transfer-position-batch: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-position-batch.image.tag + centralledger-handler-transfer-position-batch--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-position-batch.sidecar.image.tag + centralledger-handler-transfer-get: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-get.image.tag + centralledger-handler-transfer-get--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-get.sidecar.image.tag + centralledger-handler-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-fulfil.image.tag + centralledger-handler-transfer-fulfil--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-transfer-fulfil.sidecar.image.tag + centralledger-handler-timeout: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-timeout.image.tag + centralledger-handler-timeout--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-timeout.sidecar.image.tag + centralledger-handler-admin-transfer: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-admin-transfer.image.tag + centralledger-handler-admin-transfer--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralledger.centralledger-handler-admin-transfer.sidecar.image.tag + centralsettlement-service: + sourceid: central-settlement + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-service.image.tag + centralsettlement-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-service.sidecar.image.tag + centralsettlement-handler-deferredsettlement: + sourceid: central-settlement + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-deferredsettlement.image.tag + centralsettlement-handler-deferredsettlement--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-deferredsettlement.sidecar.image.tag + centralsettlement-handler-grosssettlement: + sourceid: central-settlement + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-grosssettlement.image.tag + centralsettlement-handler-grosssettlement--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-grosssettlement.sidecar.image.tag + centralsettlement-handler-rules: + sourceid: central-settlement + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-rules.image.tag + centralsettlement-handler-rules--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.centralsettlement.centralsettlement-handler-rules.sidecar.image.tag + transaction-requests-service: + sourceid: transaction-requests-service + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.transaction-requests-service.image.tag + transaction-requests-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.transaction-requests-service.sidecar.image.tag + thirdparty--auth-service: + sourceid: auth-service + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.auth-svc.image.tag + thirdparty--consent-oracle: + sourceid: als-consent-oracle + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.consent-oracle.image.tag + thirdparty--tp-api-svc: + sourceid: thirdparty-api-svc + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.tp-api-svc.image.tag + # thirdparty--thirdparty-simulator--cache: + # sourceid: redis + # kind: helmchart + # spec: + # name: mojaloop + # file: values.yaml + # key: $.thirdparty.thirdparty-simulator.defaults.config.cache.image.tag + thirdparty--thirdparty-simulator--schemeAdapter: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.thirdparty-simulator.defaults.config.schemeAdapter.image.tag + thirdparty--thirdparty-simulator--backend: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.thirdparty-simulator.defaults.config.backend.image.tag + thirdparty--thirdparty-simulator--thirdpartysdk: + sourceid: thirdparty-sdk + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.thirdparty.thirdparty-simulator.defaults.config.thirdpartysdk.image.tag + simulator: + sourceid: simulator + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.simulator.image.tag + # mojaloop-simulator--cache: + # sourceid: redis + # kind: helmchart + # spec: + # name: mojaloop + # file: values.yaml + # key: $.mojaloop-simulator.defaults.config.cache.image.tag + mojaloop-simulator--schemeAdapter: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-simulator.defaults.config.schemeAdapter.image.tag + mojaloop-simulator--backend: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-simulator.defaults.config.backend.image.tag + mojaloop-simulator--thirdpartysdk: + sourceid: thirdparty-sdk + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-simulator.defaults.config.thirdpartysdk.image.tag + mojaloop-ttk-simulators--mojaloop-ttk-sim*-svc--config_files: + sourceid: sdk-scheme-adapter + kind: file + spec: + file: mojaloop/values.yaml + # matches e.g. https://github.com/mojaloop/sdk-scheme-adapter/raw/v15.3.0-snapshot.1 (with or without the snapshot version) + matchpattern: '(https://github.com/mojaloop/sdk-scheme-adapter/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "sdk-scheme-adapter" }}' + mojaloop-bulk--bulk-api-adapter--bulk-api-adapter-service: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-bulk.bulk-api-adapter.bulk-api-adapter-service.image.tag + mojaloop-bulk--bulk-api-adapter--bulk-api-adapter-handler-notification: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-bulk.bulk-api-adapter.bulk-api-adapter-handler-notification.image.tag + mojaloop-bulk--bulk-centralledger--cl-handler-bulk-transfer-prepare: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-bulk.bulk-centralledger.cl-handler-bulk-transfer-prepare.image.tag + mojaloop-bulk--bulk-centralledger--cl-handler-bulk-transfer-fulfil: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-bulk.bulk-centralledger.cl-handler-bulk-transfer-fulfil.image.tag + mojaloop-bulk--bulk-centralledger--cl-handler-bulk-transfer-processing: + sourceid: central-ledger + kind: helmchart + spec: + name: mojaloop + file: values.yaml + key: $.mojaloop-bulk.bulk-centralledger.cl-handler-bulk-transfer-processing.image.tag + ml-testing-toolkit--ml-testing-toolkit-backend--config_files: + sourceid: ml-testing-toolkit-test-cases + kind: file + spec: + file: mojaloop/values.yaml + # matches e.g. https://github.com/mojaloop/testing-toolkit-test-cases/raw/v15.3.0-snapshot.1 (with or without the snapshot version) + matchpattern: '(https://github.com/mojaloop/testing-toolkit-test-cases/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "ml-testing-toolkit-test-cases" }}' + ml-testing-toolkit--ml-ttk-posthook-setup--config-zip: + sourceid: ml-testing-toolkit-test-cases + kind: file + spec: + file: mojaloop/values.yaml + # matches e.g. https://github.com/mojaloop/testing-toolkit-test-cases/archive/v15.3.0-snapshot.1.zip (with or without the snapshot version) + matchpattern: '(https://github.com/mojaloop/testing-toolkit-test-cases/archive)/(v[\d\.]+)(-snapshot(\.\d+)?)?(\.zip)' + replacepattern: '$1/{{ source "ml-testing-toolkit-test-cases" }}$5' + ml-testing-toolkit--config-collections: + name: bump test-cases version + sourceid: ml-testing-toolkit-test-cases-trimmed + kind: file + spec: + file: mojaloop/values.yaml + matchpattern: '(testing-toolkit-test-cases)-([\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1-{{ source "ml-testing-toolkit-test-cases-trimmed" }}' + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/quoting-service.yaml b/.github/workflows/manifests/first-pass/quoting-service.yaml new file mode 100644 index 000000000..a60564cda --- /dev/null +++ b/.github/workflows/manifests/first-pass/quoting-service.yaml @@ -0,0 +1,57 @@ +name: quoting-service + +sources: + quoting-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: quoting-service + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-quoting-service: + sourceid: quoting-service + kind: dockerimage + spec: + image: mojaloop/quoting-service + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + quoting-service: + sourceid: quoting-service + kind: helmchart + spec: + name: quoting-service + file: values.yaml + key: $.image.tag + appversion: true + quoting-service--sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: quoting-service + file: values.yaml + key: $.sidecar.image.tag + common: + sourceid: common + kind: helmchart + spec: + name: quoting-service + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/sdk-scheme-adapter.yaml b/.github/workflows/manifests/first-pass/sdk-scheme-adapter.yaml new file mode 100644 index 000000000..d7e2fd68a --- /dev/null +++ b/.github/workflows/manifests/first-pass/sdk-scheme-adapter.yaml @@ -0,0 +1,70 @@ +name: sdk-scheme-adapter + +sources: + sdk-scheme-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: sdk-scheme-adapter + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: dockerimage + spec: + image: mojaloop/sdk-scheme-adapter + +targets: + sdk-scheme-adapter-api-svc: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: sdk-scheme-adapter + file: values.yaml + key: $.sdk-scheme-adapter-api-svc.image.tag + appversion: true + sdk-scheme-adapter-dom-evt-handler: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: sdk-scheme-adapter + file: values.yaml + key: $.sdk-scheme-adapter-dom-evt-handler.image.tag + appversion: true + sdk-scheme-adapter-cmd-evt-handler: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: sdk-scheme-adapter + file: values.yaml + key: $.sdk-scheme-adapter-cmd-evt-handler.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: sdk-scheme-adapter + file: Chart.yaml + key: $.dependencies[3].version + chart-service--sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: sdk-scheme-adapter/chart-service + file: values.yaml + key: $.image.tag + appversion: true + chart-service--common: + sourceid: common + kind: helmchart + spec: + name: sdk-scheme-adapter/chart-service + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/simulator.yaml b/.github/workflows/manifests/first-pass/simulator.yaml new file mode 100644 index 000000000..d16e4fc50 --- /dev/null +++ b/.github/workflows/manifests/first-pass/simulator.yaml @@ -0,0 +1,39 @@ +name: simulator + +sources: + simulator: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: simulator + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-simulator: + sourceid: simulator + kind: dockerimage + spec: + image: mojaloop/simulator + +targets: + simulator: + sourceid: simulator + kind: helmchart + spec: + name: simulator + file: values.yaml + key: $.image.tag + appversion: true + common: + sourceid: common + kind: helmchart + spec: + name: simulator + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/thirdparty.yaml b/.github/workflows/manifests/first-pass/thirdparty.yaml new file mode 100644 index 000000000..23e798f19 --- /dev/null +++ b/.github/workflows/manifests/first-pass/thirdparty.yaml @@ -0,0 +1,194 @@ +name: thirdparty + +sources: + auth-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: auth-service + als-consent-oracle: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: als-consent-oracle + thirdparty-api-svc: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: thirdparty-api-svc + sdk-scheme-adapter: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: sdk-scheme-adapter + mojaloop-simulator: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: mojaloop-simulator + thirdparty-sdk: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: thirdparty-sdk + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-auth-service: + sourceid: auth-service + kind: dockerimage + spec: + image: mojaloop/auth-service + docker-als-consent-oracle: + sourceid: als-consent-oracle + kind: dockerimage + spec: + image: mojaloop/als-consent-oracle + docker-thirdparty-api-svc: + sourceid: thirdparty-api-svc + kind: dockerimage + spec: + image: mojaloop/thirdparty-api-svc + docker-sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: dockerimage + spec: + image: mojaloop/sdk-scheme-adapter + docker-mojaloop-simulator: + sourceid: mojaloop-simulator + kind: dockerimage + spec: + image: mojaloop/mojaloop-simulator + docker-thirdparty-sdk: + sourceid: thirdparty-sdk + kind: dockerimage + spec: + image: mojaloop/thirdparty-sdk + +targets: + appVersion-auth-service: + sourceid: auth-service + kind: file + spec: + file: thirdparty/Chart.yaml + matchpattern: '(auth-service:) (v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1 {{ source "auth-service" }}' + appVersion-consent-oracle: + sourceid: als-consent-oracle + kind: file + spec: + file: thirdparty/Chart.yaml + matchpattern: '(consent-oracle:) (v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1 {{ source "als-consent-oracle" }}' + appVersion-thirdparty-api: + sourceid: thirdparty-sdk + kind: file + spec: + file: thirdparty/Chart.yaml + matchpattern: '(thirdparty-sdk:) (v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1 {{ source "thirdparty-sdk" }}' + auth-service: + sourceid: auth-service + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.auth-svc.image.tag + consent-oracle: + sourceid: als-consent-oracle + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.consent-oracle.image.tag + tp-api-svc: + sourceid: thirdparty-api-svc + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.tp-api-svc.image.tag + sdk-scheme-adapter: + sourceid: sdk-scheme-adapter + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.thirdparty-simulator.defaults.config.schemeAdapter.image.tag + mojaloop-simulator: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.thirdparty-simulator.defaults.config.backend.image.tag + thirdparty-sdk: + sourceid: thirdparty-sdk + kind: helmchart + spec: + name: thirdparty + file: values.yaml + key: $.thirdparty-simulator.defaults.config.thirdpartysdk.image.tag + common: + sourceid: common + kind: helmchart + spec: + name: thirdparty + file: Chart.yaml + key: $.dependencies[4].version + chart-auth-svc--auth-service: + sourceid: auth-service + kind: helmchart + spec: + name: thirdparty/chart-auth-svc + file: values.yaml + key: $.image.tag + appversion: true + chart-auth-svc--common: + sourceid: common + kind: helmchart + spec: + name: thirdparty/chart-auth-svc + file: Chart.yaml + key: $.dependencies[0].version + chart-consent-oracle--als-consent-oracle: + sourceid: als-consent-oracle + kind: helmchart + spec: + name: thirdparty/chart-consent-oracle + file: values.yaml + key: $.image.tag + appversion: true + chart-consent-oracle--common: + sourceid: common + kind: helmchart + spec: + name: thirdparty/chart-consent-oracle + file: Chart.yaml + key: $.dependencies[0].version + chart-tp-api-svc--thirdparty-api-svc: + sourceid: thirdparty-api-svc + kind: helmchart + spec: + name: thirdparty/chart-tp-api-svc + file: values.yaml + key: $.image.tag + appversion: true + chart-tp-api-svc--common: + sourceid: common + kind: helmchart + spec: + name: thirdparty/chart-tp-api-svc + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/first-pass/transaction-requests-service.yaml b/.github/workflows/manifests/first-pass/transaction-requests-service.yaml new file mode 100644 index 000000000..966f9fa76 --- /dev/null +++ b/.github/workflows/manifests/first-pass/transaction-requests-service.yaml @@ -0,0 +1,56 @@ +name: transaction-requests-service + +sources: + transaction-requests-service: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: transaction-requests-service + event-sidecar: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: event-sidecar + common: + kind: helmchart + spec: + url: https://mojaloop.github.io/charts/repo + name: common + +conditions: + docker-transactions-service: + sourceid: transaction-requests-service + kind: dockerimage + spec: + image: mojaloop/transaction-requests-service + docker-event-sidecar: + sourceid: event-sidecar + kind: dockerimage + spec: + image: mojaloop/event-sidecar + +targets: + transaction-requests-service: + sourceid: transaction-requests-service + kind: helmchart + spec: + name: transaction-requests-service + file: values.yaml + key: $.image.tag + sidecar: + sourceid: event-sidecar + kind: helmchart + spec: + name: transaction-requests-service + file: values.yaml + key: $.sidecar.image.tag + common: + sourceid: common + kind: helmchart + spec: + name: transaction-requests-service + file: Chart.yaml + key: $.dependencies[0].version + \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/account-lookup-service.yaml b/.github/workflows/manifests/second-pass/account-lookup-service.yaml new file mode 100644 index 000000000..007dd8a97 --- /dev/null +++ b/.github/workflows/manifests/second-pass/account-lookup-service.yaml @@ -0,0 +1,53 @@ +name: account-lookup-service + +sources: + account-lookup-service: + kind: helmchart + spec: + url: file://./account-lookup-service + name: account-lookup-service + account-lookup-service-admin: + kind: helmchart + spec: + url: file://./account-lookup-service + name: account-lookup-service-admin + als-oracle-pathfinder: + kind: helmchart + spec: + url: file://./account-lookup-service + name: als-oracle-pathfinder + +conditions: {} + +targets: + account-lookup-service: + sourceid: account-lookup-service + kind: helmchart + spec: + name: account-lookup-service + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + account-lookup-service-admin: + sourceid: account-lookup-service-admin + kind: helmchart + spec: + name: account-lookup-service + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + als-oracle-pathfinder: + sourceid: als-oracle-pathfinder + kind: helmchart + spec: + name: account-lookup-service + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + diff --git a/.github/workflows/manifests/second-pass/bulk-api-adapter.yaml b/.github/workflows/manifests/second-pass/bulk-api-adapter.yaml new file mode 100644 index 000000000..eabe59699 --- /dev/null +++ b/.github/workflows/manifests/second-pass/bulk-api-adapter.yaml @@ -0,0 +1,37 @@ +name: bulk-api-adapter + +sources: + bulk-api-adapter-service: + kind: helmchart + spec: + url: file://./bulk-api-adapter + name: bulk-api-adapter-service + bulk-api-adapter-handler-notification: + kind: helmchart + spec: + url: file://./bulk-api-adapter + name: bulk-api-adapter-handler-notification + +conditions: {} + +targets: + bulk-api-adapter-service: + sourceid: bulk-api-adapter-service + kind: helmchart + spec: + name: bulk-api-adapter + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + bulk-api-adapter-handler-notification: + sourceid: bulk-api-adapter-handler-notification + kind: helmchart + spec: + name: bulk-api-adapter + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/bulk-centralledger.yaml b/.github/workflows/manifests/second-pass/bulk-centralledger.yaml new file mode 100644 index 000000000..980f41a87 --- /dev/null +++ b/.github/workflows/manifests/second-pass/bulk-centralledger.yaml @@ -0,0 +1,57 @@ +name: bulk-centralledger + +sources: + cl-handler-bulk-transfer-prepare: + kind: helmchart + spec: + url: file://./bulk-centralledger + name: cl-handler-bulk-transfer-prepare + cl-handler-bulk-transfer-fulfil: + kind: helmchart + spec: + url: file://./bulk-centralledger + name: cl-handler-bulk-transfer-fulfil + cl-handler-bulk-transfer-processing: + kind: helmchart + spec: + url: file://./bulk-centralledger + name: cl-handler-bulk-transfer-processing + cl-handler-bulk-transfer-get: + kind: helmchart + spec: + url: file://./bulk-centralledger + name: cl-handler-bulk-transfer-get + +conditions: {} + +targets: + cl-handler-bulk-transfer-prepare: + sourceid: cl-handler-bulk-transfer-prepare + kind: helmchart + spec: + name: bulk-centralledger + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + cl-handler-bulk-transfer-fulfil: + sourceid: cl-handler-bulk-transfer-fulfil + kind: helmchart + spec: + name: bulk-centralledger + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + cl-handler-bulk-transfer-processing: + sourceid: cl-handler-bulk-transfer-processing + kind: helmchart + spec: + name: bulk-centralledger + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/centralledger.yaml b/.github/workflows/manifests/second-pass/centralledger.yaml new file mode 100644 index 000000000..39697051c --- /dev/null +++ b/.github/workflows/manifests/second-pass/centralledger.yaml @@ -0,0 +1,113 @@ +name: centralledger + +sources: + centralledger-service: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-service + centralledger-handler-transfer-prepare: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-transfer-prepare + centralledger-handler-transfer-position: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-transfer-position + centralledger-handler-transfer-get: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-transfer-get + centralledger-handler-transfer-fulfil: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-transfer-fulfil + centralledger-handler-timeout: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-timeout + centralledger-handler-admin-transfer: + kind: helmchart + spec: + url: file://./centralledger + name: centralledger-handler-admin-transfer + + +conditions: {} + +targets: + centralledger-service: + sourceid: centralledger-service + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-transfer-prepare: + sourceid: centralledger-handler-transfer-prepare + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-transfer-position: + sourceid: centralledger-handler-transfer-position + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-transfer-get: + sourceid: centralledger-handler-transfer-get + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[3].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-transfer-fulfil: + sourceid: centralledger-handler-transfer-fulfil + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[4].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-timeout: + sourceid: centralledger-handler-timeout + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[5].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger-handler-admin-transfer: + sourceid: centralledger-handler-admin-transfer + kind: helmchart + spec: + name: centralledger + file: Chart.yaml + key: $.dependencies[6].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' diff --git a/.github/workflows/manifests/second-pass/centralsettlement.yaml b/.github/workflows/manifests/second-pass/centralsettlement.yaml new file mode 100644 index 000000000..647e4b272 --- /dev/null +++ b/.github/workflows/manifests/second-pass/centralsettlement.yaml @@ -0,0 +1,52 @@ +name: centralsettlement + +sources: + centralsettlement-service: + kind: helmchart + spec: + url: file://./centralsettlement + name: centralsettlement-service + +conditions: {} + +targets: + centralsettlement-service: + sourceid: centralsettlement-service + kind: helmchart + spec: + name: centralsettlement + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralsettlement-handler-deferredsettlement: + sourceid: centralsettlement-service + kind: helmchart + spec: + name: centralsettlement + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralsettlement-handler-grosssettlement: + sourceid: centralsettlement-service + kind: helmchart + spec: + name: centralsettlement + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralsettlement-handler-rules: + sourceid: centralsettlement-service + kind: helmchart + spec: + name: centralsettlement + file: Chart.yaml + key: $.dependencies[3].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/ml-api-adapter.yaml b/.github/workflows/manifests/second-pass/ml-api-adapter.yaml new file mode 100644 index 000000000..5b0bf4ffb --- /dev/null +++ b/.github/workflows/manifests/second-pass/ml-api-adapter.yaml @@ -0,0 +1,37 @@ +name: ml-api-adapter + +sources: + ml-api-adapter-service: + kind: helmchart + spec: + url: file://./ml-api-adapter + name: ml-api-adapter-service + ml-api-adapter-handler-notification: + kind: helmchart + spec: + url: file://./ml-api-adapter + name: ml-api-adapter-handler-notification + +conditions: {} + +targets: + ml-api-adapter-service: + sourceid: ml-api-adapter-service + kind: helmchart + spec: + name: ml-api-adapter + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-api-adapter-handler-notification: + sourceid: ml-api-adapter-handler-notification + kind: helmchart + spec: + name: ml-api-adapter + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/ml-testing-toolkit.yaml b/.github/workflows/manifests/second-pass/ml-testing-toolkit.yaml new file mode 100644 index 000000000..f9f4beaae --- /dev/null +++ b/.github/workflows/manifests/second-pass/ml-testing-toolkit.yaml @@ -0,0 +1,37 @@ +name: ml-testing-toolkit + +sources: + ml-testing-toolkit-frontend: + kind: helmchart + spec: + url: file://./ml-testing-toolkit + name: ml-testing-toolkit-frontend + ml-testing-toolkit-backend: + kind: helmchart + spec: + url: file://./ml-testing-toolkit + name: ml-testing-toolkit-backend + +conditions: {} + +targets: + ml-testing-toolkit-frontend: + sourceid: ml-testing-toolkit-frontend + kind: helmchart + spec: + name: ml-testing-toolkit + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-testing-toolkit-backend: + sourceid: ml-testing-toolkit-backend + kind: helmchart + spec: + name: ml-testing-toolkit + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/mojaloop-bulk.yaml b/.github/workflows/manifests/second-pass/mojaloop-bulk.yaml new file mode 100644 index 000000000..53b9c68ef --- /dev/null +++ b/.github/workflows/manifests/second-pass/mojaloop-bulk.yaml @@ -0,0 +1,38 @@ +name: mojaloop-bulk + +sources: + bulk-api-adapter: + kind: helmchart + spec: + url: file://./mojaloop-bulk + name: bulk-api-adapter + bulk-centralledger: + kind: helmchart + spec: + url: file://./mojaloop-bulk + name: bulk-centralledger + +conditions: {} + +targets: + bulk-api-adapter: + sourceid: bulk-api-adapter + kind: helmchart + spec: + name: mojaloop-bulk + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + bulk-centralledger: + sourceid: bulk-centralledger + kind: helmchart + spec: + name: mojaloop-bulk + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/mojaloop-ttk-simulators.yaml b/.github/workflows/manifests/second-pass/mojaloop-ttk-simulators.yaml new file mode 100644 index 000000000..ddb245eae --- /dev/null +++ b/.github/workflows/manifests/second-pass/mojaloop-ttk-simulators.yaml @@ -0,0 +1,53 @@ +name: mojaloop-ttk-simulators + +sources: + mojaloop-ttk-sim1-svc: + kind: helmchart + spec: + url: file://./mojaloop-ttk-simulators + name: mojaloop-ttk-sim1-svc + mojaloop-ttk-sim2-svc: + kind: helmchart + spec: + url: file://./mojaloop-ttk-simulators + name: mojaloop-ttk-sim2-svc + mojaloop-ttk-sim3-svc: + kind: helmchart + spec: + url: file://./mojaloop-ttk-simulators + name: mojaloop-ttk-sim3-svc + + +conditions: {} + +targets: + mojaloop-ttk-sim1-svc: + sourceid: mojaloop-ttk-sim1-svc + kind: helmchart + spec: + name: mojaloop-ttk-simulators + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-ttk-sim2-svc: + sourceid: mojaloop-ttk-sim2-svc + kind: helmchart + spec: + name: mojaloop-ttk-simulators + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-ttk-sim3-svc: + sourceid: mojaloop-ttk-sim3-svc + kind: helmchart + spec: + name: mojaloop-ttk-simulators + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/mojaloop.yaml b/.github/workflows/manifests/second-pass/mojaloop.yaml new file mode 100644 index 000000000..55e592f33 --- /dev/null +++ b/.github/workflows/manifests/second-pass/mojaloop.yaml @@ -0,0 +1,323 @@ +name: mojaloop + +sources: + account-lookup-service: + kind: helmchart + spec: + url: file://./mojaloop + name: account-lookup-service + quoting-service: + kind: helmchart + spec: + url: file://./mojaloop + name: quoting-service + ml-api-adapter: + kind: helmchart + spec: + url: file://./mojaloop + name: ml-api-adapter + centralledger: + kind: helmchart + spec: + url: file://./mojaloop + name: centralledger + centralsettlement: + kind: helmchart + spec: + url: file://./mojaloop + name: centralsettlement + simulator: + kind: helmchart + spec: + url: file://./mojaloop + name: simulator + mojaloop-simulator: + kind: helmchart + spec: + url: file://./mojaloop + name: mojaloop-simulator + mojaloop-bulk: + kind: helmchart + spec: + url: file://./mojaloop + name: mojaloop-bulk + transaction-requests-service: + kind: helmchart + spec: + url: file://./mojaloop + name: transaction-requests-service + thirdparty: + kind: helmchart + spec: + url: file://./mojaloop + name: thirdparty + mojaloop-ttk-simulators: + kind: helmchart + spec: + url: file://./mojaloop + name: mojaloop-ttk-simulators + ml-testing-toolkit: + kind: helmchart + spec: + url: file://./mojaloop + name: ml-testing-toolkit + ml-testing-toolkit-cli: + kind: helmchart + spec: + url: file://./mojaloop + name: ml-testing-toolkit-cli + +conditions: {} + +targets: + account-lookup-service: + sourceid: account-lookup-service + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + quoting-service: + sourceid: quoting-service + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-api-adapter: + sourceid: ml-api-adapter + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralledger: + sourceid: centralledger + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[3].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + centralsettlement: + sourceid: centralsettlement + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[4].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + simulator: + sourceid: simulator + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[5].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-simulator: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[6].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-bulk: + sourceid: mojaloop-bulk + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[7].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + transaction-requests-service: + sourceid: transaction-requests-service + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[8].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + thirdparty: + sourceid: thirdparty + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[9].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-ttk-simulators: + sourceid: mojaloop-ttk-simulators + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[10].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-testing-toolkit: + sourceid: ml-testing-toolkit + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[12].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-setup: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[13].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-val-gp: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[14].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-val-bulk: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[15].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-setup-tp: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[16].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-val-tp: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[17].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-posthook-setup: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[18].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-posthook-tests: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[19].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-cronjob-tests: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[20].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-cronjob-cleanup: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[21].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-setup-sdk-bulk: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[22].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-val-sdk-bulk: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[23].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-val-sdk-r2p: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[24].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + ml-ttk-test-cleanup: + sourceid: ml-testing-toolkit-cli + kind: helmchart + spec: + name: mojaloop + file: Chart.yaml + key: $.dependencies[25].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + \ No newline at end of file diff --git a/.github/workflows/manifests/second-pass/sdk-scheme-adapter.yaml b/.github/workflows/manifests/second-pass/sdk-scheme-adapter.yaml new file mode 100644 index 000000000..39639db85 --- /dev/null +++ b/.github/workflows/manifests/second-pass/sdk-scheme-adapter.yaml @@ -0,0 +1,42 @@ +name: sdk-scheme-adapter + +sources: + sdk-scheme-adapter-svc: + kind: helmchart + spec: + url: file://./sdk-scheme-adapter + name: sdk-scheme-adapter-svc + +conditions: {} + +targets: + sdk-scheme-adapter-api-svc: + source: sdk-scheme-adapter-svc + kind: helmchart + spec: + name: sdk-scheme-adapter + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + sdk-scheme-adapter-dom-evt-handler: + source: sdk-scheme-adapter-svc + kind: helmchart + spec: + name: sdk-scheme-adapter + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + sdk-scheme-adapter-cmd-evt-handler: + source: sdk-scheme-adapter-svc + kind: helmchart + spec: + name: sdk-scheme-adapter + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' diff --git a/.github/workflows/manifests/second-pass/thirdparty.yaml b/.github/workflows/manifests/second-pass/thirdparty.yaml new file mode 100644 index 000000000..45d82c81c --- /dev/null +++ b/.github/workflows/manifests/second-pass/thirdparty.yaml @@ -0,0 +1,67 @@ +name: thirdparty + +sources: + auth-svc: + kind: helmchart + spec: + url: file://./thirdparty + name: auth-svc + consent-oracle: + kind: helmchart + spec: + url: file://./thirdparty + name: consent-oracle + tp-api-svc: + kind: helmchart + spec: + url: file://./thirdparty + name: tp-api-svc + mojaloop-simulator: + kind: helmchart + spec: + url: file://./thirdparty + name: mojaloop-simulator + +conditions: {} + +targets: + auth-svc: + sourceid: auth-svc + kind: helmchart + spec: + name: thirdparty + file: Chart.yaml + key: $.dependencies[0].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + consent-oracle: + sourceid: consent-oracle + kind: helmchart + spec: + name: thirdparty + file: Chart.yaml + key: $.dependencies[1].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + tp-api-svc: + sourceid: tp-api-svc + kind: helmchart + spec: + name: thirdparty + file: Chart.yaml + key: $.dependencies[2].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' + mojaloop-simulator: + sourceid: mojaloop-simulator + kind: helmchart + spec: + name: thirdparty + file: Chart.yaml + key: $.dependencies[3].version + transformers: + - addprefix: '">= ' + - addsuffix: '"' \ No newline at end of file diff --git a/.github/workflows/manifests/third-pass/mojaloop.yaml b/.github/workflows/manifests/third-pass/mojaloop.yaml new file mode 100644 index 000000000..03ceca09a --- /dev/null +++ b/.github/workflows/manifests/third-pass/mojaloop.yaml @@ -0,0 +1,44 @@ +name: mojaloop + +sources: + ml-testing-toolkit-test-cases: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: testing-toolkit-test-cases + ml-testing-toolkit-test-cases-trimmed: + kind: githubrelease + spec: + owner: mojaloop + token: '{{ requiredEnv "AUTO_RELEASE_TOKEN" }}' + repository: testing-toolkit-test-cases + transformers: + - trimprefix: v + +targets: + ml-testing-toolkit--ml-testing-toolkit-backend--config_files: + sourceid: ml-testing-toolkit-test-cases + kind: file + spec: + file: mojaloop/values.yaml + # matches e.g. https://github.com/mojaloop/testing-toolkit-test-cases/raw/v15.3.0-snapshot.1 (with or without the snapshot version) + matchpattern: '(https://github.com/mojaloop/testing-toolkit-test-cases/raw)/(v[\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1/{{ source "ml-testing-toolkit-test-cases" }}' + ml-testing-toolkit--ml-ttk-posthook-setup--config-zip: + sourceid: ml-testing-toolkit-test-cases + kind: file + spec: + file: mojaloop/values.yaml + # matches e.g. https://github.com/mojaloop/testing-toolkit-test-cases/archive/v15.3.0-snapshot.1.zip (with or without the snapshot version) + matchpattern: '(https://github.com/mojaloop/testing-toolkit-test-cases/archive)/(v[\d\.]+)(-snapshot(\.\d+)?)?(\.zip)' + replacepattern: '$1/{{ source "ml-testing-toolkit-test-cases" }}$5' + ml-testing-toolkit--config-collections: + name: bump test-cases version + sourceid: ml-testing-toolkit-test-cases-trimmed + kind: file + spec: + file: mojaloop/values.yaml + matchpattern: '(testing-toolkit-test-cases)-([\d\.]+)(-snapshot(\.\d+)?)?' + replacepattern: '$1-{{ source "ml-testing-toolkit-test-cases-trimmed" }}' + \ No newline at end of file diff --git a/.github/workflows/scripts/determine-release-version.sh b/.github/workflows/scripts/determine-release-version.sh new file mode 100755 index 000000000..14b695249 --- /dev/null +++ b/.github/workflows/scripts/determine-release-version.sh @@ -0,0 +1,142 @@ +#!/usr/bin/env bash + +# Description: This script is used to the next release version number based on changes from last release. +# Dependencies: This script depends on the changelog files (.tmp/changelogs/**) generated by the generate-changelog.sh script. +# Requirements: bash, jq, awk, sed +# Usage: .github/workflows/scripts/determine-release-version last_release_tag + +set -e + +usage() { + echo "determine-release-version [last_release_tag]" +} + +#################################### +# Environment and arguments check # +#################################### + +# Check if the current shell is bash and the version is >= 4.0.0 +if [ -z "$BASH_VERSION" ] || [ "${BASH_VERSION:0:1}" -lt 4 ]; then + echo "This script requires bash >= v4.0.0. Please install bash >= v4.0.0 and try again." + exit 1 +fi + +# We read the changelogs, commits, tags etc. from the temporary directory +dir=".tmp" + +# Ensure .tmp/changelogs directory exists and there are files in there +if [ ! -d "$dir/changelogs" ] || [ ! "$(ls -A $dir/changelogs)" ]; then + echo "The .tmp/changelogs directory does not exist or is empty. Please run the generate-changelog.sh script and try again." + exit 1 +fi + +###################### +# Global variables # +###################### + +readonly MAJOR=0 +readonly MINOR=1 +readonly PATCH=2 + +# 'last_release_tag' is the last release tag, if not provided, it will be the last tag in the current branch +if [ -z "$1" ] || [ $1 == null ]; then + last_release_tag=$(git describe --tags --abbrev=0) +else + last_release_tag=$1 +fi + +###################### +# Helper functions # +###################### + +bump_version() { + old_version=$1 + change_type=$2 + + # Return a new version number based on the old version number and the change_type of change + if [ $change_type == $MAJOR ]; then + echo $old_version | awk -F. -v OFS=. '{$1++; $2=0; $3=0} 1' + elif [ $change_type == $MINOR ]; then + echo $old_version | awk -F. -v OFS=. '{$2++; $3=0} 1' + elif [ $change_type == $PATCH ]; then + echo $old_version | awk -F. -v OFS=. '{$3++} 1' + fi +} + +# Detect "Breaking Changes" +breaking_changes() { + declare -A breaking_changes + for file in $dir/changelogs/*.json + do + breaking_files=$(cat $file | jq -r '.files[] | select(.filename | contains("default.json", "migration"))') + if [[ $breaking_files ]] + then + echo 0 + return + fi + breaking_commits=$(cat $file | jq -r '.commits[] | select(.commit.message | contains("BREAKING CHANGE"))') + if [[ $breaking_commits ]] + then + echo 0 + return + fi + done + echo 1 +} + +# Detect "New Features" +new_features() { + new_features="" + for file in $dir/changelogs/*.json + do + pr_title=$(cat $file | jq -r '.commits[].commit | select(.message | startswith("feat")) .message | split("\n")[0] as $pr_title | "* \($pr_title)"') + if [[ $pr_title ]] + then + echo 0; + return + fi + done + echo 1; +} + +# Detect "Bug Fixes" +bug_fixes() { + bug_fixes="" + for file in $dir/changelogs/*.json + do + bug_fixes=$(cat $file | jq -r '.commits[].commit | select(.message | startswith("fix(")) .message') + if [[ $bug_fixes ]] + then + echo 0; + return + fi + done + echo 1; +} + +# Remove leading "v" +last_version_number=$(echo $last_release_tag | sed 's/v//g') + +breaking_changes_exist=$(breaking_changes) +if [[ $breaking_changes_exist == 0 ]] +then + # Major version bump + echo v$(bump_version $last_version_number $MAJOR) + exit 0 +fi + +new_features_exist=$(new_features) +if [[ $new_features_exist == 0 ]] +then + # Minor version bump + echo v$(bump_version $last_version_number $MINOR) + exit 0 +fi + +bug_fixes_exist=$(bug_fixes) +if [[ $bug_fixes_exist == 0 ]] +then + # Patch version bump + echo v$(bump_version $last_version_number $PATCH) + exit 0 +fi diff --git a/.github/workflows/scripts/generate-changelog.sh b/.github/workflows/scripts/generate-changelog.sh new file mode 100755 index 000000000..f81b1fc21 --- /dev/null +++ b/.github/workflows/scripts/generate-changelog.sh @@ -0,0 +1,157 @@ +#!/usr/bin/env bash + +# Description: This script is used to generate the changelog for all changes in all repositories between a previous release tag and the current branch. +# Requirements: bash >= v4.0.0, curl, git, helm +# Usage: .github/workflows/scripts/generate-changelog.sh last_release_tag +# Environment variables: AUTO_RELEASE_TOKEN + +set -e + +#################################### +# Environment and arguments check # +#################################### + +usage() { + echo "export AUTO_RELEASE_TOKEN=" + echo "generate-changelog.sh last_release_tag" +} + +# Check if the current shell is bash and the version is >= 4.0.0 +if [ -z "$BASH_VERSION" ] || [ "${BASH_VERSION:0:1}" -lt 4 ]; then + echo "This script requires bash >= v4.0.0. Please install bash >= v4.0.0 and try again." + exit 1 +fi + +# Check if the AUTO_RELEASE_TOKEN environment variable is set +if [ -z "$AUTO_RELEASE_TOKEN" ]; then + echo "The AUTO_RELEASE_TOKEN environment variable is not set. Please set the AUTO_RELEASE_TOKEN environment variable and try again." + usage + exit 1 +fi + +###################### +# Global variables # +###################### + +declare -A last_release_tags +declare -A current_tags + +readonly -a excluded_charts=( + "finance-portal" + "finance-portal-settlement-management" + "forensicloggingsidecar" + "kube-system" + "ml-operator" + "centralenduserregistry" + "centralkms" + "example-mojaloop-bakend" + "monitoring" +) + +# 'last_release_tag' is the last release tag, if not provided, it will be the last tag in the current branch +if [ -z "$1" ] || [ $1 == null ]; then + last_release_tag=$(git describe --tags --abbrev=0) + echo "The \"last_release_tag\" argument is not provided. Using last tag in the current branch: $last_release_tag" +else + last_release_tag=$1 +fi + +####################### +# Prepare environment # +####################### + +# We store the changelogs, commits, tags etc. in a temporary directory +dir=".tmp" + +# If the directory exists, remove its contents +if [ -d "$dir" ]; then + rm -rf "$dir"/* +fi + +# Create the temp directory and subdirectories +mkdir -p "$dir/changelogs" +mkdir -p "$dir/tags" + +###################### +# Generate changelog # +###################### + +current_branch=$(git branch --show-current) + +# Extract and store repository name and tag in all values.yaml files +find . -type d -name '[!.]*' -exec test -e "{}/Chart.yaml" ';' -print | while read chart_dir; do + base_chart_dir=$(echo $chart_dir | cut -d'/' -f2) + if [[ ! " ${excluded_charts[@]} " =~ " ${base_chart_dir} " ]]; then + helm show values "$chart_dir" | grep -E 'repository:|tag:' | awk '{print $1 $2}' >> "${dir}/tags/current-tags.log" + fi +done + +# Checkout out last release tag and extract repository name and tag in its all values.yaml files +git stash +git switch --detach $last_release_tag +find . -type d -name '[!.]*' -exec test -e "{}/Chart.yaml" ';' -print | while read chart_dir; do + base_chart_dir=$(echo $chart_dir | cut -d'/' -f2) + if [[ ! " ${excluded_charts[@]} " =~ " ${base_chart_dir} " ]]; then + helm show values "$chart_dir" | grep -E 'repository:|tag:' | awk '{print $1 $2}' >> "${dir}/tags/last-release-tags.log" + fi +done + +# Checkout back to current branch +git checkout $current_branch +git stash pop + +# accept all stashed changes +# git stash list | awk -F: '{print $1}' | xargs -n 1 git stash apply + +# Generate the changelog using repositories and tags from last-release-tags.log and current-tags.log +# We create two associative arrays to store the repositories and tags from last-release-tags.log and current-tags.log +# The associative arrays are indexed by the repository name and the value is the tag +# We then iterate through the associative arrays and generate the changelog for each repository that has changed + +# Read last release tags into associative array 'last_release_tags' +while IFS= read -r line +do + if [[ $line == *"repository:"* ]] + then + repository=$(echo $line | cut -d':' -f2 | cut -d' ' -f1) + last_release_tags[$repository]=null + fi + + if [[ $line == *"tag:"* ]] + then + tag=$(echo $line | cut -d':' -f2) + last_release_tags[$repository]=$tag + fi +done < "$dir/tags/last-release-tags.log" + +# Read current tags into associative array 'current_tags' +while IFS= read -r line +do + if [[ $line == *"repository:"* ]] + then + repository=$(echo $line | cut -d':' -f2 | cut -d' ' -f1) + current_tags[$repository]=null + fi + + if [[ $line == *"tag:"* ]] + then + tag=$(echo $line | cut -d':' -f2) + current_tags[$repository]=$tag + fi +done < "$dir/tags/current-tags.log" + +# Generate changelog for each mojaloop repository that has changed using github api +for repository in "${!last_release_tags[@]}" +do + if [[ $repository == mojaloop* && ${current_tags[$repository]} && ${last_release_tags[$repository]} != ${current_tags[$repository]} ]] + then + repository_short_name=$(echo $repository | cut -d'/' -f2) + curl -s -L \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $AUTO_RELEASE_TOKEN" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/$repository/compare/${last_release_tags[$repository]}...${current_tags[$repository]} > $dir/changelogs/$repository_short_name.json + fi +done + +echo "Changelog generated successfully." diff --git a/.github/workflows/scripts/generate-release-note.sh b/.github/workflows/scripts/generate-release-note.sh new file mode 100755 index 000000000..54fe78d40 --- /dev/null +++ b/.github/workflows/scripts/generate-release-note.sh @@ -0,0 +1,310 @@ +#!/usr/bin/env bash + +# Description: This script is used to generate release note for a release. +# Dependencies: This script depends on the changelog files (.tmp/changelogs/**) and environment variables generated by the generate-changelog.sh script. +# Requirements: bash >= v4.0.0, jq, curl, git, helm, mo +# Usage: .github/workflows/scripts/generate-release-note.sh 'release_name' 'release_version' 'last_release_tag' 'ttk-test-cases-version' 'example-backend-version' +# Environment variables: AUTO_RELEASE_TOKEN + +set -e + +# Usage instructions +usage() { + echo "export AUTO_RELEASE_TOKEN=" + echo "generate-release-note.sh release_name release_version last_release_tag ttk-test-cases-version example-backend-version" +} + +#################################### +# Environment and arguments check # +#################################### + +# Check if the current shell is bash and the version is >= 4.0.0 +if [ -z "$BASH_VERSION" ] || [ "${BASH_VERSION:0:1}" -lt 4 ]; then + echo "This script requires bash >= v4.0.0. Please install bash >= v4.0.0 and try again." + exit 1 +fi + +# Check if the AUTO_RELEASE_TOKEN environment variable is set +if [ -z "$AUTO_RELEASE_TOKEN" ]; then + echo "The AUTO_RELEASE_TOKEN environment variable is not set. Please set the AUTO_RELEASE_TOKEN environment variable and try again." + usage + exit 1 +fi + +release_name=$1 + +# Check if the release_version argument is provided +if [ -z "$2" ]; then + echo "The \"release_version\" argument is not provided. Please provide the \"release_version\" argument and try again." + usage + exit 1 +else + release_version=$2 +fi + +# 'last_release_tag' is the last release tag, if not provided, it will be the last tag in the current branch +if [ -z "$3" ] || [ $3 == null ]; then + last_release_tag=$(git describe --tags --abbrev=0) +else + last_release_tag=$3 +fi + +# Check if the ttk-test-cases-version argument is provided +if [ -z "$4" ]; then + echo "The \"ttk-test-cases-version\" argument is not provided. Please provide the \"ttk-test-cases-version\" argument and try again." + usage + exit 1 +else + test_cases_version=$4 +fi + +# Check if example-backend-version argument is provided +if [ -z "$5" ]; then + echo "The \"example-backend-version\" argument is not provided. Please provide \"example-backend-version\" argument and try again." + usage + exit 1 +else + example_backend_version=$5 +fi + +# We read the changelogs, commits, tags etc. from the temporary directory +dir=".tmp" + +# Ensure .tmp/changelogs directory exists and there are files in there +if [ ! -d "$dir/changelogs" ] || [ ! "$(ls -A $dir/changelogs)" ]; then + echo "The .tmp/changelogs directory does not exist or is empty. Please run the generate-changelog.sh script and try again." + exit 1 +fi + +###################### +# Global variables # +###################### + +declare -A last_release_tags +declare -A current_tags + +###################### +# Helper functions # +###################### + +# Generate "Breaking Changes" section of the release note +breaking_changes() { + # Loop over each json file in .tmp/changelogs directory + # Extract the pull request titles from the json file into an associative array indexed by the file basename + # The value of the associative array is an array of breaking changes + # We then iterate through the associative array and generate the breaking changes section + declare -A breaking_changes + for file in $dir/changelogs/*.json + do + repository=$(basename $file | cut -d'.' -f1) + breaking_files=$(cat $file | jq -r '.files[] | select(.filename | contains("default.json", "migration")) | " * \(.filename): (\(.blob_url))"') + breaking_commits=$(cat $file | jq -r '.commits[] | select(.commit.message | contains("BREAKING CHANGE")) | .commit.message = (.commit.message | split("\n")[0]) | " * \(.commit.message): (\(.commit.url))"') + breaking_changes[$repository]=$(echo -e "$breaking_files\n$breaking_commits") + done + + # Generate breaking changes section + # We loop over each repository in the associative array and generate the breaking changes section + # If there are no breaking changes, we return an empty string + # If there are breaking changes, we return the breaking changes section + breaking_changes_section="" + for repository in "${!breaking_changes[@]}" + do + if [[ ${breaking_changes[$repository]} ]] + then + breaking_changes_section+=$(echo -e "\n### $repository\n${breaking_changes[$repository]}") + fi + done + + echo "$breaking_changes_section" +} + +# Generate release summary points section of the release note +release_summary_points() { + echo "_Release summary points go here..._" +} + +# Generate "New Features" section of the release note +new_features() { + for file in $dir/changelogs/*.json + do + repository=$(basename $file | cut -d'.' -f1) + pr_title=$(cat $file | jq -r '.commits[].commit | select(.message | startswith("feat")) .message | split("\n")[0] as $pr_title | "* \($pr_title)"') + echo "$pr_title" | while IFS= read -r line + do + description=$(echo "$line" | awk -F ': ' '{print $2}' | awk -F ' \\(#' '{print $1}') + issue_number=$(echo "$line" | awk -F '[/#)]' '{print $3}') + pr_number=$(echo "$line" | sed -n -e 's/.*(#\([^)]*\))$/\1/p') + if [[ -z $pr_number ]] || [[ -z $issue_number ]] + then + continue + fi + echo -e "* **mojaloop/#$issue_number** $description ([mojaloop/#$pr_number](https://github.com/mojaloop/$repository/pull/$pr_number)), closes [mojaloop/#$issue_number](https://github.com/mojaloop/project/issues/$issue_number)" + done + done +} + +# Generate "Bug Fixes" section of the release note +bug_fixes() { + for file in $dir/changelogs/*.json + do + repository=$(basename $file | cut -d'.' -f1) + pr_title=$(cat $file | jq -r '.commits[].commit | select(.message | startswith("fix")) .message | split("\n")[0] as $pr_title | "* \($pr_title)"') + echo "$pr_title" | while IFS= read -r line + do + description=$(echo "$line" | awk -F ': ' '{print $2}' | awk -F ' \\(#' '{print $1}') + issue_number=$(echo "$line" | awk -F '[/#)]' '{print $3}') + pr_number=$(echo "$line" | sed -n -e 's/.*(#\([^)]*\))$/\1/p') + if [[ -z $pr_number ]] || [[ -z $issue_number ]] + then + continue + fi + echo -e "* **mojaloop/#$issue_number** $description ([mojaloop/#$pr_number](https://github.com/mojaloop/$repository/pull/$pr_number)), closes [mojaloop/#$issue_number](https://github.com/mojaloop/project/issues/$issue_number)" + done + done +} + +# Generate "Application Versions" section of the release note +application_versions() { + application_versions="" + line_number=0 + + # List services that have changed first + for repository in "${!current_tags[@]}" + do + if [[ $repository == mojaloop* ]] + then + if [[ ${current_tags[$repository]} != ${last_release_tags[$repository]} ]] + then + line_number=$(( line_number+1 )) + repository_short_name=$(echo $repository | cut -d'/' -f2) + application_versions+=$(echo -e "\n$line_number. $repository_short_name: ${last_release_tags[$repository]} -> \ + [${current_tags[$repository]}](https://github.com/$repository/releases/${current_tags[$repository]}) \ + ([Compare](https://github.com/$repository/compare/${last_release_tags[$repository]}...${current_tags[$repository]}))") + fi + fi + done + + # Add services that have not changed below + for repository in "${!current_tags[@]}" + do + if [[ $repository == mojaloop* ]] + then + if [[ ${current_tags[$repository]} == ${last_release_tags[$repository]} ]] + then + line_number=$((line_number+1)) + repository_short_name=$(echo $repository | cut -d'/' -f2) + application_versions+=$(echo -e "\n$line_number. $repository_short_name: [${current_tags[$repository]}](https://github.com/$repository/releases/${current_tags[$repository]})") + fi + fi + done + + echo "$application_versions" +} + +# Generate "Individual Contributors" section of the release note +individual_contributors() { + # Loop over each json file in .tmp/changelogs directory and extract the commit author login + # We then remove duplicates, sort the list, and convert the list to a comma separated string + individual_contributors="" + for file in $dir/changelogs/*.json + do + repository=$(basename $file | cut -d'.' -f1) + individual_contributors+=$(cat $file | jq -r '.commits[].author | select(.login != null) .login' | sed 's/^/@/' | tr '\n' ', ' | sed 's/,$//g' | sed 's/,/, /g') + individual_contributors+=", " + done + + # Remove duplicates and trailing comma + individual_contributors=$(echo "$individual_contributors" | tr ', ' '\n' | sort -u | grep . | tr '\n' ',' | sed 's/,$//g' | sed 's/,/, /g') + + echo "$individual_contributors" +} + +# Return the version of the TTK test cases used in the release +ttk_test_cases_version() { + echo "$test_cases_version" +} + +# Return the version of the example mojaloop backend used in testing the release +example_mojaloop_backend_version() { + echo "$example_backend_version" +} + +##################################################################### +# Read the release tags (past and current) into memory. # +# These are used by helper functions to generate different sections # +# of the release note. # +##################################################################### + +# Read last release tags into associative array 'last_release_tags' +while IFS= read -r line +do + if [[ $line == *"repository:"* ]] + then + repository=$(echo $line | cut -d':' -f2 | cut -d' ' -f1) + last_release_tags[$repository]=null + fi + + if [[ $line == *"tag:"* ]] + then + tag=$(echo $line | cut -d':' -f2) + last_release_tags[$repository]=$tag + fi +done < "$dir/tags/last-release-tags.log" + +# Read current tags into associative array 'current_tags' +while IFS= read -r line +do + if [[ $line == *"repository:"* ]] + then + repository=$(echo $line | cut -d':' -f2 | cut -d' ' -f1) + current_tags[$repository]=null + fi + + if [[ $line == *"tag:"* ]] + then + tag=$(echo $line | cut -d':' -f2) + current_tags[$repository]=$tag + fi +done < "$dir/tags/current-tags.log" + +######################### +# Generate release note # +######################### + +# We use a template (.github/workflows/templates/release-note-template.md) to generate the release note +# The template contains placeholders that are replaced with the PR titles from the changelogs and other information + +# Populate and export template variables for "mo" +export RELEASE_NAME=$release_name +export RELEASE_DATE=$(date +%Y-%m-%d) +export BREAKING_CHANGES=$(breaking_changes) +[[ -z $BREAKING_CHANGES ]] && export BREAKING_CHANGES_STATUS_TEXT="non-breaking" || export BREAKING_CHANGES_STATUS_TEXT="breaking" +[[ -z $BREAKING_CHANGES ]] && BREAKING_CHANGES="There are no breaking changes in this release." +export RELEASE_SUMMARY_POINTS=$(release_summary_points) +export NEW_FEATURES=$(new_features) +[[ -z $NEW_FEATURES ]] && NEW_FEATURES="There are no new features in this release." +export BUG_FIXES=$(bug_fixes) +[[ -z $BUG_FIXES ]] && BUG_FIXES="There are no bug fixes in this release." +export APPLICATION_VERSIONS=$(application_versions) +export TTK_TEST_CASES_VERSION=$(ttk_test_cases_version) +export EXAMPLE_MOJALOOP_BACKEND_VERSION=$(example_mojaloop_backend_version) +export CURRENT_RELEASE_VERSION=$release_version +export LAST_RELEASE_VERSION=$(echo $last_release_tag | cut -d'/' -f2) +export INDIVIDUAL_CONTRIBUTORS=$(individual_contributors) + +# We use mustache bash template engine to replace the placeholders in the template with the template variables +# Mustache bash template engine is a bash implementation of mustache template engine +# It works better with newline characters than sed +release_note=$(cat .github/workflows/templates/release-note-template.md | mo) + +if [[ $release_note == *"{{"* ]] || [[ -z $release_note ]] +then + echo "Error: One or more template variables are not replaced. Please check the template variables and try again." + exit 1 +fi + +# Write release_note content to .changelog/release-$CURRENT_RELEASE_VERSION.md +mkdir -p .changelog +echo "$release_note" > .changelog/release-$CURRENT_RELEASE_VERSION.md + +echo "Release note generated at .changelog/release-$CURRENT_RELEASE_VERSION.md" diff --git a/.github/workflows/scripts/update-charts.sh b/.github/workflows/scripts/update-charts.sh new file mode 100755 index 000000000..b4fe70907 --- /dev/null +++ b/.github/workflows/scripts/update-charts.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# Description: This script updates the Helm charts dependencies +# Requirements: bash, updatecli, helm +# Usage: .github/workflows/scripts/update-charts.sh +# Environment variables: AUTO_RELEASE_TOKEN + +set -e + +# We store output log in a temporary directory +dir=".tmp" + +# Create temporary directory if it doesn't exist +if [ ! -d "$dir" ]; then + mkdir $dir +fi + +# First pass - update with github releases and published helm charts +updatecli apply --config .github/workflows/manifests/first-pass + +# Second pass - update with locally referenced charts +# runs the second-pass manifests repeatedly until no changes are detected +>$dir/output.log + +pass_count=0 + +# Repeatedly run the second-pass manifests until no changes are detected +while ! (grep -q "* Changed: 0" $dir/output.log); do + echo -e "\nUpdating charts ... pass: $((++pass_count))\n" + ./update-charts-dep.sh + find . -maxdepth 1 -type d -not -path '*/\.*' | sed 's/^\.\///g' | xargs -I {} helm repo index {} + updatecli apply --config .github/workflows/manifests/second-pass |& tee $dir/output.log +done + +# Revert newline changes in charts +# Updatecli currently does not preserve line breaks in yaml files - issue https://github.com/goccy/go-yaml/pull/412 +# This is a temporary workaround to revert the changes +git diff --ignore-blank-lines --no-color | git apply --cached --ignore-whitespace && git checkout -- . && git reset \ No newline at end of file diff --git a/.github/workflows/templates/release-note-template.md b/.github/workflows/templates/release-note-template.md new file mode 100644 index 000000000..ee5641372 --- /dev/null +++ b/.github/workflows/templates/release-note-template.md @@ -0,0 +1,104 @@ +# Helm Release Notes + +Date | Revision | Description +---------|----------|--------- +{{RELEASE_DATE}} | 0 | Initial draft + +- For *BREAKING ISSUES*, please review the section `#6` ["Breaking Changes"](#6-breaking-changes) below. +- For *KNOWN ISSUES*, please review the section `#7` ["Known Issues"](#7-known-issues) below. + +## 0. Summary + +Enhancements and {{BREAKING_CHANGES_STATUS_TEXT}} changes to the [{{LAST_RELEASE_VERSION}} Release](https://github.com/mojaloop/helm/blob/master/.changelog/release-{{LAST_RELEASE_VERSION}}.md), which includes: + +{{RELEASE_SUMMARY_POINTS}} + +## 1. New Features +{{NEW_FEATURES}} + +## 2. Bug Fixes +{{BUG_FIXES}} + +## 3. Application Versions +{{APPLICATION_VERSIONS}} + +## 4. API Versions + +This release supports the following versions of the [Mojaloop family of APIs](https://docs.mojaloop.io/api): + +| API | Supported Versions | Notes | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ----- | +| FSPIOP | [v1.1](https://docs.mojaloop.io/api/fspiop/v1.1/api-definition.html), [v1.0](https://docs.mojaloop.io/api/fspiop/v1.0/api-definition.html) | | +| Settlements | [v2.0](https://docs.mojaloop.io/api/settlement) | | +| Admin | [v1.0](https://docs.mojaloop.io/api/administration/central-ledger-api.html) | | +| Oracle | [v1.0](https://docs.mojaloop.io/legacy/api/als-oracle-api-specification.html) | | +| Thirdparty | [v1.0](https://docs.mojaloop.io/api/thirdparty) | | + +## 5. Testing notes + +1. This release has been validated against the following Dependency Test Matrix: + + | Dependency | Version | Notes | + | ---------- | ------- | --- | + | Kubernetes | v1.28 | [AWS EKS](https://aws.amazon.com/eks/), [AWS EKS Supported Version Notes](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html) | + | containerd | v1.6.19 | | + | Nginx Ingress Controller | [helm-ingress-nginx-4.7.0](https://github.com/kubernetes/ingress-nginx/releases/tag/helm-chart-4.7.0) / [ingress-controller-v1.8.0](https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.8.0) | | + | Amazon Linux | v2 | | + | 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 | [{{TTK_TEST_CASES_VERSION}}](https://github.com/mojaloop/testing-toolkit-test-cases/releases/tag/{{TTK_TEST_CASES_VERSION}}) | | + | example-mojaloop-backend | {{EXAMPLE_MOJALOOP_BACKEND_VERSION}} | [README](https://github.com/mojaloop/helm/blob/master/example-mojaloop-backend/README.md) | + +2. It is recommended that all Mojaloop deployments are verified using the [Mojaloop Testing Toolkit](https://docs.mojaloop.io/documentation/mojaloop-technical-overview/ml-testing-toolkit/). More information can be found in the [Mojaloop Deployment Guide](https://docs.mojaloop.io/documentation/deployment-guide). + +3. The [testing-toolkit-test-cases](https://github.com/mojaloop/testing-toolkit-test-cases/releases) (See above Dependency Test Matrix for exact version required for this release) 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](https://github.com/mojaloop/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: + - Setup Mojaloop Hub: [MojaloopHub_Setup](https://github.com/mojaloop/postman/blob/v12.0.0/MojaloopHub_Setup.postman_collection.json) + - Setup Mojaloop Simulators for testing : [MojaloopSims_Onboarding](https://github.com/mojaloop/postman/blob/v12.0.0/MojaloopSims_Onboarding.postman_collection.json) + - Golden path tests: [Golden_Path_Mojaloop](https://github.com/mojaloop/postman/blob/v12.0.0/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. + +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](https://github.com/mojaloop/project/issues/2717). 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](https://github.com/mojaloop/helm/blob/master/README.md#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](https://github.com/mojaloop/helm/blob/master/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](https://github.com/mojaloop/helm/blob/master/mojaloop-ttk-simulators/README.md). + +## 6. Breaking Changes + +{{BREAKING_CHANGES}} + +## 7. Known Issues + +1. [#2119 - Idempotency for duplicate quote request](https://github.com/mojaloop/project/issues/2119) +2. [#2322 - Helm install failing with with "medium to large" release names](https://github.com/mojaloop/project/issues/2322) +3. [#2317 - Mojaloop Helm deployments are not compatible when deployed to ARM-arch based hosts](https://github.com/mojaloop/project/issues/2317) +4. [#2435 - Quoting-Service is incorrectly handling failed responses to FSPs when forwarding requests](https://github.com/mojaloop/project/issues/2435) +5. Test issues causing instability/intermitant failures on Test Case Results + 1. [#2717 - Thirdparty TTK Test-Collection is not repeatable](https://github.com/mojaloop/project/issues/2717) + 2. [#2925 - Helm Test Intermittent failure with 'Generic ID not found](https://github.com/mojaloop/project/issues/2925) + +## 8. Contributors + +- Organizations: BMGF, InFiTX +- Individuals: {{INDIVIDUAL_CONTRIBUTORS}} + +*Note: companies are in alphabetical order, individuals are in no particular order.* + +**Full Changelog**: https://github.com/mojaloop/helm/compare/{{LAST_RELEASE_VERSION}}...{{CURRENT_RELEASE_VERSION}}