Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions playbooks/openshift-etcd/private/remove-etcdv2-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,3 @@
- import_role:
name: etcd
tasks_from: remove-etcd-v2-data.yml
vars:
etcd_peer: "{{ openshift.common.hostname }}"
45 changes: 27 additions & 18 deletions playbooks/openshift-etcd/private/scaleup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,49 +19,59 @@
hosts: oo_new_etcd_to_config
serial: 1
any_errors_fatal: true
pre_tasks:
tasks:
- import_role:
name: etcd
tasks_from: add_new_member.yml
vars:
etcd_peer: "{{ hostvars[etcd_ca_host].etcd_ip }}"

- import_role:
name: etcd
tasks_from: server_certificates.yml
vars:
etcd_peers: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
etcd_certificates_etcd_hosts: "{{ groups.oo_new_etcd_to_config | default([], true) }}"
tasks:

- import_role:
name: os_firewall
when: etcd_add_check.rc == 0

# Setup etcd as a static pod if collocated with a master
- import_role:
name: etcd
when: etcd_add_check.rc == 0
tasks_from: static.yml
when:
- etcd_add_check.rc == 0
- inventory_hostname in groups['oo_masters']
vars:
etcd_peers: "{{ groups.oo_etcd_to_config | union(groups.oo_new_etcd_to_config)| default([], true) }}"
etcd_certificates_etcd_hosts: "{{ groups.oo_etcd_to_config | default([], true) }}"
etcd_initial_cluster_state: "existing"
etcd_initial_cluster: "{{ etcd_add_check.stdout_lines[3] | regex_replace('ETCD_INITIAL_CLUSTER=','') | regex_replace('\"','') }}"
etcd_ca_setup: False

# etcd_hostname fact is set in add_new_member.yml called above.
- name: Verify cluster is stable
command: >
{{ r_etcd_common_etcdctl_command }}
--cert-file {{ etcd_peer_cert_file }}
--key-file {{ etcd_peer_key_file }}
--ca-file {{ etcd_peer_ca_file }}
-C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_hostname }}:{{ etcd_client_port }}
cluster-health
register: scaleup_health
retries: 3
delay: 30
until: scaleup_health.rc == 0
- import_role:
name: etcd
tasks_from: rpm.yml
when:
- etcd_add_check.rc == 0
- not inventory_hostname in groups['oo_masters']
vars:
etcd_peers: "{{ groups.oo_etcd_to_config | union(groups.oo_new_etcd_to_config)| default([], true) }}"
etcd_certificates_etcd_hosts: "{{ groups.oo_etcd_to_config | default([], true) }}"
etcd_initial_cluster_state: "existing"
etcd_initial_cluster: "{{ etcd_add_check.stdout_lines[3] | regex_replace('ETCD_INITIAL_CLUSTER=','') | regex_replace('\"','') }}"
etcd_ca_setup: False

- import_role:
name: etcd
tasks_from: verify_cluster_health.yml

- name: Update master etcd client urls
hosts: oo_masters_to_config
serial: 1
pre_tasks:
tasks:
- set_fact:
openshift_master_etcd_hosts: "{{ hostvars
| lib_utils_oo_select_keys(groups['oo_etcd_to_config'] | union(groups['oo_new_etcd_to_config'] | default([]) ))
Expand All @@ -78,7 +88,6 @@
vars:
l_use_ssl: "{{ openshift_master_etcd_use_ssl | default(True) | bool}}"

post_tasks:
- import_role:
name: openshift_control_plane
tasks_from: update_etcd_client_urls.yml
2 changes: 1 addition & 1 deletion playbooks/openshift-etcd/private/server_certificates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
- name: Create etcd server certificates for etcd hosts
hosts: oo_etcd_to_config
any_errors_fatal: true
post_tasks:
tasks:
- import_role:
name: etcd
tasks_from: server_certificates.yml
Expand Down
1 change: 0 additions & 1 deletion playbooks/openshift-etcd/private/upgrade_rpm_members.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
tasks_from: upgrade_rpm.yml
vars:
r_etcd_upgrade_version: "{{ etcd_upgrade_version }}"
etcd_peer: "{{ openshift.common.hostname }}"
when:
- etcd_rpm_version.stdout | default('99') is version(etcd_upgrade_version, '<')
- ansible_distribution == 'RedHat'
2 changes: 0 additions & 2 deletions playbooks/openshift-etcd/private/upgrade_static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,4 @@
- import_role:
name: etcd
tasks_from: upgrade_static.yml
vars:
etcd_peer: "{{ openshift.common.hostname }}"
when: inventory_hostname in groups['oo_masters']
5 changes: 2 additions & 3 deletions roles/etcd/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,8 @@ etcd_listen_peer_urls: "{{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_
etcd_advertise_client_urls: "{{ etcd_url_scheme }}://{{ etcd_ip }}:{{ etcd_client_port }}"
etcd_listen_client_urls: "{{ etcd_url_scheme }}://{{ etcd_ip }}:{{ etcd_client_port }}"

# required role variable
#etcd_peer: 127.0.0.1
etcdctlv2: "{{ r_etcd_common_etcdctl_command }} --cert-file {{ etcd_peer_cert_file }} --key-file {{ etcd_peer_key_file }} --ca-file {{ etcd_peer_ca_file }} -C https://{{ etcd_peer }}:{{ etcd_client_port }}"
etcd_peer: "{{ openshift.common.hostname }}"
etcdctlv2: "{{ r_etcd_common_etcdctl_command }} --cert-file {{ etcd_peer_cert_file }} --key-file {{ etcd_peer_key_file }} --ca-file {{ etcd_peer_ca_file }} --endpoints {{ etcd_peer_url_scheme }}://{{ etcd_peer }}:{{ etcd_client_port }}"

