Enterprise Upgrade Guide

Upgrade: v3.15.0

This page contains the list of deprecations and important or breaking changes for DeepSource Enterprise Server 3.15.0 compared to 3.14.11. Please read it carefully.

Changes

Job Cleanup

Analysis jobs are created in the atlas-jobs namespaces. Jobs once Completed or Failed need to be cleaned up so that the respective Kubernetes pods don't take up valuable resources on the nodes. To automate this cleanup we've updated the existing version of kube-janitor a service that cleans up Kubernetes job resources in the atlas-jobs namespace. Since there would already be many analysis jobs piled up in the cluster, please run the following command to clean up the respective jobs before upgrading:

$ kubectl delete jobs -n atlas-jobs --field-selector status.successful=1

NOTE: This will delete all Kubernetes jobs in the atlas-jobs namespaces that have successfully completed. After the upgrade kube-janitor will automatically take care of this.

Taints and Tolerations

DeepSource Enterprise Server 3.15.0 adds support for integrations with Slack and Jira for sending push notifications. A new Kubernetes deployment hermes has been added to support these integrations. The updated version of kube-janitor is deployed as a Kubernetes CronJob. For users that make use of taints and tolerations running DeepSource Enterprise Server in their existing Kubernetes cluster and not in the embedded cluster, taints and tolerations will have to be added via kustomize for both these services. Please refer to Patching with Kustomize.

Upgrade: v3.31.0

Changes

  • This release adds support for a new Database authentication type that has to be selected before deploying. Select scram-sha-256 for PostgreSQL 14 and above, md5 for PostgreSQL 12 and below. -
  • Starting from this release we have deprecated support for PostgreSQL 14 and below, follow the upgrade guide for upgrading your managed PostgreSQL instance from PostgreSQL 11 & 12 to PostgreSQL 16.

Upgrade from PostgreSQL 11 & 12 to PostgreSQL 16

  1. Upgrade database instance to Postgres16 from your respective cloud provider console
    1. AWS:
      1. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html
    2. GCP:
      1. https://cloud.google.com/sql/docs/postgres/upgrade-major-db-version-inplace
    3. Azure:
      1. https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-major-version-upgrade
  2. Scale down db dependent workload
    1. Download the following script on your kubernetes node/local machine:
      curl -LJO https://gist.githubusercontent.com/deepsourcebot/e4a1f5f314c5712a27ad2ddd03bcba08/raw/e26f74f1b6fbcdf17ad6b518bae65c571c2d756f/scale-down-db-workloads.sh
      
    2. Run chmod +x scale-down-db-workloads.sh from the node/machine that you use to access kubernetes
    3. Run ./scale-down-db-workloads.sh
  3. Change password for the existing db user used by DeepSource.

Changing the password is required to make sure the latest auth_type is being used.

  1. Check for updates from Admin console and edit the config for DeepSource Enterprise Server (v3.31.0) with new password, select auth_type as sha-scram-256 and save the config.

    1. Select "Configure" for the latest version with status "pending config"

    2. Select "scram-sha-256" as Database Authentication Type under Database Configuration

    3. Update the password field with the newly generated password

    4. Save config

    5. Deploy the latest edited version