From 7c7cb82fdd5583784fd5832b92886abf86934325 Mon Sep 17 00:00:00 2001
From: Jhon Honce <jhonce@redhat.com>
Date: Fri, 6 Mar 2015 13:52:20 -0700
Subject: Use ansible playbook to initialize openshift cluster

* Added playbooks/gce/openshift-cluster
* Added bin/cluster (will replace cluster.sh)
---
 playbooks/gce/openshift-node/config.yml    | 12 ++++++++++--
 playbooks/gce/openshift-node/terminate.yml |  2 +-
 2 files changed, 11 insertions(+), 3 deletions(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index 78047cf40..57b9e3198 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -1,5 +1,4 @@
----
-- name: "populate oo_hosts_to_config host group if needed"
+- name: "node/config.yml, populate oo_hosts_to_config host group if needed"
   hosts: localhost
   gather_facts: no
   tasks:
@@ -12,6 +11,11 @@
   hosts: "tag_env-host-type-{{ oo_env }}-openshift-master"
   connection: ssh
   user: root
+  gather_facts: yes
+  tasks:
+    - command: 'curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip" -H "Metadata-Flavor: Google"'
+      register: output
+    - set_fact: gce_public_ip="{{ output.stdout }}"
 
 - name: "Set OO sepcific facts on localhost (for later use)"
   hosts: localhost
@@ -36,6 +40,10 @@
   user: root
   vars_files:
     - vars.yml
+
+  tasks:
+    - debug: var=gce_public_ip
+
   roles:
     - {
         role: openshift_node,
diff --git a/playbooks/gce/openshift-node/terminate.yml b/playbooks/gce/openshift-node/terminate.yml
index 8d60f27b3..d4555084b 100644
--- a/playbooks/gce/openshift-node/terminate.yml
+++ b/playbooks/gce/openshift-node/terminate.yml
@@ -12,7 +12,7 @@
     - debug: msg="{{ groups['oo_hosts_to_terminate'] }}"
 
 
-- name: Terminate instances
+- name: Terminate node instances
   hosts: localhost
   connection: local
   tasks:
-- 
cgit v1.2.3


From 9199379f94f6b11a4841e31f6c58a11c1e9f8c3a Mon Sep 17 00:00:00 2001
From: Jason DeTiberus <jdetiber@redhat.com>
Date: Fri, 13 Mar 2015 03:58:23 -0400
Subject: Various fixes

- playbooks/gce/openshift-cluster:
  - Remove some stray debugging statements
  - Some minor formatting fixes
    - removing un-necessary quotes
    - cleaning up some jinja templates for readability
  - add a play to the launch playbook to apply the os_update_latest role on
    all hosts in the new environment
  - improve setting groups and gce_public_ip when using add_host module
    - set gce_public_ip as a variable for the host using the returned gce instance_data
    - add a group for each tag configured on the host (pre-pending tag_ to the
      tag name)
  - update the openshift-master/config.yml and openshift-node/config.yml
    includes to use the tag_env-host-type groups

- openshift-{master,node}/config.yml
  - Some cleanup
    - remove some extraneous quotes
    - remove connection: ssh from remote hosts, since it is the default
    - remove user: root and instead set ansible_ssh_user in
      inventory/gce/group_vars/all
    - set openshift_public_ip and openshift_env to templated values in
      inventory/gce/group_vars/all as well
    - no longer set openshift_node_ips for the master host, since nodes will
      register themselves now when they are configured (prevent reboot on
      adding nodes)
    - move setting openshift_master_ips and openshift_public_master_ips using
      set_fact and instead use the vars: of the 'Configure Instances' play
---
 playbooks/gce/openshift-node/config.yml | 148 +++++++++++++++++++++++---------
 1 file changed, 108 insertions(+), 40 deletions(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index 57b9e3198..17631d578 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -1,56 +1,124 @@
-- name: "node/config.yml, populate oo_hosts_to_config host group if needed"
+- name: node/config.yml, populate oo_nodes_to_config host group if needed
   hosts: localhost
   gather_facts: no
   tasks:
   - name: Evaluate oo_host_group_exp
-    add_host: "name={{ item }} groups=oo_hosts_to_config"
+    add_host: "name={{ item }} groups=oo_nodes_to_config"
     with_items: "{{ oo_host_group_exp | default('') }}"
     when: oo_host_group_exp is defined
+ - name: Find masters for env
+    add_host: "name={{ item }} groups=oo_masters_for_node_config"
+    with_items: groups['tag_env-host-type-' + oo_env + '-openshift-master']
 
-- name: "Gather facts for masters in {{ oo_env }}"
+- name: Gather facts for masters in {{ oo_env }}
   hosts: "tag_env-host-type-{{ oo_env }}-openshift-master"
-  connection: ssh
-  user: root
-  gather_facts: yes
   tasks:
-    - command: 'curl "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip" -H "Metadata-Flavor: Google"'
-      register: output
-    - set_fact: gce_public_ip="{{ output.stdout }}"
+  - set_fact:
+      openshift_master_ip: "{{ openshift_ip }}"
+      openshift_master_api_url: "{{ openshift_api_url }}"
+      openshift_master_webui_url: "{{ openshift_webui_url }}"
+      openshift_master_hostname: "{{ openshift_hostname }}"
+      openshift_master_public_ip: "{{ openshift_public_ip }}"
+      openshift_master_api_public_url: "{{ openshift_api_public_url }}"
+      openshift_master_webui_public_url: "{{ openshift_webui_public_url }}"
+      openshift_master_public_hostnames: "{{ openshift_public_hostname }}"
 
-- name: "Set OO sepcific facts on localhost (for later use)"
-  hosts: localhost
-  gather_facts: no
+- name: Gather facts for hosts to configure
+  hosts: tag_env-host-type-{{ oo_env }}-openshift-node
   tasks:
-    - name: Setting openshift_master_ips fact on localhost
-      set_fact:
-        openshift_master_ips: "{{ hostvars
-            | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-openshift-master'])
-            | oo_collect(attribute='ansible_default_ipv4.address') }}"
-      when: groups['tag_env-host-type-' + oo_env + '-openshift-master'] is defined
-    - name: Setting openshift_master_public_ips fact on localhost
-      set_fact:
-        openshift_master_public_ips: "{{ hostvars
-            | oo_select_keys(groups['tag_env-host-type-' + oo_env + '-openshift-master'])
-            | oo_collect(attribute='gce_public_ip') }}"
-      when: groups['tag_env-host-type-' + oo_env + '-openshift-master'] is defined
-
-- name: "Configure instances"
-  hosts: oo_hosts_to_config
-  connection: ssh
-  user: root
-  vars_files:
-    - vars.yml
+  - set_fact:
+      openshift_node_hostname: "{{ openshift_hostname }}"
+      openshift_node_name: "{{ openshift_hostname }}"
+      openshift_node_cpu: "{{ openshift_node_cpu if openshift_node_cpu else ansible_processor_cores }}"
+      openshift_node_memory: "{{ openshift_node_memory if openshift_node_memory else (ansible_memtotal_mb|int * 1024 * 1024 * 0.75)|int }}"
+      openshift_node_pod_cidr: "{{ openshift_node_pod_cidr if openshift_node_pod_cidr else None }}"
+      openshift_node_host_ip: "{{ openshift_ip }}"
+      openshift_node_labels: "{{ openshift_node_labels if openshift_node_labels else {} }}"
+      openshift_node_annotations: "{{ openshift_node_annotations if openshift_node_annotations else {} }}"
 
