diff --git a/inventory/sample/group_vars/all.yml b/inventory/sample/group_vars/all.yml
index dc2a56de96e91df15714f1b4c0c509848dc1d534..e2829cb986fa53257246aca612bb362270518593 100644
--- a/inventory/sample/group_vars/all.yml
+++ b/inventory/sample/group_vars/all.yml
@@ -145,6 +145,11 @@ bin_dir: /usr/local/bin
 ## Set this if your etcd nodes have less than 4GB but you want more RAM for etcd. Set to 0 for unrestricted RAM.
 #etcd_memory_limit: "512M"
 
+## Etcd has a default of 2G for its space quota. If you put a value in etcd_memory_limit which is less than
+## etcd_quota_backend_bytes, you may encounter out of memory terminations of the etcd cluster. Please check
+## etcd documentation for more information.
+#etcd_quota_backend_bytes: "2G"
+
 # The read-only port for the Kubelet to serve on with no authentication/authorization. Uncomment to enable.
 #kube_read_only_port: 10255
 
diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml
index 750b710f23f6f3b924a980f6c6a10ce9d28b690c..8db1598fff9f53b42b43615994600ab18dc63f5e 100644
--- a/roles/etcd/defaults/main.yml
+++ b/roles/etcd/defaults/main.yml
@@ -45,6 +45,8 @@ etcd_extra_vars: {}
 # Limit memory only if <4GB memory on host. 0=unlimited
 etcd_memory_limit: "{% if ansible_memtotal_mb < 4096 %}512M{% else %}0{% endif %}"
 
+# etcd_quota_backend_bytes: "2G"
+
 # Uncomment to set CPU share for etcd
 # etcd_cpu_limit: 300m
 
diff --git a/roles/etcd/templates/etcd-events.env.j2 b/roles/etcd/templates/etcd-events.env.j2
index 6805bcffb67a4dcc827cfa3a458c3d0a2e6da84d..525ce86c316f67ee2c74d588d975df0fe3207ca5 100644
--- a/roles/etcd/templates/etcd-events.env.j2
+++ b/roles/etcd/templates/etcd-events.env.j2
@@ -16,6 +16,9 @@ ETCD_AUTO_COMPACTION_RETENTION={{ etcd_compaction_retention }}
 {% if etcd_snapshot_count is defined %}
 ETCD_SNAPSHOT_COUNT={{ etcd_snapshot_count }}
 {% endif %}
+{% if etcd_quota_backend_bytes is defined %}
+ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}
+{% endif %}
 
 # TLS settings
 ETCD_TRUSTED_CA_FILE={{ etcd_cert_dir }}/ca.pem
diff --git a/roles/etcd/templates/etcd.env.j2 b/roles/etcd/templates/etcd.env.j2
index 046e95da9927df7866bdbe787811f0d9162881a5..c302b02853f92b3728fe4ea8d1b18497e5d67750 100644
--- a/roles/etcd/templates/etcd.env.j2
+++ b/roles/etcd/templates/etcd.env.j2
@@ -17,6 +17,9 @@ ETCD_AUTO_COMPACTION_RETENTION={{ etcd_compaction_retention }}
 {% if etcd_snapshot_count is defined %}
 ETCD_SNAPSHOT_COUNT={{ etcd_snapshot_count }}
 {% endif %}
+{% if etcd_quota_backend_bytes is defined %}
+ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}
+{% endif %}
 
 # TLS settings
 ETCD_TRUSTED_CA_FILE={{ etcd_cert_dir }}/ca.pem