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.