diff options
| author | Thomas Wiest <twiest@users.noreply.github.com> | 2015-07-17 15:43:02 -0400 | 
|---|---|---|
| committer | Thomas Wiest <twiest@users.noreply.github.com> | 2015-07-17 15:43:02 -0400 | 
| commit | a599005dc0ec7dcca64d4f60b7fb7ab5cb959ebc (patch) | |
| tree | c180cb0f246cd3354b0a8d1b837623059d69db5d /roles/openshift_master_cluster | |
| parent | 167bee246f1a032a99e3003dc1b75c1307269973 (diff) | |
| parent | 0a021c047bfb3fe5710be1e7de8cd577455f53c2 (diff) | |
| download | openshift-a599005dc0ec7dcca64d4f60b7fb7ab5cb959ebc.tar.gz openshift-a599005dc0ec7dcca64d4f60b7fb7ab5cb959ebc.tar.bz2 openshift-a599005dc0ec7dcca64d4f60b7fb7ab5cb959ebc.tar.xz openshift-a599005dc0ec7dcca64d4f60b7fb7ab5cb959ebc.zip  | |
Merge pull request #348 from detiber/ha_master
Ha master
Diffstat (limited to 'roles/openshift_master_cluster')
| -rw-r--r-- | roles/openshift_master_cluster/README.md | 34 | ||||
| -rw-r--r-- | roles/openshift_master_cluster/meta/main.yml | 16 | ||||
| -rw-r--r-- | roles/openshift_master_cluster/tasks/configure.yml | 43 | ||||
| -rw-r--r-- | roles/openshift_master_cluster/tasks/configure_deferred.yml | 8 | ||||
| -rw-r--r-- | roles/openshift_master_cluster/tasks/main.yml | 13 | 
5 files changed, 114 insertions, 0 deletions
diff --git a/roles/openshift_master_cluster/README.md b/roles/openshift_master_cluster/README.md new file mode 100644 index 000000000..f150981fa --- /dev/null +++ b/roles/openshift_master_cluster/README.md @@ -0,0 +1,34 @@ +OpenShift Master Cluster +======================== + +TODO + +Requirements +------------ + +TODO + +Role Variables +-------------- + +TODO + +Dependencies +------------ + +TODO + +Example Playbook +---------------- + +TODO + +License +------- + +Apache License Version 2.0 + +Author Information +------------------ + +Jason DeTiberus (jdetiber@redhat.com) diff --git a/roles/openshift_master_cluster/meta/main.yml b/roles/openshift_master_cluster/meta/main.yml new file mode 100644 index 000000000..f3236e850 --- /dev/null +++ b/roles/openshift_master_cluster/meta/main.yml @@ -0,0 +1,16 @@ +--- +galaxy_info: +  author: Jason DeTiberus +  description: +  company: Red Hat, Inc. +  license: Apache License, Version 2.0 +  min_ansible_version: 1.8 +  platforms: +  - name: EL +    versions: +    - 7 +  categories: +  - cloud +  - system +dependencies: +- { role: openshift_facts } diff --git a/roles/openshift_master_cluster/tasks/configure.yml b/roles/openshift_master_cluster/tasks/configure.yml new file mode 100644 index 000000000..3510f9f62 --- /dev/null +++ b/roles/openshift_master_cluster/tasks/configure.yml @@ -0,0 +1,43 @@ +--- +- fail: +    msg: This role requires that openshift_master_cluster_vip is set +  when: openshift_master_cluster_vip is not defined or not openshift_master_cluster_vip +- fail: +    msg: This role requires that openshift_master_cluster_public_vip is set +  when: openshift_master_cluster_public_vip is not defined or not openshift_master_cluster_public_vip + +- name: Authenticate to the cluster +  command: pcs cluster auth -u hacluster -p {{ openshift_master_cluster_password }} {{ omc_cluster_hosts }} + +- name: Create the cluster +  command: pcs cluster setup --name openshift_master {{ omc_cluster_hosts }} + +- name: Start the cluster +  command: pcs cluster start --all + +- name: Enable the cluster on all nodes +  command: pcs cluster enable --all + +- name: Set default resource stickiness +  command: pcs resource defaults resource-stickiness=100 + +- name: Add the cluster VIP resource +  command: pcs resource create virtual-ip IPaddr2 ip={{ openshift_master_cluster_vip }} --group openshift-master + +- name: Add the cluster public VIP resource +  command: pcs resource create virtual-ip IPaddr2 ip={{ openshift_master_cluster_public_vip }} --group openshift-master +  when: openshift_master_cluster_public_vip != openshift_master_cluster_vip + +- name: Add the cluster openshift-master service resource +  command: pcs resource create master systemd:openshift-master op start timeout=90s stop timeout=90s --group openshift-master + +- name: Disable stonith +  command: pcs property set stonith-enabled=false + +# TODO: handle case where api port is not 8443 +- name: Wait for the clustered master service to be available +  wait_for: +    host: "{{ openshift_master_cluster_vip }}" +    port: 8443 +    state: started +    timeout: 300 diff --git a/roles/openshift_master_cluster/tasks/configure_deferred.yml b/roles/openshift_master_cluster/tasks/configure_deferred.yml new file mode 100644 index 000000000..a80b6c5b4 --- /dev/null +++ b/roles/openshift_master_cluster/tasks/configure_deferred.yml @@ -0,0 +1,8 @@ +--- +- debug: msg="Deferring config" + +- name: Start and enable openshift-master +  service: +    name: openshift-master +    state: started +    enabled: yes diff --git a/roles/openshift_master_cluster/tasks/main.yml b/roles/openshift_master_cluster/tasks/main.yml new file mode 100644 index 000000000..315947183 --- /dev/null +++ b/roles/openshift_master_cluster/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Test if cluster is already configured +  command: pcs status +  register: pcs_status +  changed_when: false +  failed_when: false +  when: not openshift.master.cluster_defer_ha | bool + +- include: configure.yml +  when: "pcs_status | failed and 'Error: cluster is not currently running on this node' in pcs_status.stderr" + +- include: configure_deferred.yml +  when: openshift.master.cluster_defer_ha | bool  | 
