From d075df2e9eb45f007f35cde2d502d32ee8d14faf Mon Sep 17 00:00:00 2001
From: Jan Chaloupka <jchaloup@redhat.com>
Date: Mon, 25 Sep 2017 17:20:35 +0200
Subject: Set the etcd backend quota to 4GB by default

---
 playbooks/common/openshift-cluster/upgrades/etcd/main.yml    | 6 ++++++
 playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml | 6 ------
 roles/etcd/defaults/main.yaml                                | 3 +++
 roles/etcd/tasks/upgrade/upgrade_image.yml                   | 5 +++++
 roles/etcd/tasks/upgrade/upgrade_rpm.yml                     | 5 +++++
 roles/etcd/templates/etcd.conf.j2                            | 1 +
 6 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml
index 64abc54e7..46a062000 100644
--- a/playbooks/common/openshift-cluster/upgrades/etcd/main.yml
+++ b/playbooks/common/openshift-cluster/upgrades/etcd/main.yml
@@ -22,3 +22,9 @@
 - name: Perform etcd upgrade
   include: ./upgrade.yml
   when: openshift_etcd_upgrade | default(true) | bool
+
+- name: Backup etcd
+  include: backup.yml
+  vars:
+    etcd_backup_tag: "post-3.0-"
+  when: openshift_etcd_backup | default(true) | bool
diff --git a/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml
index a3446ef84..d71c96cd7 100644
--- a/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml
+++ b/playbooks/common/openshift-cluster/upgrades/etcd/upgrade.yml
@@ -106,9 +106,3 @@
     when:
     - ansible_distribution == 'Fedora'
     - not openshift.common.is_containerized | bool
-
-- name: Backup etcd
-  include: backup.yml
-  vars:
-    etcd_backup_tag: "post-3.0-"
-  when: openshift_etcd_backup | default(true) | bool
diff --git a/roles/etcd/defaults/main.yaml b/roles/etcd/defaults/main.yaml
index 3cc2bbb18..415affb1f 100644
--- a/roles/etcd/defaults/main.yaml
+++ b/roles/etcd/defaults/main.yaml
@@ -20,3 +20,6 @@ r_etcd_os_firewall_allow:
   port: "{{etcd_client_port}}/tcp"
 - service: etcd peering
   port: "{{ etcd_peer_port }}/tcp"
+
+# set the backend quota to 4GB by default
+etcd_quota_backend_bytes: 4294967296
diff --git a/roles/etcd/tasks/upgrade/upgrade_image.yml b/roles/etcd/tasks/upgrade/upgrade_image.yml
index cea95a1b3..24071f9ad 100644
--- a/roles/etcd/tasks/upgrade/upgrade_image.yml
+++ b/roles/etcd/tasks/upgrade/upgrade_image.yml
@@ -20,6 +20,11 @@
     regexp: "{{ current_image.stdout }}$"
     replace: "{{ new_etcd_image }}"
 
+- lineinfile:
+    destfile: "{{ etcd_conf_file }}"
+    regexp: '^ETCD_QUOTA_BACKEND_BYTES='
+    line: "ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}"
+
 - name: Restart etcd_container
   systemd:
     name: "{{ etcd_service }}"
diff --git a/roles/etcd/tasks/upgrade/upgrade_rpm.yml b/roles/etcd/tasks/upgrade/upgrade_rpm.yml
index 324b69605..505e28afb 100644
--- a/roles/etcd/tasks/upgrade/upgrade_rpm.yml
+++ b/roles/etcd/tasks/upgrade/upgrade_rpm.yml
@@ -19,6 +19,11 @@
     name: "{{ l_etcd_target_package }}"
     state: latest
 
+- lineinfile:
+    destfile: "{{ etcd_conf_file }}"
+    regexp: '^ETCD_QUOTA_BACKEND_BYTES='
+    line: "ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}"
+
 - name: Restart etcd
   service:
     name: "{{ etcd_service }}"
diff --git a/roles/etcd/templates/etcd.conf.j2 b/roles/etcd/templates/etcd.conf.j2
index 2c2803aee..8462bb4c8 100644
--- a/roles/etcd/templates/etcd.conf.j2
+++ b/roles/etcd/templates/etcd.conf.j2
@@ -45,6 +45,7 @@ ETCD_ADVERTISE_CLIENT_URLS={{ etcd_advertise_client_urls }}
 #ETCD_STRICT_RECONFIG_CHECK="false"
 #ETCD_AUTO_COMPACTION_RETENTION="0"
 #ETCD_ENABLE_V2="true"
+ETCD_QUOTA_BACKEND_BYTES={{ etcd_quota_backend_bytes }}
 
 #[proxy]
 #ETCD_PROXY=off
-- 
cgit v1.2.3