Category: Installation
Updated

This solution is summarized from an archived support forum post. This information may have changed. If you notice an error, please let us know in Discord.

Can’t configure HTTPS with Helm

Issue

I am having trouble setting up HTTPS with helm on GKE. While HTTP works fine and I can access appsmith from our custom URL, I am unable to set the Ingress Class. I am receiving an error message when running 'k describe ingress appsmith' and it seems like the appsmith helm chart does not support the className. Although I got it working by manually creating a cert with kubectl apply, I still cannot set the ingressClass with className. It would be great to have this feature added to the helm chart.

Resolution

The problem with setting up HTTPS with Helm and Appsmith seems to be related to the inability to set the Ingress Class using Appsmith as it does not have the capability to set the annotation. This can be fixed by manually adding the annotation in the values.yaml file. Another issue encountered is the inability to set the ingressClassName with className in the values.yaml file. This issue can be resolved by specifying the ingressClassName according to the new version specification.

To set up HTTPS with Helm and Appsmith, the following code snippets can be used:

In the values.yaml file:

ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: dev.something.com
tls: true
certManager: true

certManagerTls:
- hosts:
- dev.something.com
secretName: ingress-tls-appsmith

Manually create a cert using kubectl apply:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ingress-tls-appsmith
spec:
secretName: ingress-tls-appsmith
issuerRef:
name: letsencrypt
kind: Issuer
dnsNames:
- dev.something.com

To set the ingressClassName:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $fullName }}
namespace: {{ include "appsmith.namespace" . }}
labels:
{{- include "appsmith.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.ingress.certManager }}
kubernetes.io/tls-acme: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}

These code snippets will fix the problems related to setting up HTTPS with Helm and Appsmith, as well as the inability to set the Ingress Class and ingressClassName using Appsmith.