Skip to content

Epic: Service Provider Lib Work #596

@christophrj

Description

@christophrj

Understand the Epic

Service providers currently contain duplicated controller logic that has been copied and adapted over time. This duplication increases maintenance overhead, creates inconsistencies between implementations and makes bug fixes difficult to roll out uniformly.

This epic proposes extracting the commonly used functionality into a set of reusable modules for service providers.

Goals:

  • Reduce copy-pasted service provider code
  • Centralize bug fixes and improvements to reduce maintenance efforts
  • Improve consistency across service providers

Non-Goals:

  • Rewriting all existing service providers immediately

Context / Background

Candidates:

  • the service provider runtime package of the service-provider-template
  • the manager introduced with service-provider-velero and reused in service-provider-flux and service-provider-external-secrets.

A service provider manager module could provide reference implementations for both flux based and native service providers which includes commonly required functionality like orphaned resource cleanup, version selection, secret sync etc. The manager module could then also be used in the service provider template example code generation.

User Stories or tasks

Open planning tasks for this epic:

  • Identify the most commonly duplicated code to extract (see example above)
  • Clarify lib location (e.g. controller-utils or new dedicated extensibility repo

What is required to accept the Epic as finished.

Dependencies of this Epic

No response

Risks of this Epic

No response

Known Stakeholders of this Epic

No response

Milestone Definitions for this Epic.

No response

Metrics Definition for this Epic.

No response

Any further valuable resources.

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/epicEpic covers multiple issues/tasksneeds/validationVerify Issue and Prio with PO

    Type

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions