Revive A Simpler Time
Fifo has been stale for quite a while now. I would like to get it up and running on current erlang/smartos/ect. In the past 4 years things have changed some and I think Fifo could be simplified. In the beginning Fifo was designed for cloud providers, but with no providers using Fifo anymore there are several parts that could be removed/simplified that in turn could make maintenance easier. Some of these would clearly break compatibility with current versions, but AFAIK I am the only production user so unless somebody else speaks up... I would like to use this issue as a public forum for discussion on if/why the listed items should not be removed/simplified.
Chunter
- Remove KVM support in favor of Bhyve. There is no reason to use KVM anymore.
- Remove S3 support
- Remove VPN support (just put WG (or anything else you want) inside your zone if you want )
Howl
- Kill completely in favor of server side static page rendering
Sniffle
- Remove S3 support
- Remove Ability to create/restore backups
- Remove Dataset management/caching in favor of having hosts have imgadm configured to look at a ds server. When asked to create a VM Chunter would check if the ds is installed on the host, if not ask imgadm to install it, sleep for a few seconds, repeat.
- Remove IP address management in favor of IPv6. With IPv6 we would only need to track a vlan and a network prefix for that network.
- Remove Organizations. If we are not targeting cloud providers we don't really need orgs.
- Remove ZDoor snapshot support. Just use a delegated dataset and manage snapshots using builtin tooling.
- Stack/Clusters. Cool idea but I doubt anybody is using this.
Snarl
- Remove Orgs
- Remove Yubikey support
- I think that we should at least discuss IP based auth similar to how Tailscale does auth. It has to potential to greatly simplify things to just check if the user is coming from 100.123.. and then map that IP to a user.
ZLogin/Docker
- Remove Docker support. Docker using LX zones has too many oddities to be useful. Some docker images use security features or system calls that LX does not support. A better approach would be to have a Boot to Docker type image for bhyve based on some skinny Linux distro like Apline, that would look at the zone metadata for a docker image id and then boot that. We would sacrifice a small bit of performance but would get 100% compatibility.
Cerberus
- Fifo.Cloud has a nice Elixir based server side rendered UI. Perhaps we could talk to Heinz about a buyout to open source the code for that, giving us a big head start. The code for that is much easier to wrap one's head around than the JS/SPA/WhateverHipsterLibraryOfTheDay that we currently have. It also is a great starting point for a revised Rest API. I think we could explore the idea of not having a webui in favor of only a TUI.
FreeBSD
- Kill. The FreeBSD community doesn't seem to be interested.
Fifo Python Client
- Kill. It is a paint to work with. I have "FCloud" which is a Haskell based TUI for Fifo.Cloud I would be happy to open source that. I would also be willing to rewrite in something more mainline like Rust. Basically I want a single executable that users can run and not the Python hell of a million files/deps.