Crossplane provider proposal
What this PR does: Introduces a proposal for a crossplane provider to the cortex project) to declaratively manage Cortex Alertmanager and Ruler configurations through Kubernetes Custom Resources.
Which issue(s) this PR fixes: N/A Checklist
- [N/A] Tests updated
- [x] Documentation added
- [ N/A]
CHANGELOG.mdupdated - the order of entries should be[CHANGE],[FEATURE],[ENHANCEMENT],[BUGFIX]
thanks!. please follow https://github.com/cortexproject/cortex/pull/7085/checks?check_run_id=54406852290 to fix DCO
@zanderfriz please rebase to have CI pass the PR. We made some changes in GitHub Actions
I am in support of this proposal
I have 2 requests to merge this as accepted:
- Let's put this in a separate repo inside cortexproject, where the selected maintainers will be able to keep this component updated.
- We need 2 maintainers for this. (I can't be a maintainer, sorry). I am expecting you will be one of the mantainers. Can you find 1 person to help you with this?
+1 on making sure there are at least 2 maintainers for this provider component.
Support a separate repo within the project.
+1
After discussing with @devopsjedi, he said he would be happy to be a maintainer on this project
After discussing with @devopsjedi, he said he would be happy to be a maintainer on this project
Agreed- excited to support this effort!
I had written a long winded version of this comment but realized it was all just a matter of my internal organization's organization. In short we can't use this version of the operator because we can't run crossplane. We're an observability team and do not have the responsibility to run something that at the same time can provision s3 buckets.
Also, neither the Prometheus nor Opentelemetry operator, two work-horses of our observability infrastructure, require that we run crossplane, why should cortex?
Don't get me wrong, I don't want to trash the idea of crossplane. It's better for the cortex community to have a crossplane provider than nothing. But we won't be able to use it where I work and that makes me sad.
@forestsword I really appreciate the feedback. Technically you don't need to run the operators like provider-aws that enable the deployment of s3 buckets and other resources. You could just run Crossplane and have the cortex operator be the only one installed. That being said, internal organization polies are just that. I'd encourage you to try running the provider as a standalone operator. You can also save yourself some copy pasta using kustomize to manage your TenantConfig, RuleGroup, and AlertmanagerConfig objects which would let you easily share a base RuleGroup between clusters.
Sorry for the late reply.
Feel free to run this as an operator and not run the full crossplane system. It works as a standalone operator.
I did not know this and assuages most if not all of my concerns and is great news! I think you covered my comments feel free to resolve as you see fit. I'm a bit skeptical it will work out of the box as I haven't found any docs saying that you can run it standalone but I'll trust you that it's the case. But could you link some documentation if it exists I'd appreciate it.
Thank you for the wonderful exchange and I hope this project moves forward and we can help!
Also fyi I discovered an existing crossplane provider here for cortex: https://github.com/swisscom/provider-cortex
It has not been updated in a while so I'm not sure if it's unmaintained or so stable they don't need to update it.