cockpit-project / cockpit

Cockpit is a web-based graphical interface for servers.
http://www.cockpit-project.org/
GNU Lesser General Public License v2.1
11.15k stars 1.11k forks source link

Pull request preview environments to improve maintainer productivity #18047

Open gadkins opened 1 year ago

gadkins commented 1 year ago

Proposal

I would like to support cockpit by implementing Uffizzi preview environments. Disclaimer: I work on the Uffizzi project.

Uffizzi is an open-source, full-stack previews engine. Our platform is available completely free for cockpit (and all open-source projects). This will provide maintainers with preview environments of every PR in the cloud, which enables faster iterations and reduces time to merge. You can see the open-source repos which are currently using Uffizzi over here.

Uffizzi is purpose-built for the task of previewing PRs, and it integrates with your workflow to deploy preview environments in the background without any manual steps for maintainers or contributors.

We can go ahead and create an initial PoC for you right away if you think there is value in this proposal. cc @waveywaves

To Do

jkonecny12 commented 1 year ago

Hi @gadkins, I'm working on Anaconda project where we are now working on Web UI frontend build on top of Cockpit. I wonder would it be possible to use your solution for us? The biggest issue for us could be that we need to be able to boot the machine and then connect to the remote URL. Do you think that is doable?

gadkins commented 1 year ago

@jkonecny12 Seems doable

jkonecny12 commented 1 year ago

In that case we will definitely take a look :). Thanks!

marusak commented 1 year ago

We actually used to have something very much similar before - https://github.com/cockpit-project/cockpit/pull/15384 I don't remember why but we eventually dropped it. @KKoukiou might remember why

Not sure what the team thinks of this. For example @martinpitt @KKoukiou @jelly WDYT?

martinpitt commented 1 year ago

Our /livetest had been broken for a while, required some questionable infrastructure, only worked on ubuntu 22.04 (what GitHub gives us), and nobody in our team actually cared enough to keep it alive. We made building a local VM for a PR so fast (< 1 min) that the benefits of an online test env weren't big enough for the additional overhead.

That said, if Uffizzi makes this work without custom infrastructure on our side, this is definitively interesting. Maybe even more for starter-kit and friends, so that it's easy for the community to help with additional plugins. So I'd much appreciate a PoC. Thanks @gadkins !

waveywaves commented 1 year ago

@martinpitt @marusak @jkonecny12 I will be opening a PoC PR for this soon. I will create a bastion server PoC for you initially. If that works out for you and we get it merged, I will iterate on the same PoC to see how we can have a server with cockpit installed would actually work for you. Let me know if that makes sense.