+- name: Register nodes
+  hosts: tag_env-host-type-{{ oo_env }}-openshift-master[0]
+  vars:
+    openshift_node_group: tag_env-host-type-{{ oo_env }}-openshift-node
+    openshift_nodes: "{{ hostvars
+          | oo_select_keys(groups[openshift_node_group]) }}"
+    openshift_master_group: tag_env-host-type-{{ oo_env }}-openshift-master
+    openshift_master_urls: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_api_url') }}"
+    openshift_master_public_urls: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_api_public_url') }}"
+  pre_tasks:
+  roles:
+  - openshift_register_nodes
   tasks:
-    - debug: var=gce_public_ip
+  - name: Create local temp directory for syncing certs
+    local_action: command /usr/bin/mktemp -d /tmp/openshift-ansible-XXXXXXX
+    register: mktemp
 
+  - name: Sync master certs to localhost
+    synchronize:
+      mode: pull
+      checksum: yes
+      src: /var/lib/openshift/openshift.local.certificates
+      dest: "{{ mktemp.stdout }}"
+
+# TODO: sync generated certs between masters
+#
+- name: Configure instances
+  hosts: oo_nodes_to_config
+  vars_files:
+  - vars.yml
+  vars:
+    openshift_master_group: tag_env-host-type-{{ oo_env }}-openshift-master
+    openshift_master_ips: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_ip') }}"
+    openshift_master_hostnames: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_hostname') }}"
+    openshift_master_public_ips: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_public_ip') }}"
+    openshift_master_public_hostnames: "{{ hostvars
+          | oo_select_keys(groups[openshift_master_group])
+          | oo_collect(attribute='openshift_master_public_hostname') }}"
+    cert_parent_rel_path: openshift.local.certificates
+    cert_rel_path: "{{ cert_parent_rel_path }}/node-{{ openshift_node_name }}"
+    cert_base_path: /var/lib/openshift
+    cert_parent_path: "{{ cert_base_path }}/{{ cert_parent_rel_path }}"
+    cert_path: "{{ cert_base_path }}/{{ cert_rel_path }}"
+  pre_tasks:
+  - name: Ensure certificate directories exists
+    file:
+      path: "{{ item }}"
+      state: directory
+    with_items:
+    - "{{ cert_path }}"
+    - "{{ cert_parent_path }}/ca"
+
+  # TODO: only sync to a node if it's certs have been updated
+  # TODO: notify restart openshift-node and/or restart openshift-sdn-node,
+  # possibly test service started time against certificate/config file
+  # timestamps in openshift-node or openshift-sdn-node to trigger notify
+  # TODO: also copy ca cert: /var/lib/openshift/openshift.local.certificates/ca/cert.crt
+  - name: Sync certs to nodes
+    synchronize:
+      checksum: yes
+      src: "{{ item.src }}"
+      dest: "{{ item.dest }}"
+      owner: no
+      group: no
+    with_items:
+    - src: "{{ hostvars[groups[openshift_master_group][0]].mktemp.stdout }}/{{ cert_rel_path }}"
+      dest: "{{ cert_parent_path }}"
+    - src: "{{ hostvars[groups[openshift_master_group][0]].mktemp.stdout }}/{{ cert_parent_rel_path }}/ca/cert.crt"
+      dest: "{{ cert_parent_path }}/ca/cert.crt"
+  - local_action: file name={{ hostvars[groups[openshift_master_group][0]].mktemp.stdout }} state=absent
+    run_once: true
   roles:
