eclipse-che / che

Kubernetes based Cloud Development Environments for Enterprise Teams
http://eclipse.org/che
Eclipse Public License 2.0
6.99k stars 1.19k forks source link

Using Podman as a backend #19772

Closed PavelSosin-320 closed 2 years ago

PavelSosin-320 commented 3 years ago

Is your enhancement related to a problem? Please describe.

It is not fair to request Kubernetes Cluster to run Cloud development environment when Redhat offers Podman as a Cloud development environment for Cloud applications developers. Podman can run anywhere, Cloud, Linux VM, even on the top of OEM Microsoft Windows with WSL enabled. Everybody who uses Eclipse IDE knows that that Workspace code and Workspace configuration are tightly coupled. After a minor configuration change like tool's version developer has to spend hours to rebuild the project. The source-only synchronization between IDE instance running locally and Che Worlspace Pod running remotely is not possible without synchronization of the dev-environment, i.e all configuration data and OCI images containing plugins, tools, etc.

Describe the solution you'd like

It is possible and easy to synchronize Workspace Pods between remote Cluster and local Podman. It can be also very fast if the same UBI images are used and pre-pulled to the local Podman. So fast that it can be done every build run.

Describe alternatives you've considered

Full workspace and tools synchronization: downstream, cloud instance -> local is possible but upstream local-> cloud instance is not because of internet upstream speed limitation. Pulling of missed or replaced OCI image layers from the public repositories takes few seconds at most. Local rebuild after configuration change will run as fast as purely local rebuild in the Eclipse.

Additional context

ibuziuk commented 3 years ago

It is possible and easy to synchronize Workspace Pods between remote Cluster and local Podman. It can be also very fast if the same UBI images are used and pre-pulled to the local Podman. So fast that it can be done every build run.

@PavelSosin-320 could you please provide more details about the proposed solution? Having the flow diagram would be really nice to have since currently it is not really clear what exactly the proposal is (running Eclipse Che without a k8s cluster ?)

PavelSosin-320 commented 3 years ago

Based on my knowledge of Eclipse/Che architecture gained during SAP WebIDE development:

  1. The core component representing the user's workspace is Kubernetes Pod. The Browser's based GUI runs on the separate PC and requires a certain internet connection stability. It is not achievable using LTE connection.
  2. It is feasible to install Micro OpenShift to run Eclipse/Che on the PC / Laptop on the top of Docker-for-win but such stack is nothing else demo version due to huge resource consumption and numerous restrictions. The reliability of these stack components is doubtful. - verified. There is no obvious way to integrate a personal mobile development environment with the Cloud-based Redhat dev pipeline.
  3. The RedHat strategy is the replacement of the Docker-based development environment with the Podman-based. Podman manages the same set of Kubernetes artifacts as K8s: Pods, Containers, Volumes, Secrets,... , everything that Eclipse/Che needs. OCI images used in the Eclipse/Che backed plus Theia can be pulled and run by Podman directly. All Dev plugins like LSP, DAP, Code generators are fully reusable if they are implemented as "side-car" containers. Pod resource yaml is "playable" by Podman. The project can be developed locally or submitted to the Cloud Dev pipeline at any phase: debugging, unit-testing, integration testing, delivery to repositories.
  4. Podman is available on all popular development platforms: Its reliability is proven. Microsoft Windows is supported via WSL2+systemd-genie-Fedora34-Podman 3.1 stack - verified.
che-bot commented 2 years ago

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.