diff --git a/gerrit/files/gerrit.config b/gerrit/files/gerrit.config
index 47d09fe..99af419 100644
--- a/gerrit/files/gerrit.config
+++ b/gerrit/files/gerrit.config
@@ -6,20 +6,39 @@
 	canonicalWebUrl = {{ server.canonical_web_url }}
     {%- if server.git_http_url is defined %}
 	gitHttpUrl = {{ server.git_http_url }}
-    {%- endif %} 
+    {%- endif %}
     {%- if server.canonical_git_url is defined %}
 	canonicalGitUrl = {{ server.canonical_git_url }}
     {%- endif %}
-    {%- if server.get('can_load_in_iframe', False) %}
+    {%- if server.can_load_in_iframe is defined %}
     canLoadInIFrame = true
     {%- endif %}
 
+{%- if server.core is defined %}
+[core]
+    {%- if server.core.packed_git_limit is defined %}
+    packedGitLimit = {{ server.core.packed_git_limit }}
+    {%- endif %}
+    {%- if server.core.packed_git_window_size is defined %}
+    packedGitWindowSize = {{ server.core.packed_git_window_size }}
+    {%- endif %}
+    {%- if server.core.packed_git_open_files is defined %}
+    packedGitOpenFiles == {{ server.core.packed_git_open_files }}
+    {%- endif %}
+{%- endif %}
+
 [database]
 	type = {{ server.database.engine }}
 	hostname = {{ server.database.host }}
 	database = {{ server.database.name }}
 	username = {{ server.database.user }}
 	connectionpool = true
+    {%- if server.database.pool_limit is defined %}
+    poolLimit = {{ server.database.pool_limit }}
+    {%- endif %}
+    {%- if server.database.pool_max_idle is defined %}
+    poolMaxIdle = {{ server.database.pool_max_idle }}
+    {%- endif %}
 
 [auth]
     {%- if server.get('contributor_agreement', False) %}
@@ -51,18 +70,21 @@
 
 [sshd]
 	listenAddress = {{ server.bind.address }}
-	{% if server.sshd_threads is defined %}
-	threads = {{ server.sshd_threads }}
+	{% if server.get('sshd', {}).threads is defined %}
+	threads = {{ server.sshd.threads }}
 	{% endif %}
-	{% if server.sshd_idle_timeout is defined %}
-	idleTimeout = {{ server.sshd_idle_timeout }}
+	{% if server.get('sshd', {}).idle_timeout is defined %}
+	idleTimeout = {{ server.sshd.idle_timeout }}
 	{% endif %}
-	{% if server.sshd_max_connections_per_user is defined %}
-	maxConnectionsPerUser = {{ server.sshd_max_connections_per_user }}
+	{% if server.get('sshd', {}).max_connections_per_user is defined %}
+	maxConnectionsPerUser = {{ server.sshd.max_connections_per_user }}
 	{% endif %}
-	{% if server.sshd_batch_threads is defined %}
-	batchThreads = {{ server.sshd_batch_threads }}
+	{% if server.get('sshd', {}).batch_threads is defined %}
+	batchThreads = {{ server.sshd.batch_threads }}
 	{% endif %}
+    {% if server.get('sshd', {}).command_start_threads is defined %}
+    commandstartThreads = {{ server.sshd.command_start_threads }}
+    {% endif %}
 
 [httpd]
 	listenUrl = proxy-https://*:8082/
@@ -112,6 +134,9 @@
     {% if server.receive_max_object_size_limit is defined %}
 	maxObjectSizeLimit = {{ server.receive_max_object_size_limit }}
     {% endif %}
+    {% if server.receive_timeout is defined %}
+    timeOut = {{ server.receive_timeout }}
+    {% endif %}
 
 {%- for commentlink_name, commentlink in server.get('commentlink', {}).iteritems() %}
 
