From 1e53057c40fcc6648e4c69d83d0cebc33789a893 Mon Sep 17 00:00:00 2001
From: Brenton Leanhardt <bleanhar@redhat.com>
Date: Sat, 26 Mar 2016 17:07:10 -0400
Subject: First pass at systemd unit refactor

---
 .../files/ensure_system_units_have_version.sh      | 51 ----------------------
 .../v3_1_to_v3_2/containerized_upgrade.yml         |  8 ++--
 .../upgrades/v3_1_to_v3_2/pre.yml                  | 29 +++++++++++-
 .../upgrades/v3_1_to_v3_2/upgrade.yml              | 12 ++++-
 4 files changed, 42 insertions(+), 58 deletions(-)
 delete mode 100644 playbooks/common/openshift-cluster/upgrades/files/ensure_system_units_have_version.sh

(limited to 'playbooks/common')

diff --git a/playbooks/common/openshift-cluster/upgrades/files/ensure_system_units_have_version.sh b/playbooks/common/openshift-cluster/upgrades/files/ensure_system_units_have_version.sh
deleted file mode 100644
index 239f43314..000000000
--- a/playbooks/common/openshift-cluster/upgrades/files/ensure_system_units_have_version.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-set -e
-
-SERVICE_TYPE=$1
-DEPLOYMENT_TYPE=$2
-VERSION="v${3}"
-
-add_image_version_to_sysconfig () {
-    unit_name=$2
-    sysconfig_file=/etc/sysconfig/${unit_name}
-
-    if ! grep IMAGE_VERSION ${sysconfig_file}; then
-        sed -i "/CONFIG_FILE/a IMAGE_VERSION=${1}" ${sysconfig_file}
-    else
-        sed -i "s/\(IMAGE_VERSION=\).*/\1${1}/" ${sysconfig_file}
-    fi
-}
-
-add_image_version_to_unit () {
-    deployment_type=$1
-    unit_file=$2
-
-    if ! grep IMAGE_VERSION $unit_file; then
-        image_namespace="openshift/"
-        if [ $deployment_type == "atomic-enterprise" ]; then
-            image_namespace="aep3/"
-        elif [ $deployment_type == "openshift-enterprise" ]; then
-            image_namespace="openshift3/"
-        fi
-
-        sed -i "s|\(${image_namespace}[a-zA-Z0-9]\+\)|\1:\${IMAGE_VERSION}|" $unit_file
-    fi
-}
-
-for unit_file in $(ls /etc/systemd/system/${SERVICE_TYPE}*.service); do
-    unit_name=$(basename -s .service ${unit_file})
-    add_image_version_to_sysconfig $VERSION $unit_name
-    add_image_version_to_unit $DEPLOYMENT_TYPE $unit_file
-done
-
-if [ -e /etc/sysconfig/openvswitch ]; then
-    add_image_version_to_sysconfig $VERSION openvswitch
-else
-    echo IMAGE_VERSION=${VERSION} > /etc/sysconfig/openvswitch
-fi 
-if ! grep EnvironmentFile /etc/systemd/system/openvswitch.service > /dev/null; then
-    sed -i "/Service/a EnvironmentFile=/etc/sysconfig/openvswitch" /etc/systemd/system/openvswitch.service
-fi
-add_image_version_to_unit $DEPLOYMENT_TYPE /etc/systemd/system/openvswitch.service
-
-systemctl daemon-reload
diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/containerized_upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/containerized_upgrade.yml
index 696994688..cc587bfa1 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/containerized_upgrade.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/containerized_upgrade.yml
@@ -1,8 +1,10 @@
-- name: Update system_units
-  script: ../files/ensure_system_units_have_version.sh {{ openshift.common.service_type }} {{ openshift.common.deployment_type }} {{ g_new_version }}
+- include_vars: ../../../../../roles/openshift_node/vars/main.yml
+
+- name: Update systemd units
+  include: ../../../../../roles/openshift_node/tasks/systemd_units.yml openshift_version=g_aos_versions.avail_version
 
 - name: Verifying the correct version was configured
-  command: grep {{ verify_upgrade_version }} {{ item }}
+  shell: grep {{ verify_upgrade_version }} {{ item }}
   with_items:
     - /etc/sysconfig/openvswitch
     - /etc/sysconfig/{{ openshift.common.service_type }}*
diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
index 668a80996..9443a2317 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
@@ -47,6 +47,8 @@
 
 - name: Verify upgrade can proceed
   hosts: oo_masters_to_config
+  roles:
+  - openshift_facts
   vars:
     openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
   tasks:
@@ -73,6 +75,8 @@
 
 - name: Verify upgrade can proceed
   hosts: oo_nodes_to_config
+  roles:
+  - openshift_facts
   tasks:
   - name: Ensure Node is running
     service:
@@ -85,6 +89,10 @@
   hosts: oo_masters_to_config:oo_nodes_to_config
   vars:
     target_version: "{{ '1.2' if deployment_type == 'origin' else '3.1.1.900' }}"
+    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
+  handlers:
+  - include: ../../../../../roles/openshift_master/handlers/main.yml
+  - include: ../../../../../roles/openshift_node/handlers/main.yml
   roles:
   - openshift_cli
   tasks:
@@ -130,9 +138,19 @@
       msg: Verifying the correct version was found
     when: verify_upgrade_version is defined and g_new_version != verify_upgrade_version
 
+  - include_vars: ../../../../../roles/openshift_master/vars/main.yml
+    when: inventory_hostname in groups.oo_masters_to_config
+
   - name: Update systemd units
-    script: ../files/ensure_system_units_have_version.sh {{ openshift.common.service_type }} {{ openshift.common.deployment_type }} {{ g_aos_versions.curr_version }}
-    when: openshift.common.is_containerized | bool
+    include: ../../../../../roles/openshift_master/tasks/systemd_units.yml openshift_version=g_aos_versions.curr_version
+    when: inventory_hostname in groups.oo_masters_to_config
+
+  - include_vars: ../../../../../roles/openshift_node/vars/main.yml
+    when: inventory_hostname in groups.oo_nodes_to_config
+
+  - name: Update systemd units
+    include: ../../../../../roles/openshift_node/tasks/systemd_units.yml openshift_version=g_aos_versions.curr_version
+    when: inventory_hostname in groups.oo_nodes_to_config
 
   # Note: the version number is hardcoded here in hopes of catching potential
   # bugs in how g_aos_versions.curr_version is set
@@ -143,6 +161,13 @@
       - /etc/sysconfig/{{ openshift.common.service_type }}*
     when: verify_upgrade_version is defined
 
+  - name: Verifying the image version is used in the systemd unit
+    shell: grep IMAGE_VERSION {{ item }}
+    with_items:
+      - /etc/systemd/system/openvswitch.service
+      - /etc/systemd/system/{{ openshift.common.service_type }}*.service
+    when: openshift.common.is_containerized | bool
+
   - fail:
       msg: This playbook requires Origin 1.1 or later
     when: deployment_type == 'origin' and g_aos_versions.curr_version | version_compare('1.1','<')
diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
index d84d9f674..13d234435 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
@@ -16,14 +16,20 @@
 ###############################################################################
 - name: Upgrade master
   hosts: oo_masters_to_config
+  vars:
+    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
+  handlers:
+  - include: ../../../../../roles/openshift_master/handlers/main.yml
   roles:
   - openshift_facts
   tasks:
   - include: rpm_upgrade.yml component=master
     when: not openshift.common.is_containerized | bool
 
-  - include: containerized_upgrade.yml
-    when: openshift.common.is_containerized | bool
+  - include_vars: ../../../../../roles/openshift_master/vars/main.yml
+
+  - name: Update systemd units
+    include: ../../../../../roles/openshift_master/tasks/systemd_units.yml openshift_version=g_aos_versions.avail_version 
 
 #  - name: Upgrade master configuration
 #    openshift_upgrade_config:
@@ -63,6 +69,8 @@
   hosts: oo_nodes_to_config
   roles:
   - openshift_facts
+  handlers:
+  - include: ../../../../../roles/openshift_node/handlers/main.yml
   tasks:
   - include: rpm_upgrade.yml
     vars:
-- 
cgit v1.2.3


From d4da502b9f332a6e4ec5a3b757dd8bf352990ec8 Mon Sep 17 00:00:00 2001
From: Brenton Leanhardt <bleanhar@redhat.com>
Date: Sat, 26 Mar 2016 22:07:09 -0400
Subject: Workaround for authenticated registries

Currently there's no good way to install from a registry that requires
authentication.  This applies both to RPM and containerized installs:

https://bugzilla.redhat.com/show_bug.cgi?id=1316341

