Skip to content

Commit

Permalink
Add variable to skip patching ansiblee csv
Browse files Browse the repository at this point in the history
In some ocasions, like beta testing we want to skip patching the
ansiblee csv to set latest, and instead rely on the image that the
operator has by default. This change introduces a variable that we can
set to skip the related tasks in dataplane_adoption role. By default the
variable is set to false so we keep the current behaviour.
  • Loading branch information
cescgina committed May 10, 2024
1 parent ef3a88f commit 287c59c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 34 deletions.
1 change: 1 addition & 0 deletions tests/roles/dataplane_adoption/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ edpm_sshd_allowed_ranges: "{{ ['192.168.122.0/24'] if dataplane_os_net_config_se
edpm_neutron_sriov_agent_enabled: true
edpm_neutron_dhcp_agent_enabled: true
nova_libvirt_backend: local
skip_patching_ansibleee_csv: false
# OS Diff automation steps
os_diff_dir: tmp/os-diff
os_diff_data_dir: tmp/os-diff
71 changes: 37 additions & 34 deletions tests/roles/dataplane_adoption/tasks/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,45 @@
ceph_backend_configuration_fsid_shell_vars: |
CEPH_FSID=$(oc get secret ceph-conf-files -o json | jq -r '.data."ceph.conf"' | base64 -d | grep fsid | sed -e 's/fsid = //')
- name: Save ansibleee-operator pod name to be able to wait for the rollout of the new pod
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc get -n openstack-operators pod -l app.kubernetes.io/name=openstack-ansibleee-operator -o name
register: old_ansibleee_operator_pod
- name: Patch ansibleee csv to use image built from source or latest if none is defined
when: not skip_patching_ansibleee_csv | bool
block:
- name: Save ansibleee-operator pod name to be able to wait for the rollout of the new pod
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc get -n openstack-operators pod -l app.kubernetes.io/name=openstack-ansibleee-operator -o name
register: old_ansibleee_operator_pod

- name: Get ansibleee-operator csv name
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc get csv -n openstack-operators -o name | grep ansibleee-operator
register: _ansibleee_csv_name
- name: Get ansibleee-operator csv name
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc get csv -n openstack-operators -o name | grep ansibleee-operator
register: _ansibleee_csv_name

- name: use ansible-runner image built from source or latest if none is defined
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
{{ oc_login_command }}
# openstack-operator catalog pins the sha256, which might differ from latest with time
oc patch -n openstack-operators "{{ _ansibleee_csv_name.stdout }}" \
--type='json' -p='[{
"op":"replace", "path":"/spec/install/spec/deployments/0/spec/template/spec/containers/1/env/0",
"value": {"name": "RELATED_IMAGE_ANSIBLEEE_IMAGE_URL_DEFAULT", "value": "{{ ansibleee_runner_img | default('quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest')}}"}}]'
register: ansibleee_csv_patched

- name: Wait for the ansible-operator to restart with the new ENV
no_log: "{{ use_no_log }}"
when: '"no change" not in ansibleee_csv_patched.stdout'
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc wait -n openstack-operators --timeout=120s --for=delete {{ old_ansibleee_operator_pod.stdout }}
- name: use ansible-runner image built from source or latest if none is defined

Check warning on line 28 in tests/roles/dataplane_adoption/tasks/main.yaml

View workflow job for this annotation

GitHub Actions / Ansible Lint

jinja[spacing]

Jinja2 spacing could be improved: {{ shell_header }}
no_log: "{{ use_no_log }}"
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
{{ oc_login_command }}
# openstack-operator catalog pins the sha256, which might differ from latest with time
oc patch -n openstack-operators "{{ _ansibleee_csv_name.stdout }}" \
--type='json' -p='[{
"op":"replace", "path":"/spec/install/spec/deployments/0/spec/template/spec/containers/1/env/0",
"value": {"name": "RELATED_IMAGE_ANSIBLEEE_IMAGE_URL_DEFAULT", "value": "{{ ansibleee_runner_img | default('quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest')}}"}}]'
register: ansibleee_csv_patched

- name: Wait for the ansible-operator to restart with the new ENV
no_log: "{{ use_no_log }}"
when: '"no change" not in ansibleee_csv_patched.stdout'
ansible.builtin.shell: |
{{ shell_header }}
{{ oc_header }}
oc wait -n openstack-operators --timeout=120s --for=delete {{ old_ansibleee_operator_pod.stdout }}
- name: ensure namespace
no_log: "{{ use_no_log }}"
Expand Down

0 comments on commit 287c59c

Please sign in to comment.