Back to Appsmith

appsmith

deploy/helm/README.md

2.219.1 KB
Original Source

appsmith

Appsmith is an open source framework to build admin panels, CRUD apps and workflows. Build everything you need, 10x faster.

Organizations build custom applications like dashboards, admin panels, customer 360, IT automation, and service management tools to help their teams work more efficiently and effectively. Appsmith is an open-source low-code platform that streamlines custom application development, deployment, and maintenance.

Installation

See the Kubernetes installation guide for prerequisites, step-by-step setup, and platform-specific instructions (EKS, GKE, Minikube, etc.).

Values

Appsmith configuration

KeyTypeDefaultDescription
secretNamestring""Name of an existing Secret for APPSMITH_* env vars (empty = chart creates one)
applicationConfigobject{"APPSMITH_CLIENT_LOG_LEVEL":"","APPSMITH_CUSTOM_DOMAIN":"","APPSMITH_DB_URL":"","APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX":"false","APPSMITH_DISABLE_TELEMETRY":"","APPSMITH_ENCRYPTION_PASSWORD":"","APPSMITH_ENCRYPTION_SALT":"","APPSMITH_FORM_LOGIN_DISABLED":"","APPSMITH_KEYCLOAK_DB_DRIVER":"","APPSMITH_KEYCLOAK_DB_PASSWORD":"","APPSMITH_KEYCLOAK_DB_URL":"","APPSMITH_KEYCLOAK_DB_USERNAME":"","APPSMITH_LICENSE_KEY":"","APPSMITH_MAIL_ENABLED":"","APPSMITH_MAIL_FROM":"","APPSMITH_MAIL_HOST":"","APPSMITH_MAIL_PASSWORD":"","APPSMITH_MAIL_PORT":"","APPSMITH_MAIL_SMTP_AUTH":"","APPSMITH_MAIL_SMTP_TLS_ENABLED":"","APPSMITH_MAIL_USERNAME":"","APPSMITH_OAUTH2_GITHUB_CLIENT_ID":"","APPSMITH_OAUTH2_GITHUB_CLIENT_SECRET":"","APPSMITH_OAUTH2_GOOGLE_CLIENT_ID":"","APPSMITH_OAUTH2_GOOGLE_CLIENT_SECRET":"","APPSMITH_RECAPTCHA_ENABLED":"","APPSMITH_RECAPTCHA_SECRET_KEY":"","APPSMITH_RECAPTCHA_SITE_KEY":"","APPSMITH_REDIS_URL":"","APPSMITH_REPLY_TO":"","APPSMITH_SIGNUP_DISABLED":""}Map of APPSMITH_* environment variables for the application container
imageobject{"pullPolicy":"IfNotPresent","pullSecrets":"","registry":"index.docker.io","repository":"appsmith/appsmith-ee","tag":"latest"}Appsmith container image configuration
_imageobject{}DEPRECATED: use image instead. Backwards-compatible override merged on top of image.

Global parameters

KeyTypeDefaultDescription
globalobject{"namespaceOverride":"","storageClass":""}Global parameters that override values across the chart and its dependencies
fullnameOverridestring""String to fully override appsmith.fullname template
containerNamestring"appsmith"Name of the container running in Appsmith pods
commonLabelsobject{}Labels to add to all deployed objects
commonAnnotationsobject{}Common annotations to add to all Appsmith resources (sub-charts are not considered). Evaluated as a template
schedulerNamestring""Name of the scheduler (other than default) to dispatch pods
strategyTypestring"RollingUpdate"StrategyType for the Appsmith workload
initContainerobject{}Init container image overrides for bundled dependencies

Workload configuration

KeyTypeDefaultDescription
annotationsobject{}Annotations to add to the Deployment/StatefulSet resource
podAnnotationsobject{}Annotations to add to Appsmith pods
podLabelsobject{}Labels to add to Appsmith pods
podSecurityContextobject{}Pod-level securityContext for Appsmith pods
securityContextobject{}Container-level securityContext for the Appsmith container
extraVolumeslist[]Additional volumes to add to the pod
extraVolumeMountslist[]Additional volume mounts to add to the appsmith container
customCAcertstringnilCustom CA certificates to trust at runtime (map of filename to PEM content)
resources.limitsobject{}Resource limits for the Appsmith container
resources.requestsobject{"cpu":"500m","memory":"3000Mi"}Resource requests for the Appsmith container
workloadobject{"kind":"StatefulSet"}Select workload resource type: Deployment or StatefulSet
replicasint1Number of replicas when autoscaling is disabled
autoscaling.enabledboolfalseEnable the HorizontalPodAutoscaler
autoscaling.minReplicasint2Minimum number of replicas for the HPA
autoscaling.maxReplicasint2Maximum number of replicas for the HPA
autoscaling.targetCPUUtilizationPercentageint5Target average CPU utilization (percentage)
nodeSelectorobject{}Node selector for Appsmith pods
tolerationslist[]Tolerations for Appsmith pods
affinityobject{}Affinity rules for Appsmith pods
podDisruptionBudgets.enabledbooltrueEnable a PodDisruptionBudget for Appsmith pods
podDisruptionBudgets.minAvailableint1Minimum available pods during voluntary disruptions

Redis (Bitnami subchart)

KeyTypeDefaultDescription
redis.enabledbooltrueDeploy the bundled Bitnami Redis subchart
redis.auth.enabledbooltrueEnable Redis authentication
redis.auth.existingSecretstring"appsmith-redis-secret"Name of the Secret holding the Redis password. Bootstrapped by the redisAuth.passwordInit Job when absent (see redisAuth below)
redis.auth.existingSecretPasswordKeystring"redis-password"Key within existingSecret that holds the Redis password
redis.master.nodeSelectorobject{}Node selector for Redis master pods
redis.master.disableCommandslist[]Commands to disable on Redis master
redis.master.affinityobject{}Affinity rules for Redis master pods
redis.master.tolerationslist[]Tolerations for Redis master pods
redis.replica.replicaCountint1Number of Redis replica pods
redis.replica.nodeSelectorobject{}Node selector for Redis replica pods
redis.replica.disableCommandslist[]Commands to disable on Redis replicas
redis.replica.affinityobject{}Affinity rules for Redis replica pods
redis.replica.tolerationslist[]Tolerations for Redis replica pods
redis.image.registrystring"docker.io"Redis image registry
redis.image.repositorystring"redis"Redis image repository
redis.image.tagstring"7.4.9"Redis image tag

Redis Auth

KeyTypeDefaultDescription
redisAuth.passwordInit.image.registrystring"docker.io"Registry for the kubectl image
redisAuth.passwordInit.image.repositorystring"alpine/kubectl"Repository path for the kubectl image
redisAuth.passwordInit.image.tagstring"latest"Image tag. "latest" is used by default to sidestep upstream tag retention; pin for reproducibility.
redisAuth.passwordInit.image.pullPolicystring"IfNotPresent"Image pull policy for the Job

MongoDB (Bitnami subchart)

KeyTypeDefaultDescription
mongodb.enabledbooltrueDeploy the bundled Bitnami MongoDB subchart
mongodb.service.nameOverridestring"appsmith-mongodb"Service name override for the MongoDB subchart
mongodb.auth.rootUserstring"root"MongoDB root username
mongodb.auth.rootPasswordstring"password"MongoDB root password
mongodb.replicaCountint2Number of MongoDB replica set members
mongodb.architecturestring"replicaset"MongoDB architecture (standalone or replicaset)
mongodb.replicaSetNamestring"rs0"MongoDB replica set name
mongodb.nodeSelectorobject{}Node selector for MongoDB pods
mongodb.affinityobject{}Affinity rules for MongoDB pods
mongodb.tolerationslist[]Tolerations for MongoDB pods
mongodb.image.registrystring"docker.io"MongoDB container image registry
mongodb.image.repositorystring"appsmith/mongodb"MongoDB container image repository
mongodb.image.tagstring"6.0.27"MongoDB container image tag
mongodb.arbiter.nodeSelectorobject{}Node selector for MongoDB arbiter pods
mongodb.arbiter.affinityobject{}Affinity rules for MongoDB arbiter pods
mongodb.arbiter.tolerationslist[]Tolerations for MongoDB arbiter pods
mongodb.hidden.nodeSelectorobject{}Node selector for MongoDB hidden replica pods
mongodb.hidden.affinityobject{}Affinity rules for MongoDB hidden replica pods
mongodb.hidden.tolerationslist[]Tolerations for MongoDB hidden replica pods

MongoDB Community Operator

KeyTypeDefaultDescription
mongodbCommunity.enabledboolfalseDeploy a MongoDBCommunity custom resource
mongodbCommunity.namestring""Name of the MongoDBCommunity custom resource
mongodbCommunity.versionstring"8.0.20"MongoDB version to deploy
mongodbCommunity.membersint1Number of replica set members
mongodbCommunity.auth.usernamestring"appsmith"MongoDB user for Appsmith
mongodbCommunity.auth.databasestring"appsmith"Authentication database (also used as connection path)
mongodbCommunity.auth.passwordSecretNamestring""Name of an existing Secret containing the password (key: password)
mongodbCommunity.persistent.storageSizestring"10Gi"Storage size for each MongoDB replica
mongodbCommunity.persistent.storageClassstring""StorageClass for MongoDB PVCs (empty uses cluster default)
mongodbCommunity.resourcesobject{}Resource requests/limits for MongoDB containers
mongodbCommunity.nodeSelectorobject{}Node selector for MongoDB pods
mongodbCommunity.affinityobject{}Affinity rules for MongoDB pods
mongodbCommunity.tolerationslist[]Tolerations for MongoDB pods
mongodbCommunity.passwordInit.image.registrystring"docker.io"Registry for the kubectl image
mongodbCommunity.passwordInit.image.repositorystring"alpine/kubectl"Repository path for the kubectl image
mongodbCommunity.passwordInit.image.tagstring"latest"Image tag. "latest" is used by default to sidestep upstream tag retention; pin for reproducibility.
mongodbCommunity.passwordInit.image.pullPolicystring"IfNotPresent"Image pull policy for the Job
mongodbOperator.enabledboolfalseInstall the MongoDB Kubernetes Operator subchart
mongodbOperator.operatorobject{"telemetry":{"enabled":false}}Enable the upstream operator's phone-home telemetry

PostgreSQL (Bitnami subchart)

KeyTypeDefaultDescription
postgresql.enabledbooltrueDeploy the bundled Bitnami PostgreSQL subchart (used by Keycloak)
postgresql.auth.usernamestring"root"PostgreSQL application username
postgresql.auth.passwordstring"password"PostgreSQL application user password
postgresql.auth.postgresPasswordstring"password"PostgreSQL admin (postgres) password
postgresql.auth.databasestring"keycloak"PostgreSQL database name
postgresql.image.registrystring"docker.io"PostgreSQL container image registry
postgresql.image.repositorystring"bitnamilegacy/postgresql"PostgreSQL container image repository
postgresql.image.tagstring"14.12.0"PostgreSQL container image tag
postgresql.primary.affinityobject{}Affinity rules for PostgreSQL primary pods
postgresql.primary.nodeSelectorobject{}Node selector for PostgreSQL primary pods
postgresql.primary.tolerationslist[]Tolerations for PostgreSQL primary pods
postgresql.readReplicas.affinityobject{}Affinity rules for PostgreSQL read replica pods
postgresql.readReplicas.nodeSelectorobject{}Node selector for PostgreSQL read replica pods
postgresql.readReplicas.tolerationslist[]Tolerations for PostgreSQL read replica pods

External Secrets

KeyTypeDefaultDescription
externalSecrets.enabledboolfalseEnable External Secrets Operator integration
externalSecrets.refreshIntervalstring"1m"How often to refresh secrets from the remote provider
externalSecrets.remoteNameSecretstring""Name of the secret in the external provider

Monitoring

KeyTypeDefaultDescription
prometheus.enabledboolfalseDeploy the bundled Prometheus subchart
prometheus.image.tagstring"v0.74.0"Prometheus container image tag
metrics.enabledboolfalseEnable the Appsmith metrics endpoint
metrics.portint2019Port number to expose metrics on

Service account

KeyTypeDefaultDescription
serviceAccount.createbooltrueEnable creation of ServiceAccount for Appsmith pods
serviceAccount.namestring""Name of the created serviceAccount
serviceAccount.annotationsobject{}Additional Service Account annotations

Networking

KeyTypeDefaultDescription
service.typestring"ClusterIP"Kubernetes Service type
service.portint80Service port
service.nodePortint8000Node port to expose if service type is "LoadBalancer" or "NodePort"
service.portNamestring"appsmith"Appsmith service port name
service.clusterIPstring""Appsmith service cluster IP
service.loadBalancerIPstring""loadBalancerIP for the Appsmith Service
service.loadBalancerSourceRangeslist[]Address(es) that are allowed when service is LoadBalancer
service.annotationsobject{}Provide any additional annotations that may be required
ingress.enabledboolfalseEnable Ingress record generation for Appsmith
ingress.annotationsobject{}Additional custom annotations for the ingress record
ingress.hostslist[]Hosts served by the Ingress
ingress.tlsboolfalseEnable TLS configuration for the host defined at ingress.hosts parameter
ingress.secretslist[]Custom TLS certificates as secrets
ingress.certManagerboolfalseEnable ingress to use TLS certificates provided by Cert Manager
ingress.certManagerTlslist[]Specify the TLS secret created by Cert Manager
ingress.classNamestring"nginx"IngressClass name for the Ingress resource

Persistence

KeyTypeDefaultDescription
persistence.enabledbooltrueEnable data persistence using PVC
persistence.storageClassstring""PVC Storage Class
persistence.annotationsobject{}Additional custom annotations for the PVC
persistence.localStorageboolfalseUse local storage for PVC
persistence.storagePathstring"/tmp/hostpath_pv"Local storage path
persistence.localClusterobject{}Local cluster configuration for local-storage scenarios
persistence.accessModeslist["ReadWriteMany"]PV Access Mode
persistence.sizestring"10Gi"PVC Storage Request
persistence.reclaimPolicystring"Retain"Reclaim policy for the PV
persistence.pvNameOverridestring""Override the PV name
persistence.existingClaim.enabledstringnilUse an existing PVC instead of creating one
persistence.existingClaim.namestringnilName used to look up the existing PVC
persistence.existingClaim.claimNamestringnilExplicit claimName to set on the volume mount
persistence.efs.enabledstringnilEnable EFS-backed persistence
persistence.efs.driverstringnilCSI driver name for the EFS volume
persistence.efs.volumeHandlestringnilEFS filesystem volume handle (fs-xxxx[::access-point])
persistence.volumeClaimTemplates.selectorobject{}A label query over volumes to consider for binding (e.g. when using local volumes)
persistence.volumeClaimTemplates.requestsobject{}Custom PVC requests attributes
persistence.volumeClaimTemplates.dataSourceobject{}Add dataSource to the VolumeClaimTemplate
storageClass.enabledboolfalseEnable a chart-managed StorageClass
storageClass.bindingModestring"Immediate"Binding mode for PVCs using this StorageClass
storageClass.defaultClassboolfalseMark this StorageClass as the cluster default
storageClass.allowVolumeExpansionbooltrueAllow PVC expansion for this StorageClass
storageClass.reclaimPolicystring"Delete"Reclaim policy for dynamically provisioned PVs
storageClass.provisionerstring""Provisioner name for this StorageClass
storageClass.annotationsobject{}Annotations for the StorageClass
storageClass.mountOptionsobject{}Mount options for volumes using this StorageClass
storageClass.parametersobject{}Provisioner-specific parameters for this StorageClass

Other Values

KeyTypeDefaultDescription
keda.enabledboolfalseEnable KEDA ScaledObject for Appsmith
keda.pollingIntervalint30How often KEDA polls trigger sources (seconds)
keda.cooldownPeriodint60Cooldown period before scaling down (seconds)
keda.minReplicaCountint1Minimum replica count for KEDA
keda.maxReplicaCountint6Maximum replica count for KEDA
keda.fallback.failureThresholdint3Consecutive failures before fallback
keda.fallback.replicasint4Replica count to fall back to
keda.triggerslist[]KEDA trigger definitions (passed through to ScaledObject)
autoupdate.enabledboolfalseEnable the auto-update CronJob
autoupdate.schedulerstring"0 * * * *"CronJob schedule expression for auto-update

Testing

The chart ships with helm-unittest tests in tests/. See tests/README.md for details on running them.

Documentation

Full documentation is available at docs.appsmith.com, including:

Maintainers

NameEmailUrl
Appsmith[email protected]

Source Code