microsoft / microsoft/dcp

Ephemeral network resource

Open
#137 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
189
Forks
24
Avg merge
2d 16h
Merged PRs (30d)
18

Description

### Descripton
Authors of application components (such as Aspire integrations) might wish to take advantage of DCP networking services (port allocation, injection of connectivity information via environment variables and startup parameters etc) without being confined to basing their component on existing DCP `Executable` and `Container` types. A `NetworkResource` that combines networking functionality and health tracking, but does not prescribe any specific form of execution, would support these component authors much better.

### Related issues
- https://github.com/microsoft/dcp/issues/30
- https://github.com/microsoft/dcp/issues/9

### Addtitional notes

As part of this work we should consider adding a way for application components to advertise `Services` and `Endpoints` they expose without having to speak Kubernetes protocol and create DCP API objects. This would be effectively a mirror capability to what we have for clients, where they can learn about service endpoints via environment variables and startup parameters. The tricky part is that environment variables and startup parameters are well-established, universally-supported way of pushing information INTO execution units such as processes and containers; there is no equivalent way of "advertising one's capabilities" that is nearly equally well supported. So we might end up relying on Kubernetes API after all, especially if `NetworkResource` has a standard way of learning how to call back into DCP.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing DCP Executable and Container types, then read related issues 30 and 9. Clarify how networking, health tracking, and service or endpoint advertisement should work without prescribing execution or requiring Kubernetes protocol. Done requires an agreed design and an implementation plan for the NetworkResource capability.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.