Expose K8s to Internet
The page provides steps to expose your Appsmith Kubernetes installation to the internet.
Prerequisites
- A self-hosted Appsmith installation on a Kubernetes cluster. If not installed yet, see the Kubernetes installation guide for installing Appsmith.
- A running Kubernetes cluster with at least one node.
Before you begin
Install NGINX Ingress controller on your Kubernetes cluster. If not installed yet, follow these steps:
a. Add ingress chart repository with:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
b. Load ingress chart repository with:
helm repo update
c. Deploy ingress with:
helm upgrade --namespace ingress-nginx -i ingress-nginx ingress-nginx/ingress-nginx --create-namespace --version 4.4.0
d. Verify ingress installation with:
kubectl get pods -n ingress-nginx
Configure instance
- Community Edition
- Commercial Edition
Go to the Appsmith installation directory, open values.yaml file, and update the
ingress
attribute as shown below:ingress:
## @param ingress.enabled Enable ingress record generation for Ghost
##
enabled: true
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/limit-rps: "15"
## @param ingress.annotations Additional custom annotations for the ingress record
## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added
##
className: nginx
hosts:
- host: <REPLACE-WITH-YOUR-DOMAIN>
paths:
- path: "/"
pathType: Prefix
service:
## @param service.type Kubernetes Service type
##
type: ClusterIPRun the below command once the parameter values are updated:
helm upgrade -i appsmith appsmith/appsmith --f values.yaml
It takes a few minutes for the ingress to get a public IP assigned. Once it has been assigned, you should see an IPv4 address or a domain name in the
ADDRESS
column. Run the below command to get this address:kubectl get ingress -n appsmith
Go to the Appsmith installation directory, open values.yaml file, and update
ingress
attribute as shown below:ingress:
## @param ingress.enabled Enable ingress record generation for Ghost
##
enabled: true
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/limit-rps: "15"
## @param ingress.annotations Additional custom annotations for the ingress record
## NOTE: If `ingress.certManager=true`, annotation `kubernetes.io/tls-acme: "true"` will automatically be added
##
className: nginx
hosts:
- host: <REPLACE-WITH-YOUR-DOMAIN>
paths:
- path: "/"
pathType: Prefix
service:
## @param service.type Kubernetes Service type
##
type: ClusterIPRun the below command once the parameter values are updated:
helm upgrade -i appsmith-ee appsmith-ee/appsmith -n appsmith-ee -f values.yaml
It takes a few minutes for the ingress to get a public IP assigned. Once it has been assigned, you should see an IPv4 address or a domain name in the
ADDRESS
column. Run the below command to get this address:kubectl get ingress -n appsmith-ee
Troubleshooting
If you face issues, contact the support team using the chat widget at the bottom right of this page.