feat(docs): add ADR for Plugin lifecycle#14
Merged
Conversation
|
This PR is stale because it has been open for 45 days with no activity. |
|
This PR was closed because it has been inactive for 14 days since being marked as stale. |
uwe-mayer
reviewed
Jan 16, 2025
ibakshay
reviewed
Mar 5, 2025
ibakshay
reviewed
Mar 5, 2025
Contributor
|
as a first proposal for the PluginCatalog we could do - apiVersion: greenhouse.sap/v1alpha1
kind: PluginCatalog
metadata:
name: catalog
namespace: <org-name>
spec:
sources:
- github:
repoURL: https://github.com/cloudoperators/greenhouse
secretRef:
name: github-token
key: github
mapping:
token: token
appID: appID
privateKey: privateKey
targetRevision: main
path: perses/plugindefinition.yaml # (Explicit path to plugin definition file or can it be directory containing plugin definitions and controller parses all yamls in the base of the dir and extracts all plugin definitions?)
paths:
- perses/plugindefinition.yaml
- alerts/plugindefinition.yaml
- exposed-services/plugindefinition.yaml
syncOptions:
syncInterval: 1h # (How often to sync the catalog with the source)
automated: true # (Automatically sync the catalog with the source) (mutually exclusive with syncInterval - if syncInterval is set, automated is ignored)
prune: true # (Remove plugindefinitions that are not in the source) (default: false)
## Do we support buckets?? Many buckets (s3, GCS) support version number or timestamp or generation number, we can use that to check for syncIn target revision we can do - Pinning Strategies
Watch Strategies on tags or releases
|
Signed-off-by: Akshay Iyyadurai Balasundaram <[email protected]>
- Adds a draft option for using Flux with Flagger to managing the plugin lifecycle --------- Signed off by: Simon Olander ([email protected])
This adds a draft idea for how work could progress and which steps we would need to take to roll out a new plugin --------- Signed off by: Simon Olander ([email protected])
e6c7aa3 to
af9657d
Compare
Contributor
Author
This PR is concerning the lifecycle, could you add your comment to #20 instead? |
4 tasks
abhijith-darshan
approved these changes
Jun 3, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR;
This ADR proposes to introduce PluginDefinitionRevisions to enable version pinning on PluginPreset and Plugin resources. PluginPresets will support semantic version constraints, while Plugins, due to technical limitations, will only support concrete versions.
This will enable to stagger a rollout of a new PluginDefinition version by using a concrete version tag on the PluginPreset referring to this PluginDefinition. There is still the option to perform automatic upgrades as before.
Greenhouse will provide the means to use any given CD/GitOps/etc. way to deploy these manifests, but it will not provide an out of the box way to deploy the Greenhouse manifests of an Organization into it's namespace.
Garbage-collection of these revisions is proposed to delete the oldest unused revision/version over a count of
maxRevision. This way gradually over time older revisions can be removed as soon they are no longer used.