summaryrefslogtreecommitdiffstats
path: root/roles/etcd_migrate/tasks/migrate.yml
diff options
context:
space:
mode:
authorOpenShift Bot <eparis+openshiftbot@redhat.com>2017-06-18 19:25:04 -0400
committerGitHub <noreply@github.com>2017-06-18 19:25:04 -0400
commitd7be27f7f9321099e52b54afcce2308ac1e1671f (patch)
treedd840473d179259b098d651da0ad73bb642901ce /roles/etcd_migrate/tasks/migrate.yml
parente2840e8ab50215eb7603a832f2f729d873e5a811 (diff)
parent0fc47e5030577479be08126818dd2b5b5ccdf995 (diff)
downloadopenshift-d7be27f7f9321099e52b54afcce2308ac1e1671f.tar.gz
openshift-d7be27f7f9321099e52b54afcce2308ac1e1671f.tar.bz2
openshift-d7be27f7f9321099e52b54afcce2308ac1e1671f.tar.xz
openshift-d7be27f7f9321099e52b54afcce2308ac1e1671f.zip
Merge pull request #3954 from ingvagabund/etcd-migrate
Merged by openshift-bot
Diffstat (limited to 'roles/etcd_migrate/tasks/migrate.yml')
-rw-r--r--roles/etcd_migrate/tasks/migrate.yml53
1 files changed, 53 insertions, 0 deletions
diff --git a/roles/etcd_migrate/tasks/migrate.yml b/roles/etcd_migrate/tasks/migrate.yml
new file mode 100644
index 000000000..cb479b0cc
--- /dev/null
+++ b/roles/etcd_migrate/tasks/migrate.yml
@@ -0,0 +1,53 @@
+---
+# Should this be run in a serial manner?
+- set_fact:
+ l_etcd_service: "{{ 'etcd_container' if openshift.common.is_containerized else 'etcd' }}"
+
+- name: Disable etcd members
+ service:
+ name: "{{ l_etcd_service }}"
+ state: stopped
+
+# Should we skip all TTL keys? https://bugzilla.redhat.com/show_bug.cgi?id=1389773
+- name: Migrate etcd data
+ command: >
+ etcdctl migrate --data-dir={{ etcd_data_dir }}
+ environment:
+ ETCDCTL_API: 3
+ register: l_etcdctl_migrate
+
+# TODO(jchaloup): If any of the members fails, we need to restore all members to v2 from the pre-migrate backup
+- name: Check the etcd v2 data are correctly migrated
+ fail:
+ msg: "Failed to migrate a member"
+ when: "'finished transforming keys' not in l_etcdctl_migrate.stdout"
+
+# TODO(jchaloup): start the etcd on a different port so noone can access it
+# Once the validation is done
+- name: Enable etcd member
+ service:
+ name: "{{ l_etcd_service }}"
+ state: started
+
+- name: Re-introduce leases (as a replacement for key TTLs)
+ command: >
+ oadm migrate etcd-ttl \
+ --cert {{ etcd_peer_cert_file }} \
+ --key {{ etcd_peer_key_file }} \
+ --cacert {{ etcd_peer_ca_file }} \
+ --etcd-address 'https://{{ etcd_peer }}:2379' \
+ --ttl-keys-prefix {{ item }} \
+ --lease-duration 1h
+ environment:
+ ETCDCTL_API: 3
+ with_items:
+ - "/kubernetes.io/events"
+ - "/kubernetes.io/masterleases"
+
+- set_fact:
+ r_etcd_migrate_success: true
+
+- name: Enable etcd member
+ service:
+ name: "{{ l_etcd_service }}"
+ state: started