Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[QoS] Use NoOp QoS for Unconfigured Services #114

Open
9 tasks done
commoddity opened this issue Dec 19, 2024 · 0 comments
Open
9 tasks done

[QoS] Use NoOp QoS for Unconfigured Services #114

commoddity opened this issue Dec 19, 2024 · 0 comments
Assignees
Labels
qos Intended to improve quality of service
Milestone

Comments

@commoddity
Copy link
Contributor

commoddity commented Dec 19, 2024

Objective

  1. Use NoOp QoS to select a random endpoint for services that do not yet have a QoS implementation instead of outright rejecting the request.

  2. Remove the requirement for defining services in the PATH config YAML.

Related issue: #104

Origin Document

The current behavior of PATH forces operators to define services in the YAML configuration, creating redundancy with Envoy Proxy.

By using Envoy as the single source of truth for "allowed services", PATH now only handles QoS services mappings without the need for operator configuration, improving clarity and reducing configuration complexity.

Links:

Goals

  • Eliminate the redundant services field in PATH config YAML.
  • Use Envoy Proxy as the single source of truth for which services a PATH instance allows requests for.
  • Ensure unsupported services default to a NoOp QoS implementation.
  • Update cmd/qos.go to build the gatewayQoSService map from QoS mappings.

Deliverables

  • Remove the services field from the PATH YAML configuration schema.
  • Update cmd/qos.go to initialize gatewayQoSService using config/service_qos.go.
  • Modify Parser to use a NoOp QoS implementation for unsupported services.
  • Rename config/service_alias.go to config/service_qos.go.
  • Refactor and update documentation to reflect the authoritative service ID concept.
  • Ensure make test_all passes after all changes.

Non-goals / Non-deliverables

General Deliverables

  • Comments: Add/update comments for new and modified logic.
  • Testing: Add tests to verify the NoOp QoS default behavior and service mapping logic.
  • Documentation: Update relevant documentation with the new workflow and terminology.

Creator: @commoddity
Co-Owners: @Olshansk @adshmh

@commoddity commoddity self-assigned this Dec 19, 2024
@commoddity commoddity linked a pull request Dec 19, 2024 that will close this issue
12 tasks
@commoddity commoddity added the qos Intended to improve quality of service label Dec 19, 2024
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Path Roadmap Dec 19, 2024
@commoddity commoddity added this to the Path MVP milestone Dec 19, 2024
@commoddity commoddity moved this from 📋 Backlog to 🔖 Ready in Path Roadmap Dec 19, 2024
@Olshansk Olshansk modified the milestones: Path MVP, PATH V1 Jan 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
qos Intended to improve quality of service
Projects
Status: 🔖 Ready
Development

Successfully merging a pull request may close this issue.

2 participants