Browse Source

Merge pull request #3046 from sdodson/bz1408668

Don't upgrade etcd on atomic host, ever.
Scott Dodson 8 years ago
parent
commit
a3bb391fe3
1 changed files with 21 additions and 8 deletions
  1. 21 8
      playbooks/common/openshift-cluster/upgrades/etcd/backup.yml

+ 21 - 8
playbooks/common/openshift-cluster/upgrades/etcd/backup.yml

@@ -42,15 +42,28 @@
         {{ avail_disk.stdout }} Kb available.
     when: (embedded_etcd | bool) and (etcd_disk_usage.stdout|int > avail_disk.stdout|int)
 
-  # TODO - Refactor containerized backup to use etcd_container to backup the data so we don't rely on
-  # the host's etcdctl binary which may be of a different version.
-
-  # for non containerized and non embedded we should have the correct version of etcd installed already
-  # For embedded we need to use the latest because OCP 3.3 uses a version of etcd that can only be backed
-  # up with etcd-3.x
+  # For non containerized and non embedded we should have the correct version of
+  # etcd installed already. So don't do anything.
+  #
+  # For embedded or containerized we need to use the latest because OCP 3.3 uses
+  # a version of etcd that can only be backed up with etcd-3.x and if it's
+  # containerized then etcd version may be newer than that on the host so
+  # upgrade it.
+  #
+  # On atomic we have neither yum nor dnf so ansible throws a hard to debug error
+  # if you use package there, like this: "Could not find a module for unknown."
+  # see https://bugzilla.redhat.com/show_bug.cgi?id=1408668
+  #
+  # TODO - We should refactor all containerized backups to use the containerized
+  # version of etcd to perform the backup rather than relying on the host's
+  # binaries. Until we do that we'll continue to have problems backing up etcd
+  # when atomic host has an older version than the version that's running in the
+  # container whether that's embedded or not
   - name: Install latest etcd for containerized or embedded
-    package: name=etcd state=latest
-    when: ( openshift.common.is_containerized and not openshift.common.is_atomic ) or embedded_etcd | bool
+    package:
+      name: etcd
+      state: latest
+    when: ( embedded_etcd | bool or openshift.common.is_containerized ) and not openshift.common.is_atomic
 
   - name: Generate etcd backup
     command: >