mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
Renovate shared presets
Presets makes rules easier to maintain and reusable across multiple repositories.
How to use a preset
Reference the preset in the extends field of the renovate.json file in the repository.
Presets can reference other presets. (read more about shared presets)
{
"extends": [
"github>argoproj/argo-cd//renovate-presets/custom-managers/bash.json5"
]
}
Note :
It would make sense to move this folder to a new repository in the future.
Benefits:
- Avoids consuming the repository's CI/CD resources.
- Faster feedback loop for configuration changes.
- Avoid polluting the master git history.
- The
renovate.jsonin each repository can be simplified to only include a single presets :{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "github>argoproj/renovate-presets//argoproj/argo-cd/renovate.json5" ], // rules are empty and this file won't need to be modified again. "packageRules": [] }
Inconvenient:
- Owners of a repository can impact the configuration of all repositories. Use codeowners to reduce the risk.
Example of repo structure :
.
├── README.md
├── .github/CODEOWNERS
├── common.json5 # common presets for all repositories
├── fix/
│ └── openssf-merge-confidence-columns.json5
├── custom-managers/
│ ├── bash.json5
│ └── yaml.json5
└── argoproj/ # organization
├── argo-cd/ # repository
│ ├── devtools.json5 # rules specific to the devtool (CI and dev environment...)
│ ├── docs.json5 # rules specific to the docs folder.
│ ├── # etc...
│ └── renovate.json5 # this is the single preset referenced from the repository argopro/argo-cd.
└── argo-rollouts/ # repository
└── renovate.json5