containers / containers/gvisor-tap-vsock

Move most of gvproxy code to a reusable go package with an API

Open
#286 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
435
Forks
102
Avg merge
1d 23h
Merged PRs (30d)
14

Description

gvproxy code:
1) register/parses command line arguments
2) creates a `types.Configuration` instance from these args
3) creates some listeners/http muxers from these args + associated go routines

All of this is done in 2 big functions.
The crc daemon does 2) and 3) but with slight variations, and without sharing any code from gvproxy.
Following https://github.com/containers/gvisor-tap-vsock/pull/280 , it might be useful to podman as well to have an easy way to reimplement their own gvproxy + 9p binary.

What I aim to do is to move 2) and 3) to their own go package (maybe `pkg/usernet`) which can be used by both gvproxy and the crc daemon. Adding an API for 2) is mostly done, 3) is still being investigated.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading gvproxy's two large functions and the corresponding configuration and listener setup in the crc daemon, then review pull request 280 for context. The work is done when configuration creation and listener or HTTP muxer setup are exposed through a reusable package and shared by gvproxy and the crc daemon.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.