diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/certauthority.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/certauthority.yml index cf38fa7..2ca6d18 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/certauthority.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/certauthority.yml @@ -133,7 +133,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'ok' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/git.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/git.yml index aa7899e..10fab3b 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/git.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/git.yml @@ -19,7 +19,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'pass' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" - name: Configure additional SSH ingress ansible.builtin.template: diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/gitops.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/gitops.yml index 4413406..865b300 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/gitops.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/gitops.yml @@ -18,7 +18,7 @@ until: - api_readycheck.json.Version is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" - name: Generate argo-cd API token ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/k3s.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/k3s.yml index a2047be..647c122 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/k3s.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/k3s.yml @@ -40,7 +40,7 @@ register: api_readycheck until: api_readycheck.json.apiVersion is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}" - name: Install kubectl tab-completion ansible.builtin.shell: @@ -77,4 +77,4 @@ until: - k8snode_patch.result.metadata.labels['ova.airgappedk8s/moref_id'] is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}" diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/registry.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/registry.yml index fa7cd92..6589b12 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/registry.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/registry.yml @@ -19,7 +19,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'healthy' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" - name: Push images to registry ansible.builtin.shell: @@ -40,7 +40,7 @@ loop_control: label: "{{ item | basename }}" retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.short) | int }}" + delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}" until: push_result is not failed module_defaults: diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/storage.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/storage.yml index c68a278..059e0a7 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/storage.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/metacluster/tasks/storage.yml @@ -17,7 +17,7 @@ until: - api_readycheck is not failed retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/workloadcluster/tasks/clusterapi.yml b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/workloadcluster/tasks/clusterapi.yml index a3b4887..c769603 100644 --- a/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/workloadcluster/tasks/clusterapi.yml +++ b/ansible/roles/firstboot/files/ansible_payload/bootstrap/roles/workloadcluster/tasks/clusterapi.yml @@ -150,7 +150,7 @@ register: certificate_subject until: certificate_subject is not failed retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}" - name: Apply workload cluster manifest kubernetes.core.k8s: definition: >- @@ -168,7 +168,7 @@ register: cluster_readycheck until: cluster_readycheck is succeeded retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" - name: Initialize tempfile ansible.builtin.tempfile: diff --git a/ansible/roles/firstboot/files/ansible_payload/common/roles/disks/tasks/main.yml b/ansible/roles/firstboot/files/ansible_payload/common/roles/disks/tasks/main.yml index 60bf059..7becdbb 100644 --- a/ansible/roles/firstboot/files/ansible_payload/common/roles/disks/tasks/main.yml +++ b/ansible/roles/firstboot/files/ansible_payload/common/roles/disks/tasks/main.yml @@ -26,7 +26,7 @@ - name: Calculate crude storage benchmark ansible.builtin.set_fact: - storage_benchmark: "{{ (end_time | int - start_time | int) }}" + storage_benchmark: "{{ [storage_benchmark, (end_time | int - start_time | int)] | max }}" - debug: var: storage_benchmark diff --git a/ansible/roles/firstboot/files/ansible_payload/common/roles/metacluster/tasks/assets.yml b/ansible/roles/firstboot/files/ansible_payload/common/roles/metacluster/tasks/assets.yml index 6d0d9b8..a5eb09a 100644 --- a/ansible/roles/firstboot/files/ansible_payload/common/roles/metacluster/tasks/assets.yml +++ b/ansible/roles/firstboot/files/ansible_payload/common/roles/metacluster/tasks/assets.yml @@ -8,5 +8,5 @@ label: "{{ item | basename }}" # Probably should add a task before that ensures K3s node is fully initialized before starting imports; currently K3s goes away briefly during this loop retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.short) | int }}" + delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}" until: import_result is not failed diff --git a/ansible/roles/firstboot/files/ansible_payload/common/roles/preflight/tasks/vcenter.yml b/ansible/roles/firstboot/files/ansible_payload/common/roles/preflight/tasks/vcenter.yml index 9a2af80..a01d5e9 100644 --- a/ansible/roles/firstboot/files/ansible_payload/common/roles/preflight/tasks/vcenter.yml +++ b/ansible/roles/firstboot/files/ansible_payload/common/roles/preflight/tasks/vcenter.yml @@ -5,7 +5,7 @@ schema: vsphere register: vcenter_info retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.short) | int }}" + delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}" until: vcenter_info is not failed module_defaults: diff --git a/ansible/roles/firstboot/files/ansible_payload/common/vars/defaults.yml b/ansible/roles/firstboot/files/ansible_payload/common/vars/defaults.yml index f28f8af..8cf3e3c 100644 --- a/ansible/roles/firstboot/files/ansible_payload/common/vars/defaults.yml +++ b/ansible/roles/firstboot/files/ansible_payload/common/vars/defaults.yml @@ -5,3 +5,6 @@ playbook: long: 2 medium: 1 short: 0.5 + +# This default value is updated during the playbook, based on an I/O intensive operation +storage_benchmark: 30 diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/decommission/tasks/k3s.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/decommission/tasks/k3s.yml index 71f2d8f..ff0f65b 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/decommission/tasks/k3s.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/decommission/tasks/k3s.yml @@ -24,7 +24,7 @@ - nodedrain_results is not failed - (nodedrain_results.stdout_lines | last) is match('node/.* drained') retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.short) | int }}" + delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}" - name: Delete node kubernetes.core.k8s: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/certauthority.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/certauthority.yml index 270dae0..fde0972 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/certauthority.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/certauthority.yml @@ -43,7 +43,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'ok' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/containerimages.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/containerimages.yml index 5e9fa56..5e87538 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/containerimages.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/containerimages.yml @@ -19,7 +19,7 @@ loop_control: label: "{{ item | basename }}" retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.short) | int }}" + delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}" until: push_result is not failed - name: Get all stored container images (=artifacts) diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/git.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/git.yml index d0ef7bf..9970549 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/git.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/git.yml @@ -18,7 +18,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'pass' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/gitops.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/gitops.yml index 56a4c97..ada716e 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/gitops.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/gitops.yml @@ -17,7 +17,7 @@ until: - api_readycheck.json.Version is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/k3s.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/k3s.yml index 280f1c5..80d4c0a 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/k3s.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/k3s.yml @@ -40,7 +40,7 @@ register: api_readycheck until: api_readycheck.json.apiVersion is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}" - name: Install kubectl tab-completion ansible.builtin.shell: @@ -77,4 +77,4 @@ until: - k8snode_patch.result.metadata.labels['ova.airgappedk8s/moref_id'] is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}" diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/registry.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/registry.yml index 0a2082a..e433a87 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/registry.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/registry.yml @@ -18,7 +18,7 @@ - api_readycheck.json.status is defined - api_readycheck.json.status == 'healthy' retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/storage.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/storage.yml index 06d0cbd..93861e4 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/storage.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/metacluster/tasks/storage.yml @@ -25,7 +25,7 @@ - (volume_details.json | json_query('data[? state==`attached`].robustness') | unique | length) == 1 - (volume_details.json | json_query('data[? state==`attached`].robustness') | first) == "healthy" retries: "{{ ( playbook.retries * 2) | int }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" - name: Upgrade longhorn chart kubernetes.core.helm: @@ -44,7 +44,7 @@ until: - api_readycheck is not failed retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.long) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}" module_defaults: ansible.builtin.uri: diff --git a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/preflight/tasks/metacluster.yml b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/preflight/tasks/metacluster.yml index 2cc7ebe..3f059e6 100644 --- a/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/preflight/tasks/metacluster.yml +++ b/ansible/roles/firstboot/files/ansible_payload/upgrade/roles/preflight/tasks/metacluster.yml @@ -8,4 +8,4 @@ until: - api_readycheck.json.apiVersion is defined retries: "{{ playbook.retries }}" - delay: "{{ (storage_benchmark * playbook.delay.medium) | int }}" + delay: "{{ (storage_benchmark | int) * (playbook.delay.medium | int) }}"