diff --git a/roles/etcd/defaults/main.yml b/roles/etcd/defaults/main.yml
index 6014a9ea0968493a499736741931ef9364f5803c..c480d80b496259c276fb5cd460a5debd0d29c451 100644
--- a/roles/etcd/defaults/main.yml
+++ b/roles/etcd/defaults/main.yml
@@ -65,6 +65,12 @@ etcd_secure_client: true
 # Enable peer client cert authentication
 etcd_peer_client_auth: true
 
+# Maximum number of snapshot files to retain (0 is unlimited)
+# etcd_max_snapshots: 5
+
+# Maximum number of wal files to retain (0 is unlimited)
+# etcd_max_wals: 5
+
 # Number of loop retries
 etcd_retries: 4
 
diff --git a/roles/etcd/templates/etcd.env.j2 b/roles/etcd/templates/etcd.env.j2
index 463f4c6555fb731c6e37861bdda1fce7d57a943c..9def0d5017fe544eb270b3dab2eb207ac5b2321a 100644
--- a/roles/etcd/templates/etcd.env.j2
+++ b/roles/etcd/templates/etcd.env.j2
@@ -26,6 +26,12 @@ ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}
 {% if etcd_log_package_levels is defined %}
 ETCD_LOG_PACKAGE_LEVELS={{ etcd_log_package_levels }}
 {% endif %}
+{% if etcd_max_snapshots is defined %}
+ETCD_MAX_SNAPSHOTS={{ etcd_max_snapshots }}
+{% endif %}
+{% if etcd_max_wals is defined %}
+ETCD_MAX_WALS={{ etcd_max_wals }}
+{% endif %}
 # Flannel need etcd v2 API
 ETCD_ENABLE_V2=true