blob: 30087fe6a3d19d1228080e1cf7f31ce868433645 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
---
## The purpose of this task file is to get a patch that is based on the diff
## between configmap_current_file and configmap_new_file. The module
## logging_patch takes the paths of two files to compare and also a list of
## variables whose line we exclude from the diffs.
## We then patch the new configmap file so that we can build a configmap
## using that file later. We then use oc apply to idempotenly modify any
## existing configmap.
## The following variables are expected to be provided when including this task:
# __configmap_output -- This is provided to us from patch_configmap_files.yaml
# it is a dict of the configmap where configmap_current_file exists
# configmap_current_file -- The name of the data file in the __configmap_output
# configmap_new_file -- The path to the file that we intend to oc apply later
# we apply our generated patch to this file.
# configmap_protected_lines -- The list of variables to exclude from the diff
- copy:
content: "{{ __configmap_output.results.results[0]['data'][configmap_current_file] }}"
dest: "{{ tempdir }}/current.yml"
- logging_patch:
original_file: "{{ tempdir }}/current.yml"
new_file: "{{ configmap_new_file }}"
whitelist: "{{ configmap_protected_lines | default([]) }}"
register: patch_output
- copy:
content: "{{ patch_output.raw_patch }}\n"
dest: "{{ tempdir }}/patch.patch"
when: patch_output.raw_patch | length > 0
- command: >
patch --force --quiet -u "{{ configmap_new_file }}" "{{ tempdir }}/patch.patch"
when: patch_output.raw_patch | length > 0
|