diff --git a/roles/kubernetes/master/defaults/main.yml b/roles/kubernetes/master/defaults/main.yml index 9b6e3eff4..016df0c64 100644 --- a/roles/kubernetes/master/defaults/main.yml +++ b/roles/kubernetes/master/defaults/main.yml @@ -16,6 +16,9 @@ etcd_cert_dir: "{{ etcd_config_dir }}/ssl" # ETCD backend for k8s data kube_apiserver_storage_backend: etcd3 +# By default, force back to etcd2. Set to true to force etcd3 (experimental!) +force_etcd3: false + # Limits for kube components kube_controller_memory_limit: 512M kube_controller_cpu_limit: 250m diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index 1eb5a4886..94cec7d1b 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -42,5 +42,5 @@ url: http://localhost:8080/healthz register: result until: result.status == 200 - retries: 10 + retries: 20 delay: 6 diff --git a/roles/kubernetes/master/tasks/pre-upgrade.yml b/roles/kubernetes/master/tasks/pre-upgrade.yml index 35d573e97..b42cd06d1 100644 --- a/roles/kubernetes/master/tasks/pre-upgrade.yml +++ b/roles/kubernetes/master/tasks/pre-upgrade.yml @@ -42,6 +42,11 @@ when: kube_apiserver_storage_backend == "etcd3" failed_when: false +- name: "Pre-upgrade | etcd3 upgrade | use etcd2 unless forced to etc3" + set_fact: + kube_apiserver_storage_backend: "etcd2" + when: old_data_exists.rc == 0 and not force_etcd3|bool + - name: "Pre-upgrade | etcd3 upgrade | see if data was already migrated" command: "{{ bin_dir }}/etcdctl --endpoints={{ etcd_access_addresses }} get --limit=1 --prefix=true /registry/minions" environment: @@ -53,7 +58,7 @@ - name: "Pre-upgrade | etcd3 upgrade | set needs_etcd_migration" set_fact: - needs_etcd_migration: "{{ kube_apiserver_storage_backend == 'etcd3' and data_migrated.stdout_lines|length == 0 and old_data_exists.rc == 0 }}" + needs_etcd_migration: "{{ force_etcd3|default(false) and kube_apiserver_storage_backend == 'etcd3' and data_migrated.stdout_lines|length == 0 and old_data_exists.rc == 0 }}" - name: "Pre-upgrade | Delete master manifests on all kube-masters" file: