-
Notifications
You must be signed in to change notification settings - Fork 390
[velero] feat: add support for repo-maintenance-job-configmap argument to run velero server with #702
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
[velero] feat: add support for repo-maintenance-job-configmap argument to run velero server with #702
Conversation
6fcf8bf
to
e01eadb
Compare
…t to run velero server with Signed-off-by: dashashutosh80 <[email protected]>
4a1e089
to
c9a081d
Compare
Signed-off-by: dashashutosh80 <[email protected]>
…:dashashutosh80/velero-helm-charts into feat/repo-maintenance-configmap
@blackpiglet Please feel free to review this too. TIA! |
Signed-off-by: dashashutosh80 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…st repository config changes Signed-off-by: dashashutosh80 <[email protected]>
@jenting / @blackpiglet Can you please review this PR again (new changes as discussed above have been implemented) ? |
Please help rebase to the latest branch and bump version, thx. |
@jenting / @blackpiglet Rebased with main branch and resolved conflicts. Please review this/ |
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]
[velero]
)Based on the latest changes we've made, here's the updated PR description:
📋 Summary
This PR implements support for Velero v1.15+ per-repository maintenance job configuration through a ConfigMap, as requested in #696. This feature allows users to configure different resource limits, node affinity, and priority classes for maintenance jobs on a per-repository basis using structured YAML configuration.
🎯 What's Changed
✨ New Features
global
andrepositories
configuration sectionspriorityClassName
only applies globally📁 Files Modified
charts/velero/values.yaml
- AddedrepositoryConfigData
section with structured YAML configuration supportcharts/velero/templates/repo-maintenance-configmap.yaml
- New template creating properly formatted ConfigMaps with key-value pairscharts/velero/templates/deployment.yaml
- Updated to conditionally use new--repo-maintenance-job-configmap
argumentcharts/velero/values.schema.json
- Added comprehensive schema validation with proper priority class restrictionscharts/velero/README.md
- Updated documentation with structured YAML examples and priority class notes🔧 How It Works
The implementation now follows the latest Velero documentation format where the ConfigMap contains direct key-value pairs:
"global"
or a repository identifier ("namespace-storageLocation-repositoryType"
)When structured configuration is provided:
--repo-maintenance-job-configmap
argument to Velero server--maintenance-job-*
argumentsWhen structured configuration is NOT provided (default):
--maintenance-job-cpu-request
,--maintenance-job-mem-request
,--maintenance-job-cpu-limit
,--maintenance-job-mem-limit
,--keep-latest-maintenance-jobs
📖 Usage Examples
Basic Global Configuration
Per-Repository Configuration
Generated ConfigMap Format
The above configuration generates a ConfigMap like:
🎨 Key Improvements
1. Better User Experience
2. Compliance with Velero Documentation
priorityClassName
only allowed in global configuration{namespace}-{storageLocation}-{repositoryType}
format3. Enhanced Schema Validation
podResources
,keepLatestMaintenanceJobs
,priorityClassName
,loadAffinity
priorityClassName
(correctly restricted)🔄 Migration Path
Existing users: No action required - deprecated parameters continue to work
New users: Can choose between:
✅ Testing
📚 References
--repo-maintenance-job-configmap
parameterNone. This is a fully backward-compatible addition.
🔮 Future Considerations
--maintenance-job-*
) will be removed in Velero v1.17This PR provides a robust, user-friendly, and future-proof implementation that gives users complete control over repository maintenance job configuration while maintaining full backward compatibility with existing deployments. The implementation now perfectly matches the latest Velero documentation and provides an improved developer experience with structured YAML configuration and pretty-formatted output.