Skip to content

Extension-manager: bridge extensions to the local network by default #2869

@ES-Alexander

Description

@ES-Alexander

Current behaviour

In a similar vein to #1640, it would be nice if each extension was automatically set up with a network bridge to the local network of the host computer.

With a default approach we could avoid extensions needing to define it manually, and the confusion that may come from doing that.

Expected or desired behaviour

Inject an ExtraHosts binding (e.g. blueos.internal:host-gateway) into the Docker permissions for any extension that doesn't already have ExtraHosts defined. This allows extension code to be obvious when it is connecting to the internal BlueOS network.


Considered alternative host addresses include:

  1. host.docker.internal
    • This is our currently documented recommendation, and is used in some of our existing extensions
    • It's likely the easiest to find external documentation for this, but also isn't very intuitive for people who aren't already familiar with Docker, which may be many of our potential Extension developers
      • We care more about helping people to learn and use our system than teaching them Docker standards and common practices
  2. blueos.local
    • This allows the same code to be run in and outside an extension, which is a nice convenience feature
    • It may run into access conflicts if the developer includes an mDNS receiver in their extension
    • It may cause confusion for developers who are used to using/testing on systems with a custom mDNS address configured (since this address is unrelated to the external address/domain that BlueOS is accessed from)
  3. blueos
    • This is nice and clean, but may not seem as much like a URL, which could be confusing

Prerequisites

  • I have checked to make sure that a similar request has not already been filed or fixed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreIssue related to BlueOS-coreenhancementNew feature or requesttriageNeeds triage from developersuiUser Interface feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions