Skip to content

Commit

Permalink
Merge pull request #3043 from jkhelil/scaleup_etcd
Browse files Browse the repository at this point in the history
Add etcd scaleup playbook
  • Loading branch information
sdodson authored Aug 2, 2017
2 parents e8b99e3 + cd269f0 commit 1765ce2
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 15 deletions.
2 changes: 2 additions & 0 deletions playbooks/aws/openshift-cluster/cluster_hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ g_all_hosts: "{{ groups['tag_clusterid_' ~ cluster_id] | default([])

g_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type_etcd'] | default([])) }}"

g_new_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type_new_etcd'] | default([])) }}"

g_lb_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type_lb'] | default([])) }}"

g_nfs_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type_nfs'] | default([])) }}"
Expand Down
4 changes: 3 additions & 1 deletion playbooks/byo/openshift-cluster/cluster_hosts.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
g_etcd_hosts: "{{ groups.etcd | default([]) }}"

g_new_etcd_hosts: "{{ groups.new_etcd | default([]) }}"

g_lb_hosts: "{{ groups.lb | default([]) }}"

g_master_hosts: "{{ groups.masters | default([]) }}"
Expand All @@ -18,7 +20,7 @@ g_glusterfs_hosts: "{{ groups.glusterfs | default([]) }}"
g_glusterfs_registry_hosts: "{{ groups.glusterfs_registry | default(g_glusterfs_hosts) }}"

g_all_hosts: "{{ g_master_hosts | union(g_node_hosts) | union(g_etcd_hosts)
| union(g_lb_hosts) | union(g_nfs_hosts)
| union(g_new_etcd_hosts) | union(g_lb_hosts) | union(g_nfs_hosts)
| union(g_new_node_hosts)| union(g_new_master_hosts)
| union(g_glusterfs_hosts) | union(g_glusterfs_registry_hosts)
| default([]) }}"
22 changes: 22 additions & 0 deletions playbooks/byo/openshift-etcd/scaleup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
- hosts: localhost
connection: local
become: no
gather_facts: no
tasks:
- include_vars: ../../byo/openshift-cluster/cluster_hosts.yml
- add_host:
name: "{{ item }}"
groups: l_oo_all_hosts
with_items: "{{ g_all_hosts }}"

- hosts: l_oo_all_hosts
gather_facts: no
tasks:
- include_vars: ../../byo/openshift-cluster/cluster_hosts.yml

- include: ../../common/openshift-cluster/evaluate_groups.yml
- include: ../../common/openshift-etcd/scaleup.yml
vars:
openshift_cluster_id: "{{ cluster_id | default('default') }}"
openshift_deployment_type: "{{ deployment_type }}"
15 changes: 12 additions & 3 deletions playbooks/common/openshift-cluster/evaluate_groups.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
become: no
gather_facts: no
tasks:
- name: Evaluate groups - g_etcd_hosts required
- name: Evaluate groups - g_etcd_hosts or g_new_etcd_hosts required
fail:
msg: This playbook requires g_etcd_hosts to be set
when: g_etcd_hosts is not defined
msg: This playbook requires g_etcd_hosts or g_new_etcd_hosts to be set
when: "{{ g_etcd_hosts is not defined and g_new_etcd_hosts is not defined}}"

- name: Evaluate groups - g_master_hosts or g_new_master_hosts required
fail:
Expand Down Expand Up @@ -67,6 +67,15 @@
when: g_master_hosts|length > 0
changed_when: no

- name: Evaluate oo_new_etcd_to_config
add_host:
name: "{{ item }}"
groups: oo_new_etcd_to_config
ansible_ssh_user: "{{ g_ssh_user | default(omit) }}"
ansible_become: "{{ g_sudo | default(omit) }}"
with_items: "{{ g_new_etcd_hosts | default([]) }}"
changed_when: no

- name: Evaluate oo_masters_to_config
add_host:
name: "{{ item }}"
Expand Down
30 changes: 30 additions & 0 deletions playbooks/common/openshift-etcd/scaleup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
- name: Configure etcd
hosts: oo_new_etcd_to_config
serial: 1
any_errors_fatal: true
vars:
etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
pre_tasks:
- name: Add new etcd members to cluster
command: >
/usr/bin/etcdctl --cert-file {{ etcd_peer_cert_file }}
--key-file {{ etcd_peer_key_file }}
--ca-file {{ etcd_peer_ca_file }}
-C {{ etcd_peer_url_scheme }}://{{ etcd_ca_host }}:{{ etcd_client_port }}
member add {{ inventory_hostname }} {{ etcd_peer_url_scheme }}://{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}:{{ etcd_peer_port }}
delegate_to: "{{ etcd_ca_host }}"
register: etcd_add_check
roles:
- role: openshift_etcd
when: etcd_add_check.rc == 0
etcd_peers: "{{ groups.oo_etcd_to_config | union(groups.oo_new_etcd_to_config)| default([], true) }}"
etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}"
etcd_certificates_etcd_hosts: "{{ groups.oo_etcd_to_config | default([], true) }}"
etcd_initial_cluster_state: "existing"
initial_etcd_cluster: "{{ etcd_add_check.stdout_lines[3] | regex_replace('ETCD_INITIAL_CLUSTER=','') }}"
etcd_hostname: "{{ inventory_hostname }}"
etcd_ca_setup: False
r_etcd_common_etcd_runtime: "{{ openshift.common.etcd_runtime }}"
- role: nickhammond.logrotate
when: etcd_add_check.rc == 0
2 changes: 2 additions & 0 deletions playbooks/gce/openshift-cluster/cluster_hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ g_all_hosts: "{{ groups['tag_clusterid-' ~ cluster_id] | default([])

g_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-etcd'] | default([])) }}"

g_new_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-new_etcd'] | default([])) }}"

g_lb_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-lb'] | default([])) }}"

g_nfs_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-nfs'] | default([])) }}"
Expand Down
2 changes: 2 additions & 0 deletions playbooks/libvirt/openshift-cluster/cluster_hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ g_all_hosts: "{{ groups['tag_clusterid-' ~ cluster_id] | default([])

g_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-etcd'] | default([])) }}"

g_new_etcd_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-new_etcd'] | default([])) }}"

g_lb_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-lb'] | default([])) }}"

g_nfs_hosts: "{{ g_all_hosts | intersect(groups['tag_host-type-nfs'] | default([])) }}"
Expand Down
2 changes: 2 additions & 0 deletions playbooks/openstack/openshift-cluster/cluster_hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ g_all_hosts: "{{ groups['meta-clusterid_' ~ cluster_id] | default([])

g_etcd_hosts: "{{ g_all_hosts | intersect(groups['meta-host-type_etcd'] | default([])) }}"

g_new_etcd_hosts: "{{ g_all_hosts | intersect(groups['meta-host-type_new_etcd'] | default([])) }}"

g_lb_hosts: "{{ g_all_hosts | intersect(groups['meta-host-type_lb'] | default([])) }}"

g_nfs_hosts: "{{ g_all_hosts | intersect(groups['meta-host-type_nfs'] | default([])) }}"
Expand Down
18 changes: 7 additions & 11 deletions roles/etcd/templates/etcd.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@
{% endfor -%}
{% endmacro -%}

{% if (etcd_peers | default([]) | length > 1) or (etcd_is_thirdparty) %}
ETCD_NAME={{ etcd_hostname }}
ETCD_LISTEN_PEER_URLS={{ etcd_listen_peer_urls }}
{% else %}
ETCD_NAME=default
{% endif %}
ETCD_DATA_DIR={{ etcd_data_dir }}
#ETCD_SNAPSHOT_COUNTER=10000
ETCD_HEARTBEAT_INTERVAL=500
Expand All @@ -23,20 +19,20 @@ ETCD_LISTEN_CLIENT_URLS={{ etcd_listen_client_urls }}
#ETCD_MAX_WALS=5
#ETCD_CORS=

{% if etcd_is_thirdparty %}

#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_initial_advertise_peer_urls }}

{% if etcd_is_thirdparty %}
# TODO: This needs to be altered to support the correct etcd instances
ETCD_INITIAL_CLUSTER={{ etcd_hostname}}={{ etcd_initial_advertise_peer_urls }}
ETCD_INITIAL_CLUSTER_STATE={{ etcd_initial_cluster_state }}
ETCD_INITIAL_CLUSTER_TOKEN=thirdparty-etcd-cluster-1
{% endif %}

{% if etcd_peers | default([]) | length > 1 %}
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS={{ etcd_initial_advertise_peer_urls }}
{% else %}
{% if initial_etcd_cluster is defined and initial_etcd_cluster %}
ETCD_INITIAL_CLUSTER={{ initial_etcd_cluster }}
{% else %}
ETCD_INITIAL_CLUSTER={{ initial_cluster() }}
{% endif %}
ETCD_INITIAL_CLUSTER_STATE={{ etcd_initial_cluster_state }}
ETCD_INITIAL_CLUSTER_TOKEN={{ etcd_initial_cluster_token }}
#ETCD_DISCOVERY=
Expand Down
1 change: 1 addition & 0 deletions roles/etcd_server_certificates/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ galaxy_info:
- system
dependencies:
- role: etcd_ca
when: (etcd_ca_setup | default(True) | bool)
1 change: 1 addition & 0 deletions roles/openshift_etcd_ca/meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ galaxy_info:
dependencies:
- role: openshift_etcd_facts
- role: etcd_ca
when: (etcd_ca_setup | default(True) | bool)

0 comments on commit 1765ce2

Please sign in to comment.