-    - {
-        role: openshift_node,
-        openshift_master_ips: "{{ hostvars['localhost'].openshift_master_ips | default(['']) }}",
-        openshift_master_public_ips: "{{ hostvars['localhost'].openshift_master_public_ips | default(['']) }}",
-        openshift_public_ip: "{{ gce_public_ip }}",
-        openshift_env: "{{ oo_env }}",
-      }
-    - docker
+    - openshift_node
     - os_env_extras
+    - os_env_extras_node
+
-- 
cgit v1.2.3


From 3324b6c8889074ee17d7be05588de8b58aa3774f Mon Sep 17 00:00:00 2001
From: Jhon Honce <jhonce@redhat.com>
Date: Fri, 6 Mar 2015 13:52:20 -0700
Subject: Use ansible playbook to initialize openshift cluster

* Added playbooks/gce/openshift-cluster
* Added bin/cluster (will replace cluster.sh)
---
 playbooks/gce/openshift-node/config.yml | 1 +
 1 file changed, 1 insertion(+)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index 17631d578..7f80b90a7 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -53,6 +53,7 @@
   roles:
   - openshift_register_nodes
   tasks:
+  tasks:
   - name: Create local temp directory for syncing certs
     local_action: command /usr/bin/mktemp -d /tmp/openshift-ansible-XXXXXXX
     register: mktemp
-- 
cgit v1.2.3


From 13dc8505feb93adc311a4a2d8e714c7d1e61cf1f Mon Sep 17 00:00:00 2001
From: Jason DeTiberus <jdetiber@redhat.com>
Date: Mon, 16 Mar 2015 15:15:03 -0400
Subject: Fix openshift_master_ips and openshift_master_public_ips resolution

- don't use set_fact on localhost for openshift_master_ips and
  openshift_master_public_ips
  - we are only using it for the configure play
  - move definition to vars section of configure play
  - otherwise we'd have to set openshift_master_ips and
    openshift_master_public_ips from hostvars['localhost'] and since we aren't
    refrerencing it anywhere else, might as well just do it in vars instead of
    set_fact on locahost.
---
 playbooks/gce/openshift-node/config.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index 7f80b90a7..9d87c4e8f 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -53,7 +53,6 @@
   roles:
   - openshift_register_nodes
   tasks:
-  tasks:
   - name: Create local temp directory for syncing certs
     local_action: command /usr/bin/mktemp -d /tmp/openshift-ansible-XXXXXXX
     register: mktemp
@@ -69,7 +68,7 @@
 #
 - name: Configure instances
   hosts: oo_nodes_to_config
-  vars_files:
+vars_files:
   - vars.yml
   vars:
     openshift_master_group: tag_env-host-type-{{ oo_env }}-openshift-master
-- 
cgit v1.2.3


From 9575258e5a1b8f9ee8ec7ffc7ad74fa5dfeabc00 Mon Sep 17 00:00:00 2001
From: Jason DeTiberus <jdetiber@redhat.com>
Date: Wed, 18 Mar 2015 13:25:18 -0400
Subject: replace oo_hosts_to_config with oo_nodes_to_config and
 oo_masters_to_config

