Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[patch] Patch the ibmcloud-block-storage-driver DaemonSet #1440

Merged
merged 4 commits into from
Aug 28, 2024
Merged
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
8 changes: 8 additions & 0 deletions ibm/mas_devops/roles/ocp_verify/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,11 @@ verify_catalogsources: "{{ lookup('env', 'VERIFY_CATALOGSOURCES') | default('Tru
verify_subscriptions: "{{ lookup('env', 'VERIFY_SUBSCRIPTIONS') | default('True', True) | bool }}"
verify_workloads: "{{ lookup('env', 'VERIFY_WORKLOADS') | default('True', True) | bool }}"
verify_ingress: "{{ lookup('env', 'VERIFY_INGRESS') | default('True', True) | bool }}"

# fix for issue https://github.ibm.com/alchemy-containers/armada-storage/issues/6503
# v2.5.12 needs updating to v2.5.14
# v2.4.23 needs updating to v2.4.25
# This task can be removed once OCP provision no longer installs ibmcloud-block-storage-driver v2.5.12 or v2.4.23
upgrade_image:
us.icr.io/armada-master/ibmcloud-block-storage-driver:v2.5.12: us.icr.io/armada-master/ibmcloud-block-storage-driver:v2.5.14
us.icr.io/armada-master/ibmcloud-block-storage-driver:v2.4.23: us.icr.io/armada-master/ibmcloud-block-storage-driver:v2.4.25
73 changes: 73 additions & 0 deletions ibm/mas_devops/roles/ocp_verify/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,79 @@
- ocp_info.resources is defined
- ocp_info.resources | json_query('[*].status.conditions[?type==`Available`][].status') | select ('match','True') | list | length == 1

# 1b. Patch the ibmcloud-block-storage-driver DaemonSet image if necessary
# fix for issue https://github.ibm.com/alchemy-containers/armada-storage/issues/6503
# v2.5.12 needs updating to v2.5.14
# v2.4.23 needs updating to v2.4.25
# This task can be removed once OCP provision no longer installs ibmcloud-block-storage-driver v2.5.12 or v2.4.23
# -------------------------------------------------------------------------------------
- name: Lookup ibmcloud-block-storage-driver image
kubernetes.core.k8s_info:
api_version: apps/v1
kind: DaemonSet
name: ibmcloud-block-storage-driver
namespace: kube-system
register: lookup_storage_driver

- name: "Get Driver Image"
set_fact:
driver_image: "{{ lookup_storage_driver.resources[0].spec.template.spec.containers[0].image }}"
when:
- lookup_storage_driver.resources is defined
- lookup_storage_driver.resources | length == 1
- lookup_storage_driver.resources[0].spec.template.spec.containers[0].image is defined

- name: "Determine New Driver Image"
set_fact:
new_driver_image: "{{ upgrade_image[driver_image] }}"
when:
- driver_image is defined
- upgrade_image[driver_image] is defined

- debug:
msg: "Storage Driver {{ driver_image }} doesn't need to be replaced."
when:
- driver_image is defined
- new_driver_image is not defined

- name: Update ibmcloud-block-storage-driver image
when: new_driver_image is defined
block:
- debug:
msg: "Driver {{ driver_image }} to be replaced with {{ new_driver_image }}."

- name: Update ibmcloud-block-storage-driver image
kubernetes.core.k8s:
api_version: apps/v1
kind: DaemonSet
name: ibmcloud-block-storage-driver
namespace: kube-system
definition:
spec:
template:
spec:
containers:
- name: ibmcloud-block-storage-driver-container
image: "{{ new_driver_image }}"


- name: Wait for the ibmcloud-block-storage-driver DaemonSet to update
kubernetes.core.k8s_info:
api_version: apps/v1
kind: DaemonSet
name: ibmcloud-block-storage-driver
namespace: kube-system
register: lookup_storage_driver
until:
- lookup_storage_driver.resources is defined
- lookup_storage_driver.resources | length > 0
- lookup_storage_driver.resources[0].status is defined
- lookup_storage_driver.resources[0].status.updatedNumberScheduled is defined
- lookup_storage_driver.resources[0].status.desiredNumberScheduled is defined
- lookup_storage_driver.resources[0].status.updatedNumberScheduled == lookup_storage_driver.resources[0].status.desiredNumberScheduled
retries: 30 # approx 10 minutes before we give up
delay: 20 # 1 minute

# 2. Wait for all catalogsources to be healthy
# -----------------------------------------------------------------------------
- name: Check CatalogSource Status
Expand Down
Loading