Merge "Support --base-image"
diff --git a/helm-charts/gerrit-replica/README.md b/helm-charts/gerrit-replica/README.md
index 5faee1e..c988875 100644
--- a/helm-charts/gerrit-replica/README.md
+++ b/helm-charts/gerrit-replica/README.md
@@ -328,7 +328,9 @@
 | `gitBackend.livenessProbe` | Configuration of the liveness probe timings | `{initialDelaySeconds: 10, periodSeconds: 5}` |
 | `gitBackend.readinessProbe` | Configuration of the readiness probe timings | `{initialDelaySeconds: 5, periodSeconds: 1}` |
 | `gitBackend.credentials.htpasswd` | `.htpasswd`-file containing username/password-credentials for accessing git | `git:$apr1$O/LbLKC7$Q60GWE7OcqSEMSfe/K8xU.` (user: git, password: secret) |
+| `gitBackend.service.additionalAnnotations` | Additional annotations for the Service | `{}` |
 | `gitBackend.service.type` | Which kind of Service to deploy | `LoadBalancer` |
+| `gitBackend.service.externalTrafficPolicy` | Specify how traffic from external is handled | `Cluster` |
 | `gitBackend.service.http.enabled` | Whether to serve HTTP-requests (needed for Ingress) | `true` |
 | `gitBackend.service.http.port` | Port over which to expose HTTP | `80` |
 | `gitBackend.service.https.enabled` | Whether to serve HTTPS-requests | `false` |
@@ -395,7 +397,9 @@
 |                           |                                                               | `limits.memory: 6Gi` |
 | `gerritReplica.networkPolicy.ingress` | Custom ingress-network policy for gerrit-replica pods | `nil` |
 | `gerritReplica.networkPolicy.egress` | Custom egress-network policy for gerrit-replica pods | `nil` |
+| `gerritReplica.service.additionalAnnotations` | Additional annotations for the Service | `{}` |
 | `gerritReplica.service.type` | Which kind of Service to deploy | `NodePort` |
+| `gerritReplica.service.externalTrafficPolicy` | Specify how traffic from external is handled | `Cluster` |
 | `gerritReplica.service.http.port` | Port over which to expose HTTP | `80` |
 | `gerritReplica.service.ssh.enabled` | Whether to enable SSH for the Gerrit replica | `false` |
 | `gerritReplica.service.ssh.port` | Port for SSH | `29418` |