---
 playbooks/gce/openshift-node/config.yml | 1 -
 playbooks/gce/openshift-node/launch.yml | 8 ++++----
 2 files changed, 4 insertions(+), 5 deletions(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index 9d87c4e8f..d24acb8fa 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -121,4 +121,3 @@ vars_files:
     - openshift_node
     - os_env_extras
     - os_env_extras_node
-
diff --git a/playbooks/gce/openshift-node/launch.yml b/playbooks/gce/openshift-node/launch.yml
index 935599efd..ca2914d8a 100644
--- a/playbooks/gce/openshift-node/launch.yml
+++ b/playbooks/gce/openshift-node/launch.yml
@@ -24,8 +24,8 @@
         tags: "{{ oo_new_inst_tags }}"
       register: gce
 
-    - name: Add new instances public IPs to oo_hosts_to_config
-      add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_hosts_to_config"
+    - name: Add new instances public IPs to oo_nodes_to_config
+      add_host: "hostname={{ item.name }} ansible_ssh_host={{ item.public_ip }} groupname=oo_nodes_to_config"
       with_items: gce.instance_data
 
     - name: Wait for ssh
@@ -48,10 +48,10 @@
 
 # Always bounce service to pick up new credentials
 #- name: "Restart instances"
-#  hosts: oo_hosts_to_config
+#  hosts: oo_nodes_to_config
 #  connection: ssh
 #  user: root
 #  tasks:
-#    - debug: var=groups.oo_hosts_to_config
+#    - debug: var=groups.oo_nodes_to_config
 #    - name: Restart OpenShift
 #      service: name=openshift-node enabled=yes state=restarted
-- 
cgit v1.2.3


From 557cc0ca9ecc22a9d90f9cf9ce549186fe286492 Mon Sep 17 00:00:00 2001
From: Jhon Honce <jhonce@redhat.com>
Date: Mon, 23 Mar 2015 09:15:08 -0700
Subject: * Updates from code reviews

---
 playbooks/gce/openshift-node/terminate.yml | 1 +
 1 file changed, 1 insertion(+)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/terminate.yml b/playbooks/gce/openshift-node/terminate.yml
index d4555084b..9aa8a48c1 100644
--- a/playbooks/gce/openshift-node/terminate.yml
+++ b/playbooks/gce/openshift-node/terminate.yml
@@ -15,6 +15,7 @@
 - name: Terminate node instances
   hosts: localhost
   connection: local
+  gather_facts: no
   tasks:
     - name: Terminate node instances
       gce:
-- 
cgit v1.2.3


From 01ee65e99d39265f7d8db3ddbeca5d59ddfa2038 Mon Sep 17 00:00:00 2001
From: Jason DeTiberus <jdetiber@redhat.com>
Date: Mon, 23 Mar 2015 23:37:19 -0400
Subject: gce inventory/playbook updates for node registration changes

---
 playbooks/gce/openshift-node/config.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index d24acb8fa..bf28fc81d 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -6,12 +6,12 @@
     add_host: "name={{ item }} groups=oo_nodes_to_config"
     with_items: "{{ oo_host_group_exp | default('') }}"
     when: oo_host_group_exp is defined
- - name: Find masters for env
+  - name: Find masters for env
     add_host: "name={{ item }} groups=oo_masters_for_node_config"
     with_items: groups['tag_env-host-type-' + oo_env + '-openshift-master']
 
 - name: Gather facts for masters in {{ oo_env }}
-  hosts: "tag_env-host-type-{{ oo_env }}-openshift-master"
+  hosts: tag_env-host-type-{{ oo_env }}-openshift-master
   tasks:
   - set_fact:
       openshift_master_ip: "{{ openshift_ip }}"
@@ -68,7 +68,7 @@
 #
 - name: Configure instances
   hosts: oo_nodes_to_config
-vars_files:
+  vars_files:
   - vars.yml
   vars:
     openshift_master_group: tag_env-host-type-{{ oo_env }}-openshift-master
-- 
cgit v1.2.3


From 41740bc6e177e58a0aa817e2d940e60be51d3bfe Mon Sep 17 00:00:00 2001
From: Jhon Honce <jhonce@redhat.com>
Date: Tue, 24 Mar 2015 09:43:36 -0700
Subject: Revert "Jwhonce wip/cluster"

---
 playbooks/gce/openshift-node/config.yml | 1 -
 1 file changed, 1 deletion(-)

(limited to 'playbooks/gce/openshift-node')

diff --git a/playbooks/gce/openshift-node/config.yml b/playbooks/gce/openshift-node/config.yml
index bf28fc81d..e0d074572 100644
--- a/playbooks/gce/openshift-node/config.yml
+++ b/playbooks/gce/openshift-node/config.yml
@@ -120,4 +120,3 @@
   roles:
     - openshift_node
     - os_env_extras
-    - os_env_extras_node
-- 
cgit v1.2.3