The workaround is to 'docker login' as root and then have ansible pull the
images to the image cache.
---
 .../upgrades/v3_1_to_v3_2/upgrade.yml              | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)

(limited to 'playbooks/common')

diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
index 13d234435..e6d7ae05b 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
@@ -1,4 +1,33 @@
 ---
+# This is a workaround for authenticated registries
+- name: Download new images
+  hosts: oo_nodes_to_config
+  roles:
+  - openshift_facts
+  tasks:
+  - name: Pull Images
+    command: >
+      docker pull {{ item }}:v{{ g_new_version }}
+    with_items:
+    - "{{ openshift.node.node_image }}"
+    - "{{ openshift.node.ovs_image }}"
+    - "{{ openshift.common.pod_image }}"
+    - "{{ openshift.common.router_image }}"
+    - "{{ openshift.common.registry_image }}"
+    - "{{ openshift.common.deployer_image }}"
+
+# This is a workaround for authenticated registries
+- name: Download new images
+  hosts: oo_masters_to_config
+  roles:
+  - openshift_facts
+  tasks:
+  - name: Pull Images
+    command: >
+      docker pull {{ item }}:v{{ g_new_version }}
+    with_items:
+    - "{{ openshift.master.master_image }}"
+
 ###############################################################################
 # The restart playbook should be run after this playbook completes.
 ###############################################################################
-- 
cgit v1.2.3


From cb0fc3000447b6305491fe24d28d4b8574e4acac Mon Sep 17 00:00:00 2001
From: Brenton Leanhardt <bleanhar@redhat.com>
Date: Mon, 28 Mar 2016 14:38:33 -0400
Subject: Use openshift.master.ha instead of duplicating the logic

---
 playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml | 9 +++------
 .../common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml   | 3 ---
 2 files changed, 3 insertions(+), 9 deletions(-)

(limited to 'playbooks/common')

diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
index 9443a2317..d491575f8 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/pre.yml
@@ -49,29 +49,27 @@
   hosts: oo_masters_to_config
   roles:
   - openshift_facts
-  vars:
-    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
   tasks:
   - name: Ensure Master is running
     service:
       name: "{{ openshift.common.service_type }}-master"
       state: started
       enabled: yes
-    when: not openshift_master_ha | bool and openshift.common.is_containerized | bool
+    when: openshift.master.ha is defined and not openshift.master.ha | bool and openshift.common.is_containerized | bool
 
   - name: Ensure HA Master is running
     service:
       name: "{{ openshift.common.service_type }}-master-api"
       state: started
       enabled: yes
-    when: openshift_master_ha | bool and openshift.common.is_containerized | bool
+    when: openshift.master.ha is defined and openshift.master.ha | bool and openshift.common.is_containerized | bool
 
   - name: Ensure HA Master is running
     service:
       name: "{{ openshift.common.service_type }}-master-controllers"
       state: started
       enabled: yes
-    when: openshift_master_ha | bool and openshift.common.is_containerized | bool
+    when: openshift.master.ha is defined and openshift.master.ha | bool and openshift.common.is_containerized | bool
 
 - name: Verify upgrade can proceed
   hosts: oo_nodes_to_config
@@ -89,7 +87,6 @@
   hosts: oo_masters_to_config:oo_nodes_to_config
   vars:
     target_version: "{{ '1.2' if deployment_type == 'origin' else '3.1.1.900' }}"
-    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
   handlers:
   - include: ../../../../../roles/openshift_master/handlers/main.yml
   - include: ../../../../../roles/openshift_node/handlers/main.yml
diff --git a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
index e6d7ae05b..481d8e67a 100644
--- a/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
+++ b/playbooks/common/openshift-cluster/upgrades/v3_1_to_v3_2/upgrade.yml
@@ -45,8 +45,6 @@
 ###############################################################################
 - name: Upgrade master
   hosts: oo_masters_to_config
-  vars:
-    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
   handlers:
   - include: ../../../../../roles/openshift_master/handlers/main.yml
   roles:
@@ -145,7 +143,6 @@
   vars:
     origin_reconcile_bindings: "{{ deployment_type == 'origin' and g_new_version | version_compare('1.0.6', '>') }}"
     ent_reconcile_bindings: true
-    openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"
   tasks:
   - name: Verifying the correct commandline tools are available
     shell: grep {{ verify_upgrade_version }} {{ openshift.common.admin_binary}}
-- 
cgit v1.2.3