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

Update UDI to allow using fuse-overlay rather than VFS with podman/buildah #21693

Open
l0rd opened this issue Sep 9, 2022 · 7 comments
Open
Labels
area/devfile-registry kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.

Comments

@l0rd
Copy link
Contributor

l0rd commented Sep 9, 2022

Is your enhancement related to a problem? Please describe

VFS is slow and building an image using Eclispe Che may take minutes when the same build takes seconds on a local machine.

Describe the solution you'd like

Configure docker/podman in the Universal Developer Image to use Fuse instead of VFS and test to build and image on OpenShift.

Additional context

It's recommended to use fuse-overlayfs rather than VFS when using podman/buildah/docker
There was an initiative to use Fuse overlay by default

@l0rd l0rd added the kind/enhancement A feature request - must adhere to the feature request template. label Sep 9, 2022
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Sep 9, 2022
@l0rd l0rd changed the title Update Universal Developer Image to use FUSE Overlay rather than VFS for podman/buildah/docker Update UDI to allow using fuse-overlay rather than VFS with podman/buildah/docker Sep 12, 2022
@l0rd l0rd changed the title Update UDI to allow using fuse-overlay rather than VFS with podman/buildah/docker Update UDI to allow using fuse-overlay rather than VFS with podman/buildah Sep 12, 2022
@l0rd l0rd added severity/P1 Has a major impact to usage or development of the system. area/devfile-registry and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Sep 12, 2022
@nickboldt
Copy link
Contributor

fuse-overlayfs-1.9-1.module+el8.6.0+15917+093ca6f8 exists in RHEL 8.6.

So we can install that, and then follow steps to configure podman:

https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md#ensure-fuse-overlayfs-is-installed

@l0rd
Copy link
Contributor Author

l0rd commented Oct 28, 2022

Downstream issue

@che-bot
Copy link
Contributor

che-bot commented Apr 26, 2023

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 26, 2023
@l0rd
Copy link
Contributor Author

l0rd commented May 1, 2023

/remove-lifecycle stale

@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 1, 2023
@cgruver
Copy link

cgruver commented Aug 7, 2023

@l0rd Try this, it works.

Create a MachineConfig to enable containers to use /dev/fuse

cat << EOF | butane | oc apply -f -
variant: openshift
version: 4.13.0
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: nested-podman
storage:
  files:
  - path: /etc/crio/crio.conf.d/99-nested-podman
    mode: 0644
    overwrite: true
    contents:
      inline: |
        [crio.runtime.workloads.nested-podman]
        activation_annotation = "io.openshift.nested-podman"
        allowed_annotations = [
          "io.kubernetes.cri-o.Devices"
        ]
        [crio.runtime]
        allowed_devices=["/dev/fuse"]
EOF

Note: Use machineconfiguration.openshift.io/role: master on SNO

Next, create a Dev Spaces workspace with a Podman enabled image.

Edit the devfile and add this to the container that runs vscode:

attributes:
  pod-overrides: {"metadata": {"annotations": {"io.kubernetes.cri-o.Devices":"/dev/fuse","io.openshift.nested-podman":""}}}

Restart the workspace from the local devfile.

Remove the vfs configuration if it has been set in ~/.config/containers/storage.conf

Then run a podman build

@che-bot
Copy link
Contributor

che-bot commented Feb 3, 2024

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 3, 2024
@che-bot che-bot closed this as completed Feb 10, 2024
@l0rd l0rd reopened this Feb 10, 2024
@l0rd
Copy link
Contributor Author

l0rd commented Feb 10, 2024

/remove-lifecycle stale

@l0rd l0rd removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/devfile-registry kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

4 participants