Skip to content

Add documentation of resource extension points #3902

@theunrepentantgeek

Description

@theunrepentantgeek

Describe the current behavior

Currently we have little documentation of the various extension points available when adding a completely new resource. This lack of information has proven to be a hinderance for multiple contributors.

Describe the improvement

Add documentation describing the available extension points and when they should be used.

  • Overview of extensions and extension implementation patterns
  • Docs for ARMResourceModifier
  • Docs for Claimer
  • Docs for Deleter
  • Docs for ErrorClassifier
  • Docs for Importer
  • Docs for KubernetesExporter
  • Docs for PostReconciliationChecker
  • Docs for PostReconciliationChecker
  • Docs for SuccessfulCreationHandler

Copilot Instructions

  • Create a new documentation folder under docs/hugo/content/contributing/ called extension-points and create an _index.md file to act as a table of contents.
  • For each extension point identified above, write a separate documentation page to detail the purpose and use of the extension point.
  • Each documentation page should have the following sections:
    • Description - a description of what the extension point does, and when it's invoked
    • Motivation - details about why the extension point is needed. Most everything you need here is already documented in the code, either at the point of declaration for the interface, or when it's implemented.
    • When to use - guidance on when the extension point should be implemented. You'll need to harvest comments from PRs that implemented the extension points to find all the existing commentary on this.
    • Example - pick a representative example of use of the extension point, and provide the code with annotations.

If you find the code for an extension interface is lacking, but find the information elsewhere, update the comments on the code, but take extra care not to change the declaration itself.
Some of these interfaces are also lacking documentation in the code; this should be extended at the same time.

Metadata

Metadata

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions