From 30605051108bf21b758d7e444834e100bfe05445 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Tue, 31 Mar 2020 12:59:32 -0400 Subject: [PATCH 1/3] Switch from StatefulSet to Deployment We can do this now that we dropped RabbitMQ. --- installer/roles/kubernetes/tasks/main.yml | 8 ++++---- installer/roles/kubernetes/templates/deployment.yml.j2 | 7 +++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/installer/roles/kubernetes/tasks/main.yml b/installer/roles/kubernetes/tasks/main.yml index f65098c589..024cb0a3eb 100644 --- a/installer/roles/kubernetes/tasks/main.yml +++ b/installer/roles/kubernetes/tasks/main.yml @@ -30,7 +30,7 @@ kubectl_or_oc: "{{ openshift_oc_bin if openshift_oc_bin is defined else 'kubectl' }}" - set_fact: - deployment_object: "sts" + deployment_object: "deployment" - name: Record deployment size shell: | @@ -137,7 +137,7 @@ shell: | POD=$({{ kubectl_or_oc }} -n {{ kubernetes_namespace }} \ get pods -l=name=postgresql --field-selector status.phase=Running -o jsonpath="{.items[0].metadata.name}") - oc exec $POD -n {{ kubernetes_namespace }} -- bash -c "psql -tAc 'select version()'" + {{ kubectl_or_oc }} exec $POD -n {{ kubernetes_namespace }} -- bash -c "psql -tAc 'select version()'" register: pg_version - name: Upgrade postgres if necessary block: @@ -200,9 +200,9 @@ when: kubernetes_web_image is not defined when: docker_registry is defined -- name: Determine StatefulSet api version +- name: Determine Deployment api version set_fact: - kubernetes_statefulset_api_version: "{{ 'apps/v1' if kube_api_version is version('1.9', '>=') else 'apps/v1beta1' }}" + kubernetes_deployment_api_version: "{{ 'apps/v1' if kube_api_version is version('1.9', '>=') else 'apps/v1beta1' }}" - name: Render deployment templates set_fact: diff --git a/installer/roles/kubernetes/templates/deployment.yml.j2 b/installer/roles/kubernetes/templates/deployment.yml.j2 index 44b778f009..47811f1f08 100644 --- a/installer/roles/kubernetes/templates/deployment.yml.j2 +++ b/installer/roles/kubernetes/templates/deployment.yml.j2 @@ -16,8 +16,8 @@ imagePullSecrets: {% endif %} --- -apiVersion: {{ kubernetes_statefulset_api_version }} -kind: StatefulSet +apiVersion: {{ kubernetes_deployment_api_version }} +kind: Deployment metadata: name: {{ kubernetes_deployment_name }} namespace: {{ kubernetes_namespace }} @@ -26,9 +26,8 @@ metadata: app: {{ kubernetes_deployment_name }} {% endif %} spec: - serviceName: {{ kubernetes_deployment_name }} replicas: 1 -{% if kubernetes_statefulset_api_version == "apps/v1" %} +{% if kubernetes_deployment_api_version == "apps/v1" %} selector: matchLabels: app: {{ kubernetes_deployment_name }} From ff0186f72b2d1ed7459d0bf0c356567ede33eb2d Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Thu, 2 Apr 2020 12:21:35 -0400 Subject: [PATCH 2/3] Delete k8s StatefulSet if it exists (for upgrades) --- installer/roles/kubernetes/tasks/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/installer/roles/kubernetes/tasks/main.yml b/installer/roles/kubernetes/tasks/main.yml index 024cb0a3eb..a73dc7f8e5 100644 --- a/installer/roles/kubernetes/tasks/main.yml +++ b/installer/roles/kubernetes/tasks/main.yml @@ -45,11 +45,12 @@ kubernetes_deployment_replica_size: "{{ deployment_details.stdout | int }}" when: deployment_details.rc == 0 -- name: Delete existing Deployment +- name: Delete existing Deployment (or StatefulSet) shell: | + {{ kubectl_or_oc }} delete sts \ + {{ kubernetes_deployment_name }} -n {{ kubernetes_namespace }} --ignore-not-found {{ kubectl_or_oc }} delete {{ deployment_object }} \ - {{ kubernetes_deployment_name }} -n {{ kubernetes_namespace }} - when: deployment_details.rc == 0 + {{ kubernetes_deployment_name }} -n {{ kubernetes_namespace }} --ignore-not-found - name: Get Postgres Service Detail shell: "{{ kubectl_or_oc }} describe svc {{ postgresql_service_name }} -n {{ kubernetes_namespace }}" From d57258878d2d99707a0f6bd68226586c15fb1c20 Mon Sep 17 00:00:00 2001 From: Shane McDonald Date: Thu, 2 Apr 2020 12:44:26 -0400 Subject: [PATCH 3/3] Update more references to statefulset --- installer/roles/kubernetes/tasks/rekey.yml | 2 +- installer/roles/kubernetes/tasks/restore.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installer/roles/kubernetes/tasks/rekey.yml b/installer/roles/kubernetes/tasks/rekey.yml index b72dbaaa9a..91ed2828ed 100644 --- a/installer/roles/kubernetes/tasks/rekey.yml +++ b/installer/roles/kubernetes/tasks/rekey.yml @@ -10,7 +10,7 @@ kubectl_or_oc: "{{ openshift_oc_bin if openshift_oc_bin is defined else 'kubectl' }}" - set_fact: - deployment_object: "sts" + deployment_object: "deployment" - name: Record deployment size shell: | diff --git a/installer/roles/kubernetes/tasks/restore.yml b/installer/roles/kubernetes/tasks/restore.yml index 222219a32c..5d812d07ed 100644 --- a/installer/roles/kubernetes/tasks/restore.yml +++ b/installer/roles/kubernetes/tasks/restore.yml @@ -26,7 +26,7 @@ extra_opts: [--strip-components=1] - set_fact: - deployment_object: "sts" + deployment_object: "deployment" - name: Record deployment size shell: |