Giter Club home page Giter Club logo

aarch64's People

Contributors

alyx avatar brunomiguel avatar grahamsh-llk avatar hamptonmoore avatar iojcde avatar knightss27 avatar mplscorwin avatar mrtbm avatar natesales avatar peerau avatar samip5 avatar superc03 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aarch64's Issues

UI for proxy management

There is now a new API route for managing the dualstack service proxy, /proxy. The methods and example JSON bodies are in the docs, but it would be great to add another page under the "Manage" tab that contains a table of current proxies and a form for creating a new one. The table should have two columns, the left being Label and the right being VM, and the form should be the same but with a dropdown for VM selection.

Users cannot remove themselves from a project

Console users cannot remove themselves from a project once added. As a user can be added to a project without the user's prior knowledge or consent, I think it is important that we have a way for the user to remove themselves from the project.

Pathvector > BCG

We're running a very old version of BCG which is now Pathvector. Let's update it with the latest v4 release for more flexibility in peering configs.

SSH key management

We should support SSH keys that can be included in the cloud-init config on VM creation time. Most importantly a user should be able to add/delete SSH keys for their account. I think it would also be beneficial to add SSH keys at a project level for things like project-wide provisioning, logging, auditing, etc.

I propose the following implementation:

  • API routes to add (validate) and delete SSH keys on both a user and project basis
  • A helper function that takes a project ID and returns a list of SSH keys for that project and all associated users
  • Call this helper function on VM creation time to add a list of SSH keys to the VM project
  • Modify cloud-init template to add to the SSH key list for root
  • Add a list in the settings tab of the dashboard to display which keys were used when the VM was created

Use feature flags for API

Using feature flags for the API will give more flexibility to handle incidents, and will make debugging bits of the services much easier. I'm working on a PR implementing this.

Any opinions?

Randomize IPv6 prefix to avoid reused addresses?

A beta tester brought up that when deleting and creating VMs quickly, it's possible for a new VM to have the same assigned prefix as an old (now deleted) VM. This means a SSH fingerprint warning because the VM no longer exists. Maybe we should randomize the prefix assignment process to minimize this?

Various issues with project creation.

Upon creating a project, three main problems exist:

  • The whole sidebar flashes with undefined for around half a second.
  • The forwarding to the new project page is broken. (forwards to projects/[object Object])
  • Active link highlighting in the sidebar doesn't work until you reload the page.

RFC1918 NAT

I think having an RFC1918 NAT might be useful for users running docker or pre-made chroots where using DNS64+NAT64 can be on the tougher side.

VM Allocation Options

Currently we show users all VM allocation options, including options they can't select as those choices would be above their allocated core count; perhaps we should limit the display to what options the user can actually allocate?

OS System Refactor

Per discussion on Discord; current OS system leads to some oddities like "Rocky" and "Rocky-8.4"

image

Add feedback/roadmap link to left nav bar

It would be cool to let projects provide feedback and see the roadmap using canny.io
Canny.io have kindly provided us with a free license as a FOSS project
The URL is https://roadmap.aarch64.com/aarch64 and I have already added some suggestions
I have sent admin invites to canny.io for those who require it so that we can manage this effectively
It would be great to use canny.io as a way of getting feedback through the use of community voting

Add temp_password to UI

When a VM is first created, it gets a temporary root password field called temp_password that we should display on the dashboard preferably with a copy button to make pasting it into a SSH session quick and easy.

Change License to AGPL

Hello there, good morning.
I recently notice that this project uses GPL and it's a web application, however I think it would be better to use AGPL instead because AGPL contains some specif clauses that GPL doesn't contain to the non-release of source code for web applications.

as stated "The AGPL's additional clause only applies when the user interacts with but does not receive the program." from curiousdannii available in <https://opensource.stackexchange.com/questions/4303/is-there-any-difference-between-the-gpl-and-agpl-for-code-executed-in-the-browse >

VM Backups

While we look into a better storage solution we should at a minimum, create daily backups of VM images. This is probably as simple as making a libvirt domain snapshot and copying the files to our existing Fosshost backup servers for now.

SSH session multiplexer

Currently we're using libvirt-sshd which only allows a single SSH connection to the VM virtual serial console. It would be neat to implement a session mux so multiple sessions can access a VM console at once. This will also solve the problem of console sessions becoming stuck in connected state if your terminal doesn't exit gracefully.

Disable host API & disable POP api

Currently database edits are used to disable pops and hosts during the install of aarch64 nodes. We should likely replace this with at the minimum an API, and optimally some webui

Users cannot change own email

Console users currently cannot change the email associated with their account. We should have a process to allow users to update their emails as needed.

Support OAuth login

OAuth login using providers such as Github will provide a convenient way for clients to login to the console.Also, I'm creating a cli for the console here, and supporting OAuth authentication will make that project's development much easier.

Audit log

We should add an audit log that captures events on VM creation, deletion, etc to keep track of which user made which actions.

SSH jump users on each host to allow native SSH over v4

I think it would be beneficial for there to be a way to SSH into the VMs over IPv4. While there is the console it can be finicky and get in a limbo state where one has closed it, but it still believes it is open so one can not access it. A solution to allow for IPv4 SSH would be to create a "jump" user on each host with no password that is used to SSH jump to the IPv6 only VMs inside (https://wiki.gentoo.org/wiki/SSH_jump_host).

The base setup for this would be simple. Just adding a user called "jump" without a password like so

echo jump:U6aMy0wojraho | sudo chpasswd -e

and adding

Match User jump
   AllowAgentForwarding no
   AllowTcpForwarding yes
   X11Forwarding no
   PermitTunnel no
   GatewayPorts no
   ForceCommand echo 'This account can only be used for ProxyJump (ssh -J)'
   PermitEmptyPasswords yes

to the /etc/ssh/sshd_config of the hosts. This jump user can not gain a CLI or do anything besides jump to another host. The issue is then the "jump" user could be used to try to SSH into remote boxes and abused. I think SSH traffic could be limited using an iptables rule that only applies to the "jump" user but I have not had time to test that yet (https://www.cyberciti.biz/tips/block-outgoing-network-access-for-a-single-user-from-my-server-using-iptables.html).

Logging in with the jump user would be as simple as ssh -J [email protected] user@IPv6ofVM

Every ansible install restart libvirt on ALL hypervisors

Title explains it, only the hypervisor we are installing on should be restarted imo

TASK [virt : Restart libvirt-sshd] ************************************************
changed: [dfw0]
changed: [dfw2]
changed: [dfw1]
changed: [dfw3]
changed: [dfw4]
changed: [lon0]
changed: [lon2]
changed: [lon1]

Batch VM creation is buggy

When batch creating VMs, it redirects to the VM list screen very fast and doesnt actually create them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.