Extract config-symlinking into function

To provide the config-files stored in ConfigMaps and maintain read-write
access to the containing directories, the files were symlinked to their
final locations instead of storing them there. This caused some code
duplication in the same scripts.

This change extracts the symlink-commands into a function to reduce code
duplication. Even if symlinking of the files did not have to be
performed multiple times in the same script, this was done for the
container-spec to stay consistent.

Change-Id: Id7066907054bfd5adb05ba670d48641726af6ae2
diff --git a/helm-charts/gerrit-master/templates/gerrit-master.deployment.yaml b/helm-charts/gerrit-master/templates/gerrit-master.deployment.yaml
index 19dbdab..82c78a4 100644
--- a/helm-charts/gerrit-master/templates/gerrit-master.deployment.yaml
+++ b/helm-charts/gerrit-master/templates/gerrit-master.deployment.yaml
@@ -60,15 +60,17 @@
         - -c
         args:
         - |
+          symlink_config_to_site(){
+            {{ if .Values.gerritMaster.keystore -}}
+            ln -s /var/keystore /var/gerrit/etc/keystore
+            {{- end }}
+            ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
+            ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+            ln -sf /var/config/replication.config /var/gerrit/etc/replication.config
+          }
+
           mkdir -p /var/gerrit/etc
-
-          {{ if .Values.gerritMaster.keystore -}}
-          ln -s /var/keystore /var/gerrit/etc/keystore
-          {{- end }}
-
-          ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
-          ln -sf /var/config/replication.config /var/gerrit/etc/replication.config
-          ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          symlink_config_to_site
 
           java -jar /var/war/gerrit.war init \
               --batch \
@@ -78,12 +80,7 @@
               --install-plugin reviewnotes \
               -d /var/gerrit
 
-          # The gerrit.war init overwrites the symlinks. While it keeps the config
-          # this would mask changes in the configmap. Thus the symlink has to be
-          # recreated here.
-          # TODO: Find a better solution to manage Gerrit's configuration
-          ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
-          ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          symlink_config_to_site
 
           java -jar /var/gerrit/bin/gerrit.war reindex \
               -d /var/gerrit
diff --git a/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml b/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
index c54955d..65dd6f6 100644
--- a/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
+++ b/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
@@ -71,13 +71,16 @@
         - -c
         args:
         - |
-          mkdir -p /var/gerrit/etc
+          symlink_config_to_site(){
+            {{ if .Values.gerritSlave.keystore -}}
+            ln -s /var/keystore /var/gerrit/etc/keystore
+            {{- end }}
+            ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
+            ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          }
 
-          {{ if .Values.gerritSlave.keystore -}}
-          ln -s /var/keystore /var/gerrit/etc/keystore
-          {{- end }}
-          ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
-          ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          mkdir -p /var/gerrit/etc
+          symlink_config_to_site
 
           /var/tools/start
         env:
@@ -132,12 +135,15 @@
         - -c
         args:
         - |
-          {{ if .Values.gerritSlave.keystore -}}
-          ln -s /var/keystore /var/gerrit/etc/keystore
-          {{- end }}
+          symlink_config_to_site(){
+            {{ if .Values.gerritSlave.keystore -}}
+            ln -s /var/keystore /var/gerrit/etc/keystore
+            {{- end }}
+            ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
+            ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          }
 
-          ln -sf /var/config/gerrit.config /var/gerrit/etc/gerrit.config
-          ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
+          symlink_config_to_site
 
           JAVA_OPTIONS=$(git config --file /var/gerrit/etc/gerrit.config --get-all container.javaOptions)