etcd_service: etcd
# Location of the service file is fixed and not meant to be changed
Expand Down
11 changes: 0 additions & 11 deletions roles/etcd/etcdctl.sh

This file was deleted.

8 changes: 1 addition & 7 deletions roles/etcd/tasks/add_new_member.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@
- import_tasks: set_facts.yml

- name: Add new etcd members to cluster
command: >
{{ r_etcd_common_etcdctl_command }}
--cert-file {{ etcd_peer_cert_file }}
--key-file {{ etcd_peer_key_file }}
--ca-file {{ etcd_peer_ca_file }}
-C {{ etcd_peer_url_scheme }}://{{ hostvars[etcd_ca_host].etcd_ip }}:{{ etcd_client_port }}
member add {{ etcd_hostname }} {{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_port }}
command: "{{ etcdctlv2 }} member add {{ etcd_hostname }} {{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_peer_port }}"
delegate_to: "{{ etcd_ca_host }}"
failed_when:
- etcd_add_check.rc == 1
Expand Down
7 changes: 1 addition & 6 deletions roles/etcd/tasks/remove-etcd-v2-data.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
---
- name: Verify cluster is healthy pre-upgrade
command: "{{ etcdctlv2 }} cluster-health"
register: cluster_health
retries: 30
delay: 6
until: cluster_health.rc == 0
- import_tasks: verify_cluster_health.yml

- name: Check migrated status
command: "{{ etcdctlv2 }} get /kubernetes.io"
Expand Down
2 changes: 1 addition & 1 deletion roles/etcd/tasks/static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
- "{{ etcd_peer_key_file }}"
- "--ca-file"
- "{{ etcd_peer_ca_file }}"
- "-C"
- "--endpoints"
- "{{ etcd_peer_url_scheme }}://{{ etcd_ip }}:{{ etcd_client_port }}"
- "cluster-health"
with_items:
Expand Down
14 changes: 2 additions & 12 deletions roles/etcd/tasks/upgrade_rpm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,7 @@
# RHEL 7.3.3 with etcd-3.1.0-2.el7
# RHEL 7.3.2 with etcd-3.0.15-1.el7

- name: Verify cluster is healthy pre-upgrade
command: "{{ etcdctlv2 }} cluster-health"
register: cluster_health
retries: 30
delay: 6
until: cluster_health.rc == 0
- import_tasks: verify_cluster_health.yml

- set_fact:
l_etcd_target_package: "{{ 'etcd' if r_etcd_upgrade_version is not defined else 'etcd-'+r_etcd_upgrade_version+'*' }}"
Expand All @@ -30,9 +25,4 @@
- name: restart etcd
command: "{{ l_etcd_restart_command }}"

- name: Verify cluster is healthy
command: "{{ etcdctlv2 }} cluster-health"
register: etcdctl
until: etcdctl.rc == 0
retries: 3
delay: 10
- import_tasks: verify_cluster_health.yml
14 changes: 2 additions & 12 deletions roles/etcd/tasks/upgrade_static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,7 @@

# INPUT r_etcd_upgrade_version

- name: Verify cluster is healthy pre-upgrade
command: "{{ etcdctlv2 }} cluster-health"
register: cluster_health
retries: 30
delay: 6
until: cluster_health.rc == 0
- import_tasks: verify_cluster_health.yml

- name: Check for old etcd service files
stat:
Expand Down Expand Up @@ -54,9 +49,4 @@
- set_fact:
r_etcd_common_etcd_runtime: static_pod

- name: Verify cluster is healthy
command: "{{ etcdctlv2 }} cluster-health"
register: etcdctl
until: etcdctl.rc == 0 and 'stopped' not in etcdctl.stderr
retries: 30
delay: 10
- import_tasks: verify_cluster_health.yml
9 changes: 9 additions & 0 deletions roles/etcd/tasks/verify_cluster_health.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
- name: Verify cluster is healthy
command: "{{ etcdctlv2 }} cluster-health"
register: cluster_health
retries: 30
delay: 6
until:
- cluster_health.rc == 0
- ('stopped' not in cluster_health.stderr)
2 changes: 1 addition & 1 deletion roles/etcd/templates/etcdctl.sh.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# alone etcd hosts and master + etcd hosts too because we use the peer keys.
etcdctl2() {

cmd="ETCDCTL_API=2 etcdctl --cert-file {{ etcd_peer_cert_file }} --key-file {{ etcd_peer_key_file }} --ca-file {{ etcd_peer_ca_file }} -C https://`hostname`:2379 ${@}"
cmd="ETCDCTL_API=2 etcdctl --cert-file {{ etcd_peer_cert_file }} --key-file {{ etcd_peer_key_file }} --ca-file {{ etcd_peer_ca_file }} --endpoints https://`hostname`:2379 ${@}"
if [[ -f /usr/local/bin/master-exec ]]; then
/usr/local/bin/master-exec etcd etcd /bin/sh -c "$cmd"
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ def __init__(self):

def v2_playbook_on_stats(self, stats):

# Return if there are no custom stats to process
if stats.custom == {}:
return

phases = stats.custom['_run']

# Find the longest phase title
Expand Down