Migrate to Business Edition Helm Chart v3
Follow the below guide to migrate to the Business Edition running on Helm chart (helm-ee.appsmith.com
). This version includes Horizontal Pod Auto Scaling (HPA) capability, which enables Appsmith pods to scale automatically based on the current workload.
Backup data
Open a shell into one of your current Appsmith pods:
kubectl exec -it <pod> bash
Run the backup command:
appsmithctl backup
Once the backup process is complete, the backup archive is available at a location like this:
/appsmith-stacks/data/backup/appsmith-backup-2022-10-24T07-09-56.930Z.tar.gz
Run the below command to exit the shell:
exit
Run the below command to download the backup archive:
kubectl cp <namespace>/appsmith-0:<appsmith_backup_archive_path> ./appsmith-ee-backup.tar.gz
Run the below command to retrieve the salt and password from the pod, and copy the values to
values.yaml
.kubectl exec <pod_name> -- grep /appsmith-stacks/configuration/docker.env APPSMITH_ENCRYPTION_
Set these values in the
applicationConfig
section:APPSMITH_ENCRYPTION_PASSWORD: "<PASSWORD>"
APPSMITH_ENCRYPTION_SALT: "<SALT>"
Backup Keycloak
Open a shell into one of your current Appsmith pods:
kubectl exec -it <pod> bash
Run the below command to stop Keycloak:
supervisorctl stop keycloak
Run the below command to exit the remaining process:
kill -9 `pgrep -f keycloak`
Run the below command to start Keycloak backup:
/bin/sh /opt/keycloak/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -Djboss.socket.binding.port-offset=1 -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=/tmp/keycloak_backup.json
Monitor the output as shown below:
07:25:11,805 INFO [org.hibernate.validator.internal.util.Version] (ServerService Thread Pool -- 57) HV000001: Hibernate Validator 6.0.22.Final
07:25:12,930 INFO [org.hibernate.hql.internal.QueryTranslatorFactoryInitiator] (ServerService Thread Pool -- 57) HHH000397: Using ASTQueryTranslatorFactory
07:25:13,691 INFO [org.keycloak.services] (ServerService Thread Pool -- 57) KC-SERVICES0033: Full model export requested
07:25:13,691 INFO [org.keycloak.exportimport.singlefile.SingleFileExportProvider] (ServerService Thread Pool -- 57) Exporting model into file /appsmith-stacks/data/keycloak_bkp/keycloak_backup.json
07:25:14,488 INFO [org.keycloak.services] (ServerService Thread Pool -- 57) KC-SERVICES0035: Export finished successfullyWhen you see lines similar to this, press Ctrl+c to stop the process.
Run the below command to exit out of the shell:
exit
Run the below command to download the backup file available at
/tmp/keycloak_backup.json
:kubectl cp <namespace>/appsmith-0:/tmp/keycloak_backup.json ./keycloak_bkp.json
Uninstall old Helm chart
Run the below command to uninstall the existing helm chart:
helm uninstall appsmith -n <namespace>
Configure parameters
To ensure that the Business Edition Helm chart runs, you need to make some changes to the values.yaml
file. Follow the steps below to configure the parameters:
Add the following snippet to the bottom of your
values.yaml
file. This snippet enables PostgreSQL.postgresql:
enabled: true
auth:
username: root
password: "<PASSWORD>"
postgresPassword: "<POSTGRESQL_PASSWORD>"
database: keycloakTo configure high availability, choose or create a shared file system. Follow the instructions available at Create a shared file system.
Add the license key and a few other variables related to Keycloak to
applicationConfig
section:AttentionEnsure that the
APPSMITH_CUSTOM_DOMAIN
environment variable is not set in thedocker.env
file when deploying Appsmith on Kubernetes. To configure the TLS on Kubernetes, see the Configuring TLS section.APPSMITH_KEYCLOAK_DB_DRIVER: ""
APPSMITH_KEYCLOAK_DB_USERNAME: ""
APPSMITH_KEYCLOAK_DB_PASSWORD: ""
APPSMITH_KEYCLOAK_DB_URL: ""
APPSMITH_KEYCLOAK_DB_NAME: "keycloak"
Install v3 Helm chart
Run the below command to add and deploy the new Helm chart:
helm repo add appsmith-ee https://helm-ee.appsmith.com
helm repo update
helm install appsmith appsmith-ee/appsmith-ee -n <namespace> -f values.yaml
For more information, see installing Business Edition with Kubernetes.
Restore backup
To restore the backup, follow the below steps:
Run the below command to copy the Appsmith backup into the new Appsmith pod:
kubectl cp appsmith-backup-2022-10-24T07-09-56.930Z.tar.gz <namespace>/<pod_name>:/appsmith-stacks/data/backup/
Run the below command to copy the keycloak backup into the new Appsmith pod:
kubectl cp keycloak_bkp.json <namespace>/<pod_name>:/appsmith-stacks/data/
Run the below command to restore Appsmith data:
kubectl exec -it <namespace>/<pod_name> -- appsmithctl restore
Once the data is restored, the pod restarts automatically.
Run the below command to restore the keycloak data:
kubectl exec -it <namespace>/<pod_name> -- /bin/sh /opt/keycloak/bin/standalone.sh -b 0.0.0.0 -Djboss.socket.binding.port-offset=1 -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=/appsmith-stacks/data/keycloak_bkp.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING
Monitor the output as shown below:
08:20:54,708 INFO [org.keycloak.services] (ServerService Thread Pool -- 54) KC-SERVICES0030: Full model import requested. Strategy: OVERWRITE_EXISTING
08:20:54,708 INFO [org.keycloak.exportimport.singlefile.SingleFileImportProvider] (ServerService Thread Pool -- 54) Full importing from file /appsmith-stacks/data/keycloak_bkp.json
08:20:54,715 INFO [org.keycloak.exportimport.util.ImportUtils] (ServerService Thread Pool -- 54) Realm 'master' already exists. Removing it before import
08:20:59,160 INFO [org.keycloak.exportimport.util.ImportUtils] (ServerService Thread Pool -- 54) Realm 'master' imported
08:21:01,704 INFO [org.keycloak.exportimport.util.ImportUtils] (ServerService Thread Pool -- 54) Realm 'appsmith' imported
08:21:01,794 INFO [org.keycloak.services] (ServerService Thread Pool -- 54) KC-SERVICES0032: Import finished successfullyWhen you see lines similar to this, press Ctrl+c to stop.
To apply the changes, restart using the following command:
kubectl rollout restart deployment/appsmith -n <namespace>
Congratulations, you have successfully migrated to the Appsmith Business Edition Helm chart v2 installation.
Troubleshooting
If any issues are encountered, please reach out to support@appsmith.com or raise it on the Discord Server.