Added ingressClassName support and adminIngress for k8s (#2188)

diff --git a/server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc b/server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
index 7e72dbd..f36b2bd 100644
--- a/server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
+++ b/server/apps/distributed-app/docs/modules/ROOT/pages/run/k8s-values.adoc
@@ -97,10 +97,20 @@
 |glowroot.enabled |true |Enabling or disabling Glowroot usage with
 James. It’s better to disable it for prod environments
 
-|ingress.enabled |false |Enabling or disabling Nginx Ingress. We are
+|ingress.enabled |false |Enabling or disabling Ingress. We are
 using it to expose JMAP and attach our SSL certificates for
 SMTP/IMAP/JMAP. Default is false
 
+|ingress.ingressClassName |change-me |kubernetes.io/ingress.class is 
+deprecated from Kubernetes v1.22+. Use ingressClassName instead for 
+Kubernetes v1.18+
+
+|adminIngress.enabled |false |Enabling or disabling Ingress for Web Admin.
+
+|adminIngress.ingressClassName |change-me |kubernetes.io/ingress.class is 
+deprecated from Kubernetes v1.22+. Use ingressClassName instead for 
+Kubernetes v1.18+
+
 |james.tls.secretName |the-name-of-a-secret |The name of the secret
 created separately contenting the SSL certificate for JMAP, IMAPS and
 SMTPS
diff --git a/server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml b/server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
index 09acc48..c40f881 100644
--- a/server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
+++ b/server/apps/distributed-app/helm-chart/james/templates/james-admin-ingress.yaml
@@ -1,18 +1,21 @@
-{{- if .Values.ingress.enabled }}
+{{- if .Values.adminIngress.enabled }}
 apiVersion: networking.k8s.io/v1
 kind: Ingress
 metadata:
   name: james-admin
-  {{- with .Values.ingress.annotations }}
+  {{- with .Values.adminIngress.annotations }}
   annotations:
     {{- toYaml . | nindent 4 }}
   {{- end }}
 spec:
-{{- if .Values.ingress.tls }}
+{{- if .Values.adminIngress.ingressClassName }}
+  ingressClassName: {{ .Values.adminIngress.ingressClassName }}
+{{- end }} 
+{{- if .Values.adminIngress.tls }}
   tls:
   - hosts:
     - {{ .Values.dns.adminUrl }}
-    {{ toYaml .Values.ingress.tls }}
+    {{ toYaml .Values.adminIngress.tls }}
 {{- end }}    
   rules:
   - host: {{ .Values.dns.adminUrl }}
diff --git a/server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml b/server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
index 610a0e9..c2292f9 100644
--- a/server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
+++ b/server/apps/distributed-app/helm-chart/james/templates/jmap-ingress.yaml
@@ -8,6 +8,9 @@
     {{- toYaml . | nindent 4 }}
   {{- end }}
 spec:
+{{- if .Values.ingress.ingressClassName }}
+  ingressClassName: {{ .Values.ingress.ingressClassName }}
+{{- end }} 
 {{- if .Values.ingress.tls }}
   tls:
   - hosts:
diff --git a/server/apps/distributed-app/helm-chart/james/values.yaml b/server/apps/distributed-app/helm-chart/james/values.yaml
index ee10968..1d05e44 100644
--- a/server/apps/distributed-app/helm-chart/james/values.yaml
+++ b/server/apps/distributed-app/helm-chart/james/values.yaml
@@ -53,11 +53,19 @@
 
 ingress:
   enabled: false
+  # ingressClassName: "change-me"
   annotations:
-    kubernetes.io/ingress.class: nginx
     cert-manager.io/cluster-issuer: name-of-the-cluster-issuer
   tls:
-      secretName: the-name-of-a-secret      
+      secretName: the-name-of-a-secret
+
+adminIngress:
+  enabled: false
+  # ingressClassName: "change-me"
+  annotations:
+    cert-manager.io/cluster-issuer: name-of-the-cluster-issuer
+  tls:
+      secretName: the-name-of-a-secret
 
 ###
 # Please refer to the values.yaml from the Helm package for databases