diff --git a/.github/actions/checkout-submodules/action.yml b/.github/actions/checkout-submodules/action.yml new file mode 100644 index 00000000000..6f6cd013dbe --- /dev/null +++ b/.github/actions/checkout-submodules/action.yml @@ -0,0 +1,28 @@ +name: Checkout Submodules + +description: Checkout private enterprise submodule + +inputs: + enabled: + description: 'Run the action' + required: false + default: 'true' + submodule_token: + description: 'Submodule token to use for checkout' + required: true + submodule_branch: + description: 'Submodule branch to checkout to' + required: true + +runs: + using: composite + + steps: + - name: Checkout submodule + if: ${{ inputs.run == 'true' }} + uses: actions/checkout@v3 + with: + token: ${{ inputs.submodule_token }} + repository: novuhq/packages-enterprise + path: enterprise/packages + ref: ${{ inputs.submodule_branch }} diff --git a/.github/workflows/dev-deploy-api.yml b/.github/workflows/dev-deploy-api.yml index 904a653a678..1d9ab7f6baa 100644 --- a/.github/workflows/dev-deploy-api.yml +++ b/.github/workflows/dev-deploy-api.yml @@ -26,6 +26,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "next" secrets: inherit deploy_dev_api: @@ -45,9 +46,11 @@ jobs: name: ['novu/api-ee', 'novu/api'] steps: - uses: actions/checkout@v3 + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ contains (matrix.name,'ee') }} - token: ${{ secrets.SUBMODULES_TOKEN }} + enabled: ${{ contains (matrix.name,'ee') }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: "next" - uses: ./.github/actions/setup-project - uses: ./.github/actions/docker/build-api id: docker_build diff --git a/.github/workflows/dev-deploy-inbound-mail.yml b/.github/workflows/dev-deploy-inbound-mail.yml index c432e184526..f6abc3d0146 100644 --- a/.github/workflows/dev-deploy-inbound-mail.yml +++ b/.github/workflows/dev-deploy-inbound-mail.yml @@ -26,6 +26,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "next" secrets: inherit dev_deploy_inbound_mail: diff --git a/.github/workflows/dev-deploy-web.yml b/.github/workflows/dev-deploy-web.yml index 383a638860b..37a0aed554e 100644 --- a/.github/workflows/dev-deploy-web.yml +++ b/.github/workflows/dev-deploy-web.yml @@ -20,6 +20,7 @@ jobs: uses: ./.github/workflows/reusable-web-e2e.yml with: submodules: true + submodule_branch: 'next' secrets: inherit # This workflow contains a single job called "build" diff --git a/.github/workflows/dev-deploy-widget.yml b/.github/workflows/dev-deploy-widget.yml index ef82d5f2d43..fa01ddc89b2 100644 --- a/.github/workflows/dev-deploy-widget.yml +++ b/.github/workflows/dev-deploy-widget.yml @@ -21,6 +21,7 @@ jobs: uses: ./.github/workflows/reusable-widget-e2e.yml with: submodules: true + submodule_branch: "next" secrets: inherit # This workflow contains a single job called "build" diff --git a/.github/workflows/dev-deploy-worker.yml b/.github/workflows/dev-deploy-worker.yml index 18cfb7d2946..0180cf43a2b 100644 --- a/.github/workflows/dev-deploy-worker.yml +++ b/.github/workflows/dev-deploy-worker.yml @@ -30,6 +30,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "next" secrets: inherit deploy_dev_worker: @@ -49,9 +50,11 @@ jobs: name: ['novu/worker-ee', 'novu/worker'] steps: - uses: actions/checkout@v3 + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ contains (matrix.name,'ee') }} - token: ${{ secrets.SUBMODULES_TOKEN }} + enabled: ${{ contains (matrix.name,'ee') }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: "next" - uses: ./.github/actions/setup-project - uses: ./.github/actions/docker/build-worker id: docker_build diff --git a/.github/workflows/dev-deploy-ws.yml b/.github/workflows/dev-deploy-ws.yml index f9652da8e22..87e5e54a89e 100644 --- a/.github/workflows/dev-deploy-ws.yml +++ b/.github/workflows/dev-deploy-ws.yml @@ -22,6 +22,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: 'next' secrets: inherit # This workflow contains a single job called "build" diff --git a/.github/workflows/prod-deploy-api.yml b/.github/workflows/prod-deploy-api.yml index aba9f243f93..a88b9b0c849 100644 --- a/.github/workflows/prod-deploy-api.yml +++ b/.github/workflows/prod-deploy-api.yml @@ -15,6 +15,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "main" secrets: inherit build_prod_image: @@ -36,9 +37,11 @@ jobs: id-token: write steps: - uses: actions/checkout@v3 + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ contains (matrix.name,'ee') }} - token: ${{ secrets.SUBMODULES_TOKEN }} + enabled: ${{ contains (matrix.name,'ee') }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: "main" - uses: ./.github/actions/setup-project - name: build api diff --git a/.github/workflows/prod-deploy-inbound-mail.yml b/.github/workflows/prod-deploy-inbound-mail.yml index cd262794f52..eda7f51d819 100644 --- a/.github/workflows/prod-deploy-inbound-mail.yml +++ b/.github/workflows/prod-deploy-inbound-mail.yml @@ -6,6 +6,17 @@ on: workflow_dispatch: jobs: + test_inbound_mail: + strategy: + matrix: + name: [ 'novu/inbound-mail-ee', 'novu/inbound-mail' ] + uses: ./.github/workflows/reusable-inbound-mail-e2e.yml + with: + ee: ${{ contains (matrix.name,'ee') }} + submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "main" + secrets: inherit + build_prod_image: runs-on: ubuntu-latest timeout-minutes: 80 diff --git a/.github/workflows/prod-deploy-web.yml b/.github/workflows/prod-deploy-web.yml index b944157dbab..1b5a2268ea3 100644 --- a/.github/workflows/prod-deploy-web.yml +++ b/.github/workflows/prod-deploy-web.yml @@ -13,6 +13,7 @@ jobs: uses: ./.github/workflows/reusable-web-e2e.yml with: submodules: true + submodule_branch: 'main' secrets: inherit deploy_web_eu: diff --git a/.github/workflows/prod-deploy-widget.yml b/.github/workflows/prod-deploy-widget.yml index 2778e3d258f..4d1d5d6933e 100644 --- a/.github/workflows/prod-deploy-widget.yml +++ b/.github/workflows/prod-deploy-widget.yml @@ -12,6 +12,7 @@ jobs: uses: ./.github/workflows/reusable-widget-e2e.yml with: submodules: true + submodule_branch: "main" secrets: inherit deploy_widget_eu: diff --git a/.github/workflows/prod-deploy-worker.yml b/.github/workflows/prod-deploy-worker.yml index 048ae1386d1..49fbb7eeb96 100644 --- a/.github/workflows/prod-deploy-worker.yml +++ b/.github/workflows/prod-deploy-worker.yml @@ -15,6 +15,7 @@ jobs: with: ee: ${{ contains (matrix.name,'ee') }} submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: "main" secrets: inherit build_prod_image: @@ -37,9 +38,11 @@ jobs: id-token: write steps: - uses: actions/checkout@v3 + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ contains (matrix.name,'ee') }} - token: ${{ secrets.SUBMODULES_TOKEN }} + enabled: ${{ contains (matrix.name,'ee') }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: "main" - uses: ./.github/actions/setup-project - name: build worker diff --git a/.github/workflows/prod-deploy-ws.yml b/.github/workflows/prod-deploy-ws.yml index db746e4d5c7..6c2a2d4e5f7 100644 --- a/.github/workflows/prod-deploy-ws.yml +++ b/.github/workflows/prod-deploy-ws.yml @@ -6,6 +6,17 @@ on: workflow_dispatch: jobs: + test_ws: + strategy: + matrix: + name: [ 'novu/ws-ee', 'novu/ws' ] + uses: ./.github/workflows/reusable-ws-e2e.yml + with: + ee: ${{ contains (matrix.name,'ee') }} + submodules: ${{ contains (matrix.name,'ee') }} + submodule_branch: 'main' + secrets: inherit + # This workflow contains a single job called "build" build_prod_image: # The type of runner that the job will run on diff --git a/.github/workflows/reusable-api-e2e.yml b/.github/workflows/reusable-api-e2e.yml index 75387096764..47b0a501d68 100644 --- a/.github/workflows/reusable-api-e2e.yml +++ b/.github/workflows/reusable-api-e2e.yml @@ -15,6 +15,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -39,15 +44,13 @@ jobs: else echo ::set-output has_token=false fi - # checkout with submodules if token is provided - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token == 'true' + # checkout with submodules if token is provided + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ inputs.submodules }} - token: ${{ secrets.SUBMODULES_TOKEN }} - # checkout without submodules - - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token != 'true' + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project - uses: ./.github/actions/setup-redis-cluster - uses: mansagroup/nrwl-nx-action@v3 diff --git a/.github/workflows/reusable-inbound-mail-e2e.yml b/.github/workflows/reusable-inbound-mail-e2e.yml index c267c65518b..efb72234c81 100644 --- a/.github/workflows/reusable-inbound-mail-e2e.yml +++ b/.github/workflows/reusable-inbound-mail-e2e.yml @@ -14,6 +14,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -33,14 +38,11 @@ jobs: steps: # checkout with submodules if token is provided - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token == 'true' + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ inputs.submodules }} - token: ${{ secrets.SUBMODULES_TOKEN }} - - # checkout without submodules - - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token != 'true' + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project - uses: ./.github/actions/setup-redis-cluster - uses: mansagroup/nrwl-nx-action@v3 diff --git a/.github/workflows/reusable-web-e2e.yml b/.github/workflows/reusable-web-e2e.yml index 66a4ec29f99..0e0a39c0654 100644 --- a/.github/workflows/reusable-web-e2e.yml +++ b/.github/workflows/reusable-web-e2e.yml @@ -11,6 +11,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -45,15 +50,13 @@ jobs: echo ::set-output has_token=false fi - # checkout with submodules if token is provided - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token == 'true' + # checkout with submodules if token is provided + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ inputs.submodules }} - token: ${{ secrets.SUBMODULES_TOKEN }} - # checkout without submodules - - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token != 'true' + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project id: setup-project with: diff --git a/.github/workflows/reusable-widget-e2e.yml b/.github/workflows/reusable-widget-e2e.yml index 1ba8572ea9a..3c62fe5954e 100644 --- a/.github/workflows/reusable-widget-e2e.yml +++ b/.github/workflows/reusable-widget-e2e.yml @@ -10,6 +10,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -44,15 +49,13 @@ jobs: else echo ::set-output has_token=false fi - # checkout with submodules if token is provided - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token == 'true' + # checkout with submodules if token is provided + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ inputs.submodules }} - token: ${{ secrets.SUBMODULES_TOKEN }} - # checkout without submodules - - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token != 'true' + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project id: setup-project diff --git a/.github/workflows/reusable-worker-e2e.yml b/.github/workflows/reusable-worker-e2e.yml index fe8c4063b59..a2ee98573d7 100644 --- a/.github/workflows/reusable-worker-e2e.yml +++ b/.github/workflows/reusable-worker-e2e.yml @@ -15,6 +15,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -39,16 +44,15 @@ jobs: else echo ::set-output has_token=false fi - # checkout with submodules if token is provided - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token == 'true' + # checkout with submodules if token is provided + - uses: ./.github/actions/checkout-submodules with: - submodules: ${{ inputs.submodules }} - token: ${{ secrets.SUBMODULES_TOKEN }} - # checkout without submodules - - uses: actions/checkout@v3 - if: steps.setup.outputs.has_token != 'true' + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project + - uses: ./.github/actions/setup-redis-cluster - uses: mansagroup/nrwl-nx-action@v3 with: diff --git a/.github/workflows/reusable-ws-e2e.yml b/.github/workflows/reusable-ws-e2e.yml index c3145293b0b..33d81b4fc10 100644 --- a/.github/workflows/reusable-ws-e2e.yml +++ b/.github/workflows/reusable-ws-e2e.yml @@ -14,6 +14,11 @@ on: required: false default: false type: boolean + submodule_branch: + description: 'Submodule branch to checkout to' + required: false + default: 'main' + type: string # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -31,10 +36,20 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: - # checkout with submodules if token is provided - - uses: actions/checkout@v3 - # checkout without submodules + - id: setup + run: | + if ! [[ -z "${{ secrets.SUBMODULES_TOKEN }}" ]]; then + echo ::set-output has_token=true + else + echo ::set-output has_token=false + fi - uses: actions/checkout@v3 + # checkout with submodules if token is provided + - uses: ./.github/actions/checkout-submodules + with: + enabled: ${{ steps.setup.outputs.has_token == 'true' }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: ${{ inputs.submodule_branch }} - uses: ./.github/actions/setup-project - uses: mansagroup/nrwl-nx-action@v3 with: diff --git a/.github/workflows/staging-deploy-web.yml b/.github/workflows/staging-deploy-web.yml new file mode 100644 index 00000000000..310ea5f06f5 --- /dev/null +++ b/.github/workflows/staging-deploy-web.yml @@ -0,0 +1,129 @@ +# This is a basic workflow to help you get started with Actions + +name: Deploy Staging WEB + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + workflow_dispatch: + push: + branches: + - next + - main + paths: + - 'apps/web/**' + - 'libs/shared/**' + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + test_web: + uses: ./.github/workflows/reusable-web-e2e.yml + with: + submodules: true + secrets: inherit + + # This workflow contains a single job called "build" + deploy_web: + needs: test_web + environment: Development + if: "!contains(github.event.head_commit.message, 'ci skip')" + # The type of runner that the job will run on + runs-on: ubuntu-latest + timeout-minutes: 80 + permissions: + contents: read + packages: write + deployments: write + id-token: write + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/setup-project + + - name: Build + run: CI='' pnpm build:web + + - name: Create env file + working-directory: apps/web + run: | + touch .env + echo REACT_APP_API_URL="https://staging.api.novu.co" >> .env + echo REACT_APP_WS_URL="https://staging.ws.novu.co" >> .env + echo REACT_APP_WEBHOOK_URL="https://staging.webhook.novu.co" >> .env + echo REACT_APP_WIDGET_EMBED_PATH="https://staging.embed.novu.co/embed.umd.min.js" >> .env + echo REACT_APP_NOVU_APP_ID=${{ secrets.NOVU_APP_ID }} >> .env + echo REACT_APP_SEGMENT_KEY=${{ secrets.WEB_SEGMENT_KEY }} >> .env + echo REACT_APP_SENTRY_DSN="https://8054d521cff2e73d32b8edfe4793d05c@o1161119.ingest.sentry.io/4505829158158336" >> .env + echo REACT_APP_ENVIRONMENT=staging >> .env + echo REACT_APP_MAIL_SERVER_DOMAIN="staging.inbound-mail.novu.co" >> .env + echo REACT_APP_LAUNCH_DARKLY_CLIENT_SIDE_ID=${{ secrets.DEV_LAUNCH_DARKLY_CLIENT_SIDE_ID }} >> .env + + - name: Envsetup + working-directory: apps/web + run: npm run envsetup + + # Runs a single command using the runners shell + - name: Build + env: + REACT_APP_SEGMENT_KEY: ${{ secrets.WEB_SEGMENT_KEY }} + REACT_APP_INTERCOM_APP_ID: ${{ secrets.INTERCOM_APP_ID }} + REACT_APP_API_URL: https://staging.api.novu.co + REACT_APP_WS_URL: https://staging.ws.novu.co + REACT_APP_WEBHOOK_URL: https://staging.webhook.novu.co + REACT_APP_WIDGET_EMBED_PATH: https://staging.embed.novu.co/embed.umd.min.js + REACT_APP_NOVU_APP_ID: ${{ secrets.NOVU_APP_ID }} + REACT_APP_SENTRY_DSN: https://8054d521cff2e73d32b8edfe4793d05c@o1161119.ingest.sentry.io/4505829158158336 + REACT_APP_ENVIRONMENT: staging + REACT_APP_MAIL_SERVER_DOMAIN: staging.inbound-mail.novu.co + REACT_APP_LAUNCH_DARKLY_CLIENT_SIDE_ID: ${{ secrets.DEV_LAUNCH_DARKLY_CLIENT_SIDE_ID }} + working-directory: apps/web + run: npm run build + + - name: Deploy WEB to Staging + uses: nwtgck/actions-netlify@v1.2 + with: + publish-dir: apps/web/build + github-token: ${{ secrets.GITHUB_TOKEN }} + deploy-message: Staging deployment + production-deploy: true + alias: dev + github-deployment-environment: staging + github-deployment-description: Web Deployment + netlify-config-path: apps/web/netlify.toml + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: 8010b875-9f6e-4bcc-ba67-c090c1cc2e05 + timeout-minutes: 1 + + - name: Setup Depot + uses: depot/setup-action@v1 + with: + oidc: true + + - name: Remove build outputs + working-directory: apps/web + run: rm -rf build + + - name: Build, tag, and push image to ghcr.io + id: build-image + env: + REGISTRY_OWNER: novuhq + DOCKER_NAME: novu/web + IMAGE_TAG: ${{ github.sha }} + GH_ACTOR: ${{ github.actor }} + GH_PASSWORD: ${{ secrets.GH_PACKAGES }} + DEPOT_PROJECT_ID: f88777ff6m + run: | + echo $GH_PASSWORD | docker login ghcr.io -u $GH_ACTOR --password-stdin + depot build --push \ + -t ghcr.io/$REGISTRY_OWNER/$DOCKER_NAME:$IMAGE_TAG \ + -t ghcr.io/$REGISTRY_OWNER/$DOCKER_NAME:dev \ + -f apps/web/Dockerfile . + echo "::set-output name=IMAGE::ghcr.io/$REGISTRY_OWNER/$DOCKER_NAME:$IMAGE_TAG" + + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: cypress-screenshots + path: apps/web/cypress/screenshots diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 791f24dc8ec..713ede9b88a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -245,9 +245,10 @@ jobs: steps: - run: echo ${{ matrix.projectName }} - uses: actions/checkout@v3 + - uses: ./.github/actions/checkout-submodules with: - submodules: true - token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_token: ${{ secrets.SUBMODULES_TOKEN }} + submodule_branch: "next" - uses: ./.github/actions/setup-project - uses: ./.github/actions/setup-redis-cluster - uses: mansagroup/nrwl-nx-action@v3 diff --git a/docker/kubernetes/kustomize/kustomization.yaml b/docker/kubernetes/kustomize/kustomization.yaml index 434cdaf9433..9b066f33ff4 100644 --- a/docker/kubernetes/kustomize/kustomization.yaml +++ b/docker/kubernetes/kustomize/kustomization.yaml @@ -2,6 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: + - mongodb-volume.yaml - mongodb-deployment.yaml - mongodb-service.yaml - api-deployment.yaml @@ -18,6 +19,7 @@ resources: - ws-service.yaml - worker-deployment.yaml - worker-service.yaml + # namespace # Adds namespace to all resources. diff --git a/docker/kubernetes/kustomize/mongodb-deployment.yaml b/docker/kubernetes/kustomize/mongodb-deployment.yaml index 14c149bbcc6..d36e7666557 100644 --- a/docker/kubernetes/kustomize/mongodb-deployment.yaml +++ b/docker/kubernetes/kustomize/mongodb-deployment.yaml @@ -28,3 +28,10 @@ spec: name: mongodb ports: - containerPort: 27017 + volumeMounts: + - name: "mongodb-persistent-storage" + mountPath: "/data/db" + volumes: + - name: "mongodb-persistent-storage" + persistentVolumeClaim: + claimName: "novu-mongodb-pvc" diff --git a/docker/kubernetes/kustomize/mongodb-volume.yaml b/docker/kubernetes/kustomize/mongodb-volume.yaml new file mode 100644 index 00000000000..079449ffffa --- /dev/null +++ b/docker/kubernetes/kustomize/mongodb-volume.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: novu-mongodb-pvc +spec: + resources: + requests: + storage: 5Gi + volumeMode: Filesystem + storageClassName: local-storage + accessModes: + - ReadWriteOnce diff --git a/docs/docs/notification-center/angular-component.md b/docs/docs/notification-center/angular-component.md index 19167578e4f..87687919e3c 100644 --- a/docs/docs/notification-center/angular-component.md +++ b/docs/docs/notification-center/angular-component.md @@ -13,7 +13,7 @@ npm install @novu/notification-center-angular ``` :::note -Novu supports Angular version >0.15.0. +Novu supports Angular version 15 ::: ## Example usage diff --git a/docs/docs/overview/quickstart/get-started-with-angular.md b/docs/docs/overview/quickstart/get-started-with-angular.md index e4300e02c3b..1b4011b3c96 100644 --- a/docs/docs/overview/quickstart/get-started-with-angular.md +++ b/docs/docs/overview/quickstart/get-started-with-angular.md @@ -16,7 +16,7 @@ To follow the steps in this quickstart, you'll need: - A Novu account. [Sign up for free](http://web.novu.co) if you don’t have one yet. - Angular CLI (Command Line Interface) installed on your machine -- Angular version > 0.15.0 +- Angular version 15 You can also [view the completed code](https://github.com/novuhq/angular-quickstart) of this quick start in a GitHub repo.