Skip to content

Commit

Permalink
[ISV-5091] Optimize container tool storage configuration
Browse files Browse the repository at this point in the history
- Adds a new Ansible step controlled by the boolean variable optimize_build_storage to apply a storage configuration that saves disk space and make podman build execution safer
- Adds extra parameters variable to podman build command. This allows to easily add new configuration options and for debugging. The real fix to the issue is to setup overlay as storage driver.

Signed-off-by: Mario Varas <maario.vrs@gmail.com>
  • Loading branch information
mavaras committed Aug 6, 2024
1 parent 7778300 commit f6a24ab
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
2 changes: 2 additions & 0 deletions upstream/roles/build_app_registry/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ testing_bin_path: "{{ work_dir }}/bin"
opm_bin_path: "{{ testing_bin_path }}/opm"
bundle_export_dir_app_registry: "{{ work_dir }}/app_registry/upstream-community-operators"
container_tool: "docker"
container_tool_extra_params: ""
opm_container_tool: "docker"
opm_container_tool_index: "docker"
container_push_extra: ""
Expand All @@ -12,3 +13,4 @@ app_registry_build_dir: "{{ catalog_repo_dir }}"
app_registry_build_file: "upstream.Dockerfile"
default_retries: 5
default_delay: 10
optimize_build_storage: false
58 changes: 57 additions & 1 deletion upstream/roles/build_app_registry/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,64 @@

- name: "Building and pushing app registry"
block:
- name: "Setting up optimized container tool storage configuration (/mnt/storage)"
become: true
file:
path: "/mnt/storage"
state: "directory"
owner: "{{ ansible_user_uid }}"
group: "{{ ansible_user_gid }}"
- name: "Setting up optimized container tool storage configuration (/mnt/rundir)"
become: true
file:
path: "/mnt/rundir"
state: "directory"
owner: "{{ ansible_user_uid }}"
group: "{{ ansible_user_gid }}"
- name: "Setting up optimized container tool storage configuration (/mnt/tmp)"
become: true
file:
path: "/mnt/tmp"
state: "directory"
mode: "1777"
- name: "Setting up optimized container tool storage configuration (storage.conf)"
become: true
copy:
content: |
[storage]
graphroot = "/mnt/storage"
driver = "overlay"
runroot = "/mnt/rundir"
dest: "/usr/share/containers/storage.conf"
- name: "Setting up optimized container tool storage configuration (containers.conf)"
become: true
copy:
content: |
[engine]
env = ["TMPDIR=/mnt/tmp"]
dest: "/etc/containers/containers.conf"
# shell: |
# sudo mkdir -p /mnt/storage /mnt/rundir /mnt/tmp
# sudo chown "$(id -u):$(id -g)" /mnt/storage /mnt/rundir
# sudo chmod 1777 /mnt/tmp
# sudo chmod 1777 /mnt/rundir
# sudo chmod 1777 /mnt/storage
# export TMPDIR=/mnt/tmp
# export STORAGE_DRIVER=overlay
# cat <<__EOF__ >/usr/share/containers/storage.conf
# [storage]
# graphroot = "/mnt/storage"
# driver = "overlay"
# runroot = "/mnt/rundir"
# __EOF__
# cat <<__EOF__ | sudo tee /etc/containers/containers.conf
# [engine]
# env = ["TMPDIR=/mnt/tmp"]
# __EOF__
when: optimize_build_storage|bool == true

- name: "Build app registry image '{{ app_registry_image }}' using '{{ app_registry_build_file }}'"
shell: "{{ container_tool }} build --no-cache -t {{ app_registry_image }} -f {{ app_registry_build_dir }}/{{ app_registry_build_file }} {{ bundle_export_dir_app_registry | dirname }}"
shell: "{{ container_tool }} build {{ container_tool_extra_params }} --no-cache -t {{ app_registry_image }} -f {{ app_registry_build_dir }}/{{ app_registry_build_file }} {{ bundle_export_dir_app_registry | dirname }}"

- name: "Push app registry image '{{ app_registry_image }}'"
shell: "{{ container_tool }} push {{ container_push_extra }} {{ app_registry_image }}"
Expand Down

0 comments on commit f6a24ab

Please sign in to comment.