diff --git a/helm-charts/gerrit-replica/templates/gerrit-replica.configmap.yaml b/helm-charts/gerrit-replica/templates/gerrit-replica.configmap.yaml
index b95d77b..a758f04 100644
--- a/helm-charts/gerrit-replica/templates/gerrit-replica.configmap.yaml
+++ b/helm-charts/gerrit-replica/templates/gerrit-replica.configmap.yaml
@@ -5,7 +5,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-replica-configmap
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -29,7 +30,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-init-configmap
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -60,7 +62,8 @@
 metadata:
   name:  {{ $root.Release.Name }}-{{ .name }}
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ $root.Release.Name }}
     chart: {{ template "gerrit-replica.chart" $root }}
     heritage: {{ $root.Release.Service }}
     release: {{ $root.Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/gerrit-replica.secrets.yaml b/helm-charts/gerrit-replica/templates/gerrit-replica.secrets.yaml
index 9d79668..b36a428 100644
--- a/helm-charts/gerrit-replica/templates/gerrit-replica.secrets.yaml
+++ b/helm-charts/gerrit-replica/templates/gerrit-replica.secrets.yaml
@@ -3,7 +3,8 @@
 metadata:
   name:  {{ .Release.Name }}-gerrit-replica-secure-config
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/gerrit-replica.service.yaml b/helm-charts/gerrit-replica/templates/gerrit-replica.service.yaml
index dc6460c..e3c5ca0 100644
--- a/helm-charts/gerrit-replica/templates/gerrit-replica.service.yaml
+++ b/helm-charts/gerrit-replica/templates/gerrit-replica.service.yaml
@@ -3,10 +3,15 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-replica-service
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
+  {{- if .Values.gerritReplica.service.additionalAnnotations }}
+  annotations:
+{{ toYaml .Values.gerritReplica.service.additionalAnnotations  | indent 4 }}
+  {{- end }}
 spec:
   {{ with .Values.gerritReplica.service }}
   ports:
@@ -18,7 +23,9 @@
     port: {{ .ssh.port }}
     targetPort: 29418
   {{- end }}
-  selector:
-    app: gerrit-replica
   type: {{ .type }}
+  externalTrafficPolicy: {{ .externalTrafficPolicy }}
   {{- end }}
+  selector:
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/gerrit-replica.stateful-set.yaml b/helm-charts/gerrit-replica/templates/gerrit-replica.stateful-set.yaml
index 0c284dc..b02144e 100644
--- a/helm-charts/gerrit-replica/templates/gerrit-replica.stateful-set.yaml
+++ b/helm-charts/gerrit-replica/templates/gerrit-replica.stateful-set.yaml
@@ -5,7 +5,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-replica-statefulset
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -17,11 +18,13 @@
       partition: {{ .Values.gerritReplica.updatePartition }}
   selector:
     matchLabels:
-      app: gerrit-replica
+      app.kubernetes.io/component: gerrit-replica
+      app.kubernetes.io/instance: {{ .Release.Name }}
   template:
     metadata:
       labels:
-        app: gerrit-replica
+        app.kubernetes.io/component: gerrit-replica
+        app.kubernetes.io/instance: {{ .Release.Name }}
         chart: {{ template "gerrit-replica.chart" . }}
         heritage: {{ .Release.Service }}
         release: {{ .Release.Name }}
@@ -303,7 +306,8 @@
   - metadata:
       name: gerrit-site
       labels:
-        app: gerrit-replica
+        app.kubernetes.io/component: gerrit-replica
+        app.kubernetes.io/instance: {{ .Release.Name }}
         chart: {{ template "gerrit-replica.chart" . }}
         heritage: {{ .Release.Service }}
         release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/gerrit-replica.storage.yaml b/helm-charts/gerrit-replica/templates/gerrit-replica.storage.yaml
index d6ed00c..ef87adf 100644
--- a/helm-charts/gerrit-replica/templates/gerrit-replica.storage.yaml
+++ b/helm-charts/gerrit-replica/templates/gerrit-replica.storage.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-plugin-cache-pvc
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/git-backend.deployment.yaml b/helm-charts/gerrit-replica/templates/git-backend.deployment.yaml
index dbdd8fd..7468df5 100644
--- a/helm-charts/gerrit-replica/templates/git-backend.deployment.yaml
+++ b/helm-charts/gerrit-replica/templates/git-backend.deployment.yaml
@@ -3,7 +3,8 @@
 metadata:
   name: {{ .Release.Name }}-git-backend-deployment
   labels:
-    app: git-backend
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -15,11 +16,13 @@
       maxUnavailable: {{ .Values.gitBackend.maxUnavailable }}
   selector:
     matchLabels:
-      app: git-backend
+      app.kubernetes.io/component: git-backend
+      app.kubernetes.io/instance: {{ .Release.Name }}
   template:
     metadata:
       labels:
-        app: git-backend
+        app.kubernetes.io/component: git-backend
+        app.kubernetes.io/instance: {{ .Release.Name }}
         chart: {{ template "gerrit-replica.chart" . }}
         heritage: {{ .Release.Service }}
         release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/git-backend.secrets.yaml b/helm-charts/gerrit-replica/templates/git-backend.secrets.yaml
index aa37816..e7a3ad5 100644
--- a/helm-charts/gerrit-replica/templates/git-backend.secrets.yaml
+++ b/helm-charts/gerrit-replica/templates/git-backend.secrets.yaml
@@ -3,7 +3,8 @@
 metadata:
   name:  {{ .Release.Name }}-git-backend-secret
   labels:
-    app: git-backend
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/git-backend.service.yaml b/helm-charts/gerrit-replica/templates/git-backend.service.yaml
index 4dc0466..8a8c7a4 100644
--- a/helm-charts/gerrit-replica/templates/git-backend.service.yaml
+++ b/helm-charts/gerrit-replica/templates/git-backend.service.yaml
@@ -3,17 +3,24 @@
 metadata:
   name: {{ .Release.Name }}-git-backend-service
   labels:
-    app: git-backend
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
+  {{- if .Values.gitBackend.service.additionalAnnotations }}
+  annotations:
+{{ toYaml .Values.gitBackend.service.additionalAnnotations  | indent 4 }}
+  {{- end }}
 spec:
   {{ with .Values.gitBackend.service }}
   ports:
   - name: http
     port: {{ .http.port }}
     targetPort: 80
-  selector:
-    app: git-backend
   type: {{ .type }}
+  externalTrafficPolicy: {{ .externalTrafficPolicy }}
   {{- end }}
+  selector:
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/git-gc.cronjob.yaml b/helm-charts/gerrit-replica/templates/git-gc.cronjob.yaml
index 5a270f2..6858004 100644
--- a/helm-charts/gerrit-replica/templates/git-gc.cronjob.yaml
+++ b/helm-charts/gerrit-replica/templates/git-gc.cronjob.yaml
@@ -3,7 +3,8 @@
 metadata:
   name:  {{ .Release.Name }}-git-gc
   labels:
-    app: git-gc
+    app.kubernetes.io/component: git-gc
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -20,7 +21,8 @@
             sidecar.istio.io/inject: "false"
           {{- end }}
           labels:
-            app: git-gc
+            app.kubernetes.io/component: git-gc
+            app.kubernetes.io/instance: {{ .Release.Name }}
             chart: {{ template "gerrit-replica.chart" . }}
             heritage: {{ .Release.Service }}
             release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/global.secrets.yaml b/helm-charts/gerrit-replica/templates/global.secrets.yaml
index 0afd2cd..a81cced 100644
--- a/helm-charts/gerrit-replica/templates/global.secrets.yaml
+++ b/helm-charts/gerrit-replica/templates/global.secrets.yaml
@@ -4,7 +4,8 @@
 metadata:
   name:  {{ .Release.Name }}-tls-ca
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/ingress.yaml b/helm-charts/gerrit-replica/templates/ingress.yaml
index d34af05..6b2b72e 100644
--- a/helm-charts/gerrit-replica/templates/ingress.yaml
+++ b/helm-charts/gerrit-replica/templates/ingress.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-ingress
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -64,7 +65,8 @@
 metadata:
   name:  {{ .Release.Name }}-tls-secret
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/istio.ingressgateway.yaml b/helm-charts/gerrit-replica/templates/istio.ingressgateway.yaml
index fae7e6b..54f455b 100644
--- a/helm-charts/gerrit-replica/templates/istio.ingressgateway.yaml
+++ b/helm-charts/gerrit-replica/templates/istio.ingressgateway.yaml
@@ -6,7 +6,8 @@
   name:  {{ .Release.Name }}-istio-tls-secret
   namespace: istio-system
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -23,7 +24,8 @@
 metadata:
   name: {{ .Release.Name }}-istio-gateway
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -68,7 +70,8 @@
 metadata:
   name: {{ .Release.Name }}-istio-virtual-service
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -113,7 +116,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-destination-rule
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/log-cleaner.cronjob.yaml b/helm-charts/gerrit-replica/templates/log-cleaner.cronjob.yaml
index 721e7b9..2fbc7a5 100644
--- a/helm-charts/gerrit-replica/templates/log-cleaner.cronjob.yaml
+++ b/helm-charts/gerrit-replica/templates/log-cleaner.cronjob.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-log-cleaner
   labels:
-    app: log-cleaner
+    app.kubernetes.io/component: log-cleaner
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/netpol.yaml b/helm-charts/gerrit-replica/templates/netpol.yaml
index 9e8818f..9e2dc33 100644
--- a/helm-charts/gerrit-replica/templates/netpol.yaml
+++ b/helm-charts/gerrit-replica/templates/netpol.yaml
@@ -49,7 +49,8 @@
 metadata:
   name: gerrit-replica-allow-external
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -58,7 +59,8 @@
     matchLabels:
       chart: {{ template "gerrit-replica.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit-replica
+      app.kubernetes.io/component: gerrit-replica
+      app.kubernetes.io/instance: {{ .Release.Name }}
   ingress:
   - ports:
     - port: 8080
@@ -70,7 +72,8 @@
 metadata:
   name: git-backend-custom-ingress-policies
   labels:
-    app: git-backend
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -81,7 +84,8 @@
     matchLabels:
       chart: {{ template "gerrit-replica.chart" . }}
       release: {{ .Release.Name }}
-      app: git-backend
+      app.kubernetes.io/component: git-backend
+      app.kubernetes.io/instance: {{ .Release.Name }}
   ingress:
 {{ toYaml .Values.gitBackend.networkPolicy.ingress | indent 2 }}
 {{- end }}
@@ -92,7 +96,8 @@
 metadata:
   name: git-backend-custom-egress-policies
   labels:
-    app: git-backend
+    app.kubernetes.io/component: git-backend
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -103,7 +108,8 @@
     matchLabels:
       chart: {{ template "gerrit-replica.chart" . }}
       release: {{ .Release.Name }}
-      app: git-backend
+      app.kubernetes.io/component: git-backend
+      app.kubernetes.io/instance: {{ .Release.Name }}
   egress:
 {{ toYaml .Values.gitBackend.networkPolicy.egress | indent 2 }}
 {{- end }}
@@ -114,7 +120,8 @@
 metadata:
   name: gerrit-replica-custom-ingress-policies
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -125,7 +132,8 @@
     matchLabels:
       chart: {{ template "gerrit-replica.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit-replica
+      app.kubernetes.io/component: gerrit-replica
+      app.kubernetes.io/instance: {{ .Release.Name }}
   ingress:
 {{ toYaml .Values.gerritReplica.networkPolicy.ingress | indent 2 }}
 {{- end }}
@@ -136,7 +144,8 @@
 metadata:
   name: gerrit-replica-custom-egress-policies
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -147,7 +156,8 @@
     matchLabels:
       chart: {{ template "gerrit-replica.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit-replica
+      app.kubernetes.io/component: gerrit-replica
+      app.kubernetes.io/instance: {{ .Release.Name }}
   egress:
 {{ toYaml .Values.gerritReplica.networkPolicy.egress | indent 2 }}
 {{- end }}
diff --git a/helm-charts/gerrit-replica/templates/nfs.configmap.yaml b/helm-charts/gerrit-replica/templates/nfs.configmap.yaml
index b8d6f38..841102e 100644
--- a/helm-charts/gerrit-replica/templates/nfs.configmap.yaml
+++ b/helm-charts/gerrit-replica/templates/nfs.configmap.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-nfs-configmap
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/promtail.configmap.yaml b/helm-charts/gerrit-replica/templates/promtail.configmap.yaml
index 0e6beec..68795f4 100644
--- a/helm-charts/gerrit-replica/templates/promtail.configmap.yaml
+++ b/helm-charts/gerrit-replica/templates/promtail.configmap.yaml
@@ -3,7 +3,8 @@
 metadata:
   name: {{ .Release.Name }}-promtail-gerrit-configmap
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/templates/promtail.secret.yaml b/helm-charts/gerrit-replica/templates/promtail.secret.yaml
index 83d0221..788869b 100644
--- a/helm-charts/gerrit-replica/templates/promtail.secret.yaml
+++ b/helm-charts/gerrit-replica/templates/promtail.secret.yaml
@@ -4,7 +4,8 @@
 metadata:
   name:  {{ .Release.Name }}-promtail-secret
   labels:
-    app: gerrit-replica
+    app.kubernetes.io/component: gerrit-replica
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit-replica.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit-replica/values.yaml b/helm-charts/gerrit-replica/values.yaml
index ffce551..2ac7e6d 100644
--- a/helm-charts/gerrit-replica/values.yaml
+++ b/helm-charts/gerrit-replica/values.yaml
@@ -216,7 +216,9 @@
     periodSeconds: 1
 
   service:
+    additionalAnnotations: {}
     type: NodePort
+    externalTrafficPolicy: Cluster
     http:
       port: 80
 
@@ -305,7 +307,9 @@
     egress: []
 
   service:
+    additionalAnnotations: {}
     type: NodePort
+    externalTrafficPolicy: Cluster
     http:
       port: 80
     ssh:
diff --git a/helm-charts/gerrit/README.md b/helm-charts/gerrit/README.md
index 778bb50..5c7627f 100644
--- a/helm-charts/gerrit/README.md
+++ b/helm-charts/gerrit/README.md
@@ -302,7 +302,9 @@
 | `gerrit.gracefulStopTimeout` | Time in seconds Kubernetes will wait until killing the pod during termination (has to be longer then Gerrit's httpd.gracefulStopTimeout to allow graceful shutdown of Gerrit) | `90` |
 | `gerrit.networkPolicy.ingress` | Custom ingress-network policy for gerrit pods | `nil` |
 | `gerrit.networkPolicy.egress` | Custom egress-network policy for gerrit pods | `nil` |
+| `gerrit.service.additionalAnnotations` | Additional annotations for the Service | `{}` |
 | `gerrit.service.type` | Which kind of Service to deploy | `NodePort` |
+| `gerrit.service.externalTrafficPolicy` | Specify how traffic from external is handled | `Cluster` |
 | `gerrit.service.http.port` | Port over which to expose HTTP | `80` |
 | `gerrit.service.ssh.enabled` | Whether to enable SSH | `false` |
 | `gerrit.service.ssh.port` | Port over which to expose SSH | `29418` |
diff --git a/helm-charts/gerrit/templates/gerrit.configmap.yaml b/helm-charts/gerrit/templates/gerrit.configmap.yaml
index 1375c79..e9e35b8 100644
--- a/helm-charts/gerrit/templates/gerrit.configmap.yaml
+++ b/helm-charts/gerrit/templates/gerrit.configmap.yaml
@@ -5,7 +5,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-configmap
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -29,7 +30,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-init-configmap
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -60,7 +62,8 @@
 metadata:
   name:  {{ $root.Release.Name }}-{{ .name }}
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ $root.Release.Name }}
     chart: {{ template "gerrit.chart" $root }}
     heritage: {{ $root.Release.Service }}
     release: {{ $root.Release.Name }}
diff --git a/helm-charts/gerrit/templates/gerrit.secrets.yaml b/helm-charts/gerrit/templates/gerrit.secrets.yaml
index 4d67840..4efe824 100644
--- a/helm-charts/gerrit/templates/gerrit.secrets.yaml
+++ b/helm-charts/gerrit/templates/gerrit.secrets.yaml
@@ -3,7 +3,8 @@
 metadata:
   name:  {{ .Release.Name }}-gerrit-secure-config
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/gerrit.service.yaml b/helm-charts/gerrit/templates/gerrit.service.yaml
index dc51f8e..b7c5819 100644
--- a/helm-charts/gerrit/templates/gerrit.service.yaml
+++ b/helm-charts/gerrit/templates/gerrit.service.yaml
@@ -3,10 +3,15 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-service
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
+  {{- if .Values.gerrit.service.additionalAnnotations }}
+  annotations:
+{{ toYaml .Values.gerrit.service.additionalAnnotations  | indent 4 }}
+  {{- end }}
 spec:
   {{ with .Values.gerrit.service }}
   ports:
@@ -18,7 +23,10 @@
     port: {{ .ssh.port }}
     targetPort: 29418
   {{- end }}
-  selector:
-    app: gerrit
   type: {{ .type }}
+  externalTrafficPolicy: {{ .externalTrafficPolicy }}
   {{- end }}
+  selector:
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
+
diff --git a/helm-charts/gerrit/templates/gerrit.stateful-set.yaml b/helm-charts/gerrit/templates/gerrit.stateful-set.yaml
index 33e4b84..efed42a 100644
--- a/helm-charts/gerrit/templates/gerrit.stateful-set.yaml
+++ b/helm-charts/gerrit/templates/gerrit.stateful-set.yaml
@@ -5,7 +5,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-stateful-set
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -17,11 +18,13 @@
       partition: {{ .Values.gerrit.updatePartition }}
   selector:
     matchLabels:
-      app: gerrit
+      app.kubernetes.io/component: gerrit
+      app.kubernetes.io/instance: {{ .Release.Name }}
   template:
     metadata:
       labels:
-        app: gerrit
+        app.kubernetes.io/component: gerrit
+        app.kubernetes.io/instance: {{ .Release.Name }}
         chart: {{ template "gerrit.chart" . }}
         heritage: {{ .Release.Service }}
         release: {{ .Release.Name }}
@@ -256,7 +259,8 @@
   - metadata:
       name: gerrit-site
       labels:
-        app: gerrit
+        app.kubernetes.io/component: gerrit
+        app.kubernetes.io/instance: {{ .Release.Name }}
         chart: {{ template "gerrit.chart" . }}
         heritage: {{ .Release.Service }}
         release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/gerrit.storage.yaml b/helm-charts/gerrit/templates/gerrit.storage.yaml
index 01ea55a..d98912a 100644
--- a/helm-charts/gerrit/templates/gerrit.storage.yaml
+++ b/helm-charts/gerrit/templates/gerrit.storage.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-plugin-cache-pvc
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -23,7 +24,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-index-config-pvc
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/git-gc.cronjob.yaml b/helm-charts/gerrit/templates/git-gc.cronjob.yaml
index 1690b73..9471e35 100644
--- a/helm-charts/gerrit/templates/git-gc.cronjob.yaml
+++ b/helm-charts/gerrit/templates/git-gc.cronjob.yaml
@@ -3,7 +3,8 @@
 metadata:
   name: {{ .Release.Name }}-git-gc
   labels:
-    app: git-gc
+    app.kubernetes.io/component: git-gc
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -15,7 +16,8 @@
       template:
         metadata:
           labels:
-            app: git-gc
+            app.kubernetes.io/component: git-gc
+            app.kubernetes.io/instance: {{ .Release.Name }}
             chart: {{ template "gerrit.chart" . }}
             heritage: {{ .Release.Service }}
             release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/git-gc.storage.yaml b/helm-charts/gerrit/templates/git-gc.storage.yaml
index bc22aa2..6d90136 100644
--- a/helm-charts/gerrit/templates/git-gc.storage.yaml
+++ b/helm-charts/gerrit/templates/git-gc.storage.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-git-gc-logs-pvc
   labels:
-    app: git-gc
+    app.kubernetes.io/component: git-gc
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/global.secrets.yaml b/helm-charts/gerrit/templates/global.secrets.yaml
index cf3c4c5..ef22af4 100644
--- a/helm-charts/gerrit/templates/global.secrets.yaml
+++ b/helm-charts/gerrit/templates/global.secrets.yaml
@@ -4,7 +4,8 @@
 metadata:
   name:  {{ .Release.Name }}-tls-ca
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/ingress.yaml b/helm-charts/gerrit/templates/ingress.yaml
index 432ba21..6521729 100644
--- a/helm-charts/gerrit/templates/ingress.yaml
+++ b/helm-charts/gerrit/templates/ingress.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-gerrit-ingress
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -43,7 +44,8 @@
 metadata:
   name:  {{ .Release.Name }}-gerrit-tls-secret
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/log-cleaner.cronjob.yaml b/helm-charts/gerrit/templates/log-cleaner.cronjob.yaml
index 2b489fb..39a2f3e 100644
--- a/helm-charts/gerrit/templates/log-cleaner.cronjob.yaml
+++ b/helm-charts/gerrit/templates/log-cleaner.cronjob.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-log-cleaner
   labels:
-    app: log-cleaner
+    app.kubernetes.io/component: log-cleaner
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/netpol.yaml b/helm-charts/gerrit/templates/netpol.yaml
index 76b0ab6..a255176 100644
--- a/helm-charts/gerrit/templates/netpol.yaml
+++ b/helm-charts/gerrit/templates/netpol.yaml
@@ -49,7 +49,8 @@
 metadata:
   name: gerrit-allow-external
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -58,7 +59,8 @@
     matchLabels:
       chart: {{ template "gerrit.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit
+      app.kubernetes.io/component: gerrit
+      app.kubernetes.io/instance: {{ .Release.Name }}
   ingress:
   - ports:
     - port: 8080
@@ -70,7 +72,8 @@
 metadata:
   name: gerrit-custom-ingress-policies
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -81,7 +84,8 @@
     matchLabels:
       chart: {{ template "gerrit.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit
+      app.kubernetes.io/component: gerrit
+      app.kubernetes.io/instance: {{ .Release.Name }}
   ingress:
 {{ toYaml .Values.gerrit.networkPolicy.ingress | indent 2 }}
 {{- end }}
@@ -92,7 +96,8 @@
 metadata:
   name: gerrit-custom-egress-policies
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -103,7 +108,8 @@
     matchLabels:
       chart: {{ template "gerrit.chart" . }}
       release: {{ .Release.Name }}
-      app: gerrit
+      app.kubernetes.io/component: gerrit
+      app.kubernetes.io/instance: {{ .Release.Name }}
   egress:
 {{ toYaml .Values.gerrit.networkPolicy.egress | indent 2 }}
 {{- end }}
diff --git a/helm-charts/gerrit/templates/nfs.configmap.yaml b/helm-charts/gerrit/templates/nfs.configmap.yaml
index 5c8d172..587d674 100644
--- a/helm-charts/gerrit/templates/nfs.configmap.yaml
+++ b/helm-charts/gerrit/templates/nfs.configmap.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-nfs-configmap
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/templates/storage.pvc.yaml b/helm-charts/gerrit/templates/storage.pvc.yaml
index f3c4ecb..db110dc 100644
--- a/helm-charts/gerrit/templates/storage.pvc.yaml
+++ b/helm-charts/gerrit/templates/storage.pvc.yaml
@@ -4,7 +4,8 @@
 metadata:
   name: {{ .Release.Name }}-git-repositories-pvc
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
@@ -23,7 +24,8 @@
 metadata:
   name: {{ .Release.Name }}-log-pvc
   labels:
-    app: gerrit
+    app.kubernetes.io/component: gerrit
+    app.kubernetes.io/instance: {{ .Release.Name }}
     chart: {{ template "gerrit.chart" . }}
     heritage: {{ .Release.Service }}
     release: {{ .Release.Name }}
diff --git a/helm-charts/gerrit/values.yaml b/helm-charts/gerrit/values.yaml
index 9432567..0397315 100644
--- a/helm-charts/gerrit/values.yaml
+++ b/helm-charts/gerrit/values.yaml
@@ -197,7 +197,9 @@
     #         app: git-backend
 
   service:
+    additionalAnnotations: {}
     type: NodePort
+    externalTrafficPolicy: Cluster
     http:
       port: 80
     ssh: