-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Add extra relabelings to scrape classes #6379
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
Add extra relabelings to scrape classes #6379
Conversation
@nicolastakashi and @ArthurSens now that scrape classes are finally out, could you check this one? :) |
89fc641
to
1e5857f
Compare
1e5857f
to
0f1009a
Compare
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.
Thanks for kicking this!
// +optional | ||
TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` | ||
|
||
// ExtraRelabelings allow setting extra default relabelings to all |
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.
It should be obvious that it applies to the target relabeling rules and when the scrape class' relabelings are applied compared to the monitor object's relabelings.
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.
I took the comment fom the podmonitor CR and adjusted it to also add when the scrape class relabelings are applied. Could you check again?
// scrape objects. | ||
// | ||
// +optional | ||
ExtraRelabelings []*RelabelConfig `json:"extraRelabelings,omitempty"` |
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.
I'm not sure why we went with []*RelabelConfig in the first place for service/pod monitors but I'd rather use []RelabelConfig.
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.
The issue with this is that the generator function requires an array of pointers:
func generateRelabelConfig(rc []*monitoringv1.RelabelConfig) []yaml.MapSlice
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.
Right, let's keep it like that for now and tackle my remark in another PR.
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.
Thanks for getting back to this!
I've made a few comments but I think we're pretty close already :)
// scrape objects. | ||
// | ||
// +optional | ||
ExtraRelabelings []*RelabelConfig `json:"extraRelabelings,omitempty"` |
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.
ExtraRelabelings []*RelabelConfig `json:"extraRelabelings,omitempty"` | |
Relabelings []*RelabelConfig `json:"relabelings,omitempty"` |
I'm still not sure about my suggestion, but I think "Extra" might be redundant with the concept of scrape classes. What do you think?
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.
That's fine with me :)
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.
It's now renamed :)
pkg/prometheus/promcfg.go
Outdated
scrapeClassName := cg.defaultScrapeClassName | ||
|
||
if scrapeClass != nil { | ||
scrapeClassName = scrapeClass.Name | ||
} | ||
|
||
scrapeClass, found := cg.scrapeClasses[scrapeClassName] | ||
|
||
if !found { | ||
return nil | ||
} |
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.
Non-blocking!
This part is duplicated with the implementation of MergeTLSConfigWithScrapeClass
and will probably repeat itself for every other field we add to ScrapeClasses. It would be nice if we could find a way of removing this duplication 🤔
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.
So I just noticed that we use this
prometheus-operator/pkg/prometheus/promcfg.go
Line 837 in e8d020e
scrapeClass := cg.getScrapeClassOrDefault(m.Spec.ScrapeClassName) |
pkg/prometheus/promcfg.go
Outdated
// Add user extra relabelings if specified. | ||
extraRelabelings := cg.GetScrapeClassExtraRelabelings(scrapeClass) | ||
if len(extraRelabelings) > 0 { | ||
relabelings = append(relabelings, generateRelabelConfig(extraRelabelings)...) | ||
} | ||
|
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.
I wonder if we should log or warn through admission webhooks if we have clashing relabeling rules in the ScrapeClass and the underlying resource.
I guess we can start with a log and iterate with validating webhooks later?
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.
I think this might then become an issue for use case where it actually make sense to override some custom fields though (not that I have one in mind)
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.
I'd keep the consistency with the TLS feature on the ScrapeClass.
If the Monitor Resource already has a relabel config we should merge keeping and the existing config on the monitor object will take precedence over the one defined on the scrape class.
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.
Due the the nature of relabelings, should we merge them or let them apply after the other ? I'm afraid merging will cause unkown side effects to users
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.
I agree that a "merging" strategy would be hard to get right. My expectation would be that the scrape class relabelings apply first then the service/pod monitor's relabelings. The scrape class relabelings may delete a discovered label that the monitor relabelings rely on but I feel like it's a corner case and not something that the operator could/should prevent.
Thanks for your really fast reviews. I tried to adjust to fix your comments :) Let me know how I can improve |
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.
We need to call validateRelabelConfigs()
on the scrape class relabelings and fail the reconciliation if invalid.
prometheus-operator/pkg/prometheus/resource_selector.go
Lines 244 to 256 in 4030eb7
func validateRelabelConfigs(p monitoringv1.PrometheusInterface, rcs []*monitoringv1.RelabelConfig) error { | |
for i, rc := range rcs { | |
if rc == nil { | |
return fmt.Errorf("null relabel config") | |
} | |
if err := validateRelabelConfig(p, *rc); err != nil { | |
return fmt.Errorf("[%d]: %w", i, err) | |
} | |
} | |
return nil | |
} |
Validation is added |
pkg/prometheus/resource_selector.go
Outdated
if c.Relabelings != nil { | ||
if err := validateRelabelConfigs(p, c.Relabelings); err != nil { | ||
return fmt.Errorf("scrapeClass %q relabelings: %w", *sc, err) | ||
} | ||
} |
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.
Ideally it would need to happen before (e.g. at the beginning of the reconciliation) because it's a problem with the Prometheus/PrometheusAgent spec not with the monitoring object.
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.
Oh makes sensé but I could not find where to put the validation. Could you give me a hint ?
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.
I think I found a nice place in the NewConfigGenerator
function. Can you check the new version?
pkg/prometheus/resource_selector.go
Outdated
|
||
if err = validateScrapeClass(rs.p, pm.Spec.ScrapeClassName); err != nil { | ||
rejectFn(pm, err) | ||
rejectFn(pm, fmt.Errorf("scrapeClass: %w", err)) |
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.
I don't think that wrapping the error is required here.
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.
Oh I did that because it is wrapped for the service monitor validation
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.
In that case should I remove it from thé servicemonitor validation ?
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.
I removed it for all 4 places
start, err := strconv.Atoi(startStr) | ||
if err != nil { | ||
fmt.Errorf("start year cannot be %s parsed: %w", startStr, err) | ||
return nil, fmt.Errorf("start year cannot be %s parsed: %w", startStr, err) |
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.
I'm not sure why those were ignored, maybe I should not have fixed them in this PR
pkg/prometheus/promcfg.go
Outdated
for _, scrapeClass := range cpf.ScrapeClasses { | ||
scrapeClasses[scrapeClass.Name] = &scrapeClass | ||
// Validate all scrape class relabelings are correct. | ||
if scrapeClass.Relabelings != nil { |
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.
@simonpasquier This is where I thought it would be best but I'm not sure about the error message. Do you have any suggestions?
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.
Looks good to me
(nit) validateRelabelConfigs should work with nil slices too.
if scrapeClass.Relabelings != nil { |
res := make(map[string]*monitoringv1.ServiceMonitor, len(serviceMonitors)) | ||
for namespaceAndName, sm := range serviceMonitors { | ||
var err error | ||
rejectFn := func(_ *monitoringv1.ServiceMonitor, err error) { |
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.
So I'm not sure why there this was changed to _
as it was not when I initially did my first PR. It was named servicemonitor
first and the issue is that the sm variable defined line 121 was used instead so I renamed it to sm
.
I'm not sure there is a reason to even have the servicemonitor paramater in the reject function as the code always use the loop value above but if there is, the function name should shadow the loop variable and if there is none, maybe the variable should just be removed in all resources (probes, podmonitors ...).
What do you think?
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.
it might a side effect of #6384?
} | ||
|
||
// WithRelabelings adds the given value to the Relabelings field in the declarative configuration | ||
// and returns the receiver, so that objects can be build by chaining "With" function invocations. |
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.
I'm trying to have this can be build
typo fixed in kubernetes upstream but let's see kubernetes/kubernetes#123844 :p
@simonpasquier the e2e test failures looks to be a fluke. Is there a way to retest? |
pkg/prometheus/promcfg.go
Outdated
for _, scrapeClass := range cpf.ScrapeClasses { | ||
scrapeClasses[scrapeClass.Name] = &scrapeClass | ||
// Validate all scrape class relabelings are correct. | ||
if scrapeClass.Relabelings != nil { |
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.
Looks good to me
(nit) validateRelabelConfigs should work with nil slices too.
if scrapeClass.Relabelings != nil { |
res := make(map[string]*monitoringv1.ServiceMonitor, len(serviceMonitors)) | ||
for namespaceAndName, sm := range serviceMonitors { | ||
var err error | ||
rejectFn := func(_ *monitoringv1.ServiceMonitor, err error) { |
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.
it might a side effect of #6384?
Thanks! This is almost there. Could you also a few more unit tests, esp. making sure that a default scrape class gets applied? |
918e1c2
to
522a034
Compare
d8d3823
to
1d661b1
Compare
827c208
to
7727b8c
Compare
I hope it's better with the new tests :) |
Amazing progress 👏🏽 |
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.
Great!
* Disable dependabot automation targeting k8s libs (prometheus-operator#6191) Signed-off-by: Arthur Silva Sens <[email protected]> * Add support for enableHttp2 in prometheus remotewrite (prometheus-operator#6192) --------- Co-authored-by: Herve Nicol <[email protected]> * chore: refactor generateScrapeConfig() From a comment while reviewing prometheus-operator#6153. Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump github.com/prometheus-community/prom-label-proxy Bumps [github.com/prometheus-community/prom-label-proxy](https://github.com/prometheus-community/prom-label-proxy) from 0.7.0 to 0.8.0. - [Release notes](https://github.com/prometheus-community/prom-label-proxy/releases) - [Changelog](https://github.com/prometheus-community/prom-label-proxy/blob/main/CHANGELOG.md) - [Commits](prometheus-community/prom-label-proxy@v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: github.com/prometheus-community/prom-label-proxy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore: fix pkg/apis/monitoring/go.mod PR prometheus-operator#6001 updated the `go.mod` file under `pkg/apis/monitoring` to depend on `github.com/prometheus-operator/prometheus-operator` which isn't desired: the goal is that external projects can import `github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring` pulling as few dependencies as possible. This commit removes the unneeded dependency by moving the validation function to the `pkg/prometheus` directory. Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump golang.org/x/sync from 0.5.0 to 0.6.0 Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.5.0 to 0.6.0. - [Commits](golang/sync@v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Add proposal for Shard Autoscaling (prometheus-operator#5961) * Add proposal for automated sharding Signed-off-by: Arthur Silva Sens <[email protected]> * Update Documentation/proposals/202310-shard-autoscaling.md * Update Documentation/proposals/202310-shard-autoscaling.md * Update Documentation/proposals/202310-shard-autoscaling.md * Update Documentation/proposals/202310-shard-autoscaling.md * Update Documentation/proposals/202310-shard-autoscaling.md * Update Documentation/proposals/202310-shard-autoscaling.md --------- Signed-off-by: Arthur Silva Sens <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * chore: refactor ShardedSecret This commit reorganizes the code makinguse of `SharedSecret` to reduce duplication. Signed-off-by: Simon Pasquier <[email protected]> * Add testing guidelines (prometheus-operator#5903) * Add testing guidelines Signed-off-by: Arthur Silva Sens <[email protected]> * Add separate Makefile targets for e2e-tests Signed-off-by: Arthur Silva Sens <[email protected]> * Apply suggestions from code review Signed-off-by: Arthur Silva Sens <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * Ensure all comments end with a period (prometheus-operator#6208) * Ensure all comments end with a period. By enabling the godot linter Signed-off-by: Arthur Silva Sens <[email protected]> * Fix godot issues Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * Prevent mistakes with testify lib (prometheus-operator#6211) * Prevent mistakes with testify By enabling testifylint Signed-off-by: Arthur Silva Sens <[email protected]> * Fix testifylint issues Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * Prevent unnecessary type conversions (prometheus-operator#6210) * Prevent unnecessary type conversions By enabling the unconvert linter Signed-off-by: Arthur Silva Sens <[email protected]> * Fix unconvert issues Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * build(deps): bump golang.org/x/net from 0.19.0 to 0.20.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.19.0 to 0.20.0. - [Commits](golang/net@v0.19.0...v0.20.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore: create new feature and support issue templates Based on github's new issue template form https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms Signed-off-by: Jayapriya Pai <[email protected]> * feat: emit events for invalid configurations (prometheus-operator#6179) * feat: emit events for invalid configurations Emit events when the controller rejects a resource, owing to an invalid configuration. Fixes: prometheus-operator#3611 Signed-off-by: Pranshu Srivastava <[email protected]> * Decouple event recorder from operator metrics Signed-off-by: Arthur Silva Sens <[email protected]> * Only emit events if permissions were given Signed-off-by: Arthur Silva Sens <[email protected]> * Keep operator name consistent across telemetry Signed-off-by: Arthur Silva Sens <[email protected]> * Address comments Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Pranshu Srivastava <[email protected]> Signed-off-by: Arthur Silva Sens <[email protected]> Co-authored-by: Pranshu Srivastava <[email protected]> * feat: support the operator make use of the config-reloader tls and basic auth with prometheus/alertmanager webConfigFile (prometheus-operator#6194) * support the operator make use of the config-reloader tls and basic authentication --------- Signed-off-by: dongjiang1989 <[email protected]> * Add scale subresource to Prometheus/PrometheusAgent (prometheus-operator#5962) * Add scale subresource to Prometheus/PrometheusAgent Signed-off-by: Arthur Silva Sens <[email protected]> * Add retry mechanism when updating Status subresource The goal is to allow the new Prometheus-Operator version to run even with outdated CRDs. It will try to update the Status subresource and also Scale subresource. If it fails, it will retry but without Scale-related fields. Signed-off-by: Arthur Silva Sens <[email protected]> * Create function to generate selector labels Signed-off-by: Arthur Silva Sens <[email protected]> * Add UpdateScale and GetScale methods (prometheus-operator#6197) Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * chore: fix field name to comply with conventions The Kubernetes API conventions say: > All letters in the acronym should have the same case, using the > appropriate case for the situation. Since no release includes the field yet, it's ok to change the name. Signed-off-by: Simon Pasquier <[email protected]> * feat: add support for remaining fields in Kubernetes SD (prometheus-operator#6178) * feat: add support for remaining fields in Kubernetes SD Fixes prometheus-operator#6087 --------- Signed-off-by: Jayapriya Pai <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * chore: refactor creation of the TLS assets volume Signed-off-by: Simon Pasquier <[email protected]> * chore: Add ArthurSens as 0.72 shepherd Signed-off-by: Arthur Silva Sens <[email protected]> * chore: cut v0.71.0 (prometheus-operator#6223) * chore: cut v0.71.0 --------- Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: Jayapriya Pai <[email protected]> * chore: fix golangci-lint `Files Exists` errors (prometheus-operator#6221) * fix golangci-lint files exists errors --------- Signed-off-by: dongjiang1989 <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * chore: refactor logger and eventrecorder creations (prometheus-operator#6225) Signed-off-by: Simon Pasquier <[email protected]> * setting targeted go version Signed-off-by: dongjiang1989 <[email protected]> * Enable revive (prometheus-operator#6207) * Enable revive linter in test/framework Signed-off-by: Arthur Silva Sens <[email protected]> * Fix revive issues Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * build(deps): bump github.com/evanphx/json-patch/v5 from 5.7.0 to 5.8.0 Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.7.0 to 5.8.0. - [Release notes](https://github.com/evanphx/json-patch/releases) - [Commits](evanphx/json-patch@v5.7.0...v5.8.0) --- updated-dependencies: - dependency-name: github.com/evanphx/json-patch/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/prometheus/common from 0.45.0 to 0.46.0 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.45.0 to 0.46.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.45.0...v0.46.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * feat(scrapeConfigs): Add sharding to scrapeConfigs Signed-off-by: adinhodovic <[email protected]> * chore: remove proxyconfig code duplication Fixes prometheus-operator#6218 Signed-off-by: Jayapriya Pai <[email protected]> * chore: fix makefile targets Signed-off-by: Arthur Silva Sens <[email protected]> * chore: bump to Prometheus v2.49.1 (prometheus-operator#6234) * update prometheus version --------- Signed-off-by: dongjiang1989 <[email protected]> * build(deps): bump sigs.k8s.io/controller-runtime from 0.16.3 to 0.17.0 Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.16.3 to 0.17.0. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](kubernetes-sigs/controller-runtime@v0.16.3...v0.17.0) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * feat: support `enable_compression` for ScrapeConfig (prometheus-operator#6236) * support enable_compression setting --------- Signed-off-by: dongjiang1989 <[email protected]> * build(deps): bump github.com/evanphx/json-patch/v5 from 5.8.0 to 5.8.1 Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.8.0 to 5.8.1. - [Release notes](https://github.com/evanphx/json-patch/releases) - [Commits](evanphx/json-patch@v5.8.0...v5.8.1) --- updated-dependencies: - dependency-name: github.com/evanphx/json-patch/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * ADOPTERS: add authzed * ruler: add subpath to volumeMounts if specified (prometheus-operator#6243) * ruler: pass spec.volumeMount as-is * feat: add support for DigitalOcean SD (prometheus-operator#6220) Signed-off-by: Jayapriya Pai <[email protected]> * ruler: add subpath to volumeMounts if specified (prometheus-operator#6243) * ruler: pass spec.volumeMount as-is * feat: support scrape_protocols for GlobalConfig and ScrapeConfig (prometheus-operator#6235) * support scrape_protocols for GlobalConfig and ScrapeConfig --------- Signed-off-by: dongjiang1989 <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * chore: bump k8s dependencies to v1.29.1 Signed-off-by: Simon Pasquier <[email protected]> * feat: Add support for NS records to DNSSDConfig (prometheus-operator#6240) * update dns sd config --------- Signed-off-by: dongjiang1989 <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * chore: cut v0.71.1 Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0 Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/google/uuid/releases) - [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md) - [Commits](google/uuid@v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: github.com/google/uuid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/thanos-io/thanos Bumps [github.com/thanos-io/thanos](https://github.com/thanos-io/thanos) from 0.32.5-0.20231124114724-023faa2d67a3 to 0.34.0-rc.1. - [Release notes](https://github.com/thanos-io/thanos/releases) - [Changelog](https://github.com/thanos-io/thanos/blob/main/CHANGELOG.md) - [Commits](https://github.com/thanos-io/thanos/commits/v0.34.0-rc.1) --- updated-dependencies: - dependency-name: github.com/thanos-io/thanos dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/prometheus/prometheus from 0.48.1 to 0.49.1 Bumps [github.com/prometheus/prometheus](https://github.com/prometheus/prometheus) from 0.48.1 to 0.49.1. - [Release notes](https://github.com/prometheus/prometheus/releases) - [Changelog](https://github.com/prometheus/prometheus/blob/main/CHANGELOG.md) - [Commits](prometheus/prometheus@v0.48.1...v0.49.1) --- updated-dependencies: - dependency-name: github.com/prometheus/prometheus dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * fix: azuresdconfig typo (prometheus-operator#6259) * fix: typo on AuthenticationMethod check * chore: cut v0.71.2 Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump github.com/thanos-io/thanos from 0.34.0-rc.1 to 0.34.0 Bumps [github.com/thanos-io/thanos](https://github.com/thanos-io/thanos) from 0.34.0-rc.1 to 0.34.0. - [Release notes](https://github.com/thanos-io/thanos/releases) - [Changelog](https://github.com/thanos-io/thanos/blob/main/CHANGELOG.md) - [Commits](thanos-io/thanos@v0.34.0-rc.1...v0.34.0) --- updated-dependencies: - dependency-name: github.com/thanos-io/thanos dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/prometheus-community/prom-label-proxy Bumps [github.com/prometheus-community/prom-label-proxy](https://github.com/prometheus-community/prom-label-proxy) from 0.8.0 to 0.8.1. - [Release notes](https://github.com/prometheus-community/prom-label-proxy/releases) - [Changelog](https://github.com/prometheus-community/prom-label-proxy/blob/main/CHANGELOG.md) - [Commits](prometheus-community/prom-label-proxy@v0.8.0...v0.8.1) --- updated-dependencies: - dependency-name: github.com/prometheus-community/prom-label-proxy dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/evanphx/json-patch/v5 from 5.8.1 to 5.9.0 Bumps [github.com/evanphx/json-patch/v5](https://github.com/evanphx/json-patch) from 5.8.1 to 5.9.0. - [Release notes](https://github.com/evanphx/json-patch/releases) - [Commits](evanphx/json-patch@v5.8.1...v5.9.0) --- updated-dependencies: - dependency-name: github.com/evanphx/json-patch/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * chore: update remote-write tests Signed-off-by: Simon Pasquier <[email protected]> * chore: create monitors before Prometheus It speeds up the tests since it doesn't have to wait for the updated configuration to be propagated to Prometheus. Signed-off-by: Simon Pasquier <[email protected]> * feat: support added scrape_protocols to Pod/Service monitors (prometheus-operator#6268) * support scrape_protocols to podmonitor/servicemonitor --------- Signed-off-by: dongjiang1989 <[email protected]> * chore: add e2e test detecting the issue Signed-off-by: Simon Pasquier <[email protected]> * fix: convert `continue` field between v1beta1 and v1alpha1 This change converts the `continue` field between v1alpha1 and v1beta1 AlertmanagerConfig versions. When a v1beta1 AlertmanagerConfig object was created with `continue: true`, the `continue` field was always converted to `false` when stored as v1alpha1. Signed-off-by: Simon Pasquier <[email protected]> * add slashpai to maintainers (prometheus-operator#6280) Signed-off-by: Jayapriya Pai <[email protected]> * chore: update Kind version to v0.21.0 This commit also bumps the Kubernetes version to v1.29.1. Signed-off-by: Simon Pasquier <[email protected]> * update go version 1.22 Signed-off-by: dongjiang1989 <[email protected]> * Adds Warpbuild * Bracket change * Update ADOPTERS.md * build(deps): bump golang.org/x/net from 0.20.0 to 0.21.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.20.0 to 0.21.0. - [Commits](golang/net@v0.20.0...v0.21.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * feat: add version check for thanos. keep_firing_for now available (prometheus-operator#6283) * build(deps): bump golangci/golangci-lint-action from 3.7.0 to 3.7.1 Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.0 to 3.7.1. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](golangci/golangci-lint-action@v3.7.0...v3.7.1) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump sigs.k8s.io/controller-runtime from 0.17.0 to 0.17.1 Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.17.0 to 0.17.1. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](kubernetes-sigs/controller-runtime@v0.17.0...v0.17.1) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * fix: remove deprecation on service monitor's targetPort Closes prometheus-operator#6269 Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump helm/kind-action from 1.8.0 to 1.9.0 Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/helm/kind-action/releases) - [Commits](helm/kind-action@v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: helm/kind-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump golangci/golangci-lint-action from 3.7.1 to 4.0.0 Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.7.1 to 4.0.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](golangci/golangci-lint-action@v3.7.1...v4.0.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * fix: don't fail metadata transform on unknown types (prometheus-operator#6298) * fix: don't fail metadata transform on unknown types This change modifies the `PartialObjectMetadataStrip` function to return the object unmodified if casting to `*v1.PartialObjectMetadata` fails. When the informer processes a deleted object, its type can be `cache.DeletedFinalStateUnknown`. Co-authored-by: Ayoub Mrini <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> * test: add TestPartialObjectMetadataStripOnDeletedFinalStateUnknown Co-authored-by: machine424 <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Signed-off-by: machine424 <[email protected]> --------- Signed-off-by: Simon Pasquier <[email protected]> Signed-off-by: machine424 <[email protected]> Co-authored-by: Ayoub Mrini <[email protected]> Co-authored-by: machine424 <[email protected]> * build(deps): bump github.com/prometheus/common from 0.46.0 to 0.47.0 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.46.0 to 0.47.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.46.0...v0.47.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump sigs.k8s.io/controller-runtime from 0.17.1 to 0.17.2 Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.17.1 to 0.17.2. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](kubernetes-sigs/controller-runtime@v0.17.1...v0.17.2) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore: update Kubernetes to v1.29.2 Signed-off-by: Simon Pasquier <[email protected]> * chore: switch example app image Signed-off-by: Simon Pasquier <[email protected]> * Update go dependencies before release (prometheus-operator#6315) * Update go dependencies before release Signed-off-by: Arthur Silva Sens <[email protected]> * make generate Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * docs: correct slashpai slack id Signed-off-by: Jayapriya Pai <[email protected]> * build(deps): bump github.com/prometheus/prometheus from 0.49.1 to 0.50.0 Bumps [github.com/prometheus/prometheus](https://github.com/prometheus/prometheus) from 0.49.1 to 0.50.0. - [Release notes](https://github.com/prometheus/prometheus/releases) - [Changelog](https://github.com/prometheus/prometheus/blob/main/CHANGELOG.md) - [Commits](prometheus/prometheus@v0.49.1...v0.50.0) --- updated-dependencies: - dependency-name: github.com/prometheus/prometheus dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Update default Thanos version (prometheus-operator#6317) * Update default Thanos version Signed-off-by: Arthur Silva Sens <[email protected]> * Update unit tests depending on DefaultThanosVersion Signed-off-by: Arthur Silva Sens <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> * Update Default Prometheus version Signed-off-by: Arthur Silva Sens <[email protected]> * feat: adding scrape class (prometheus-operator#6199) * feat: adding scrape class Signed-off-by: Nicolas Takashi <[email protected]> * Update pkg/apis/monitoring/v1/prometheus_types.go Co-authored-by: Arthur Silva Sens <[email protected]> * Update pkg/prometheus/promcfg.go Co-authored-by: Arthur Silva Sens <[email protected]> * Update pkg/prometheus/store.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/resource_selector.go Co-authored-by: Arthur Silva Sens <[email protected]> * Update pkg/prometheus/store.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/resource_selector.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/resource_selector.go Co-authored-by: Arthur Silva Sens <[email protected]> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/server/operator.go Co-authored-by: Simon Pasquier <[email protected]> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <[email protected]> * Update prometheus_types.go Co-authored-by: Simon Pasquier <[email protected]> --------- Signed-off-by: Nicolas Takashi <[email protected]> Co-authored-by: Arthur Silva Sens <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * fix: update kubernetes slack link Signed-off-by: Jayapriya Pai <[email protected]> * build(deps): bump github.com/prometheus/prometheus from 0.50.0 to 0.50.1 Bumps [github.com/prometheus/prometheus](https://github.com/prometheus/prometheus) from 0.50.0 to 0.50.1. - [Release notes](https://github.com/prometheus/prometheus/releases) - [Changelog](https://github.com/prometheus/prometheus/blob/main/CHANGELOG.md) - [Commits](prometheus/prometheus@v0.50.0...v0.50.1) --- updated-dependencies: - dependency-name: github.com/prometheus/prometheus dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore: move ProxyConfig type to v1 Related-to prometheus-operator#6301 Signed-off-by: Jayapriya Pai <[email protected]> * build(deps): bump github.com/prometheus/alertmanager Bumps [github.com/prometheus/alertmanager](https://github.com/prometheus/alertmanager) from 0.26.0 to 0.27.0. - [Release notes](https://github.com/prometheus/alertmanager/releases) - [Changelog](https://github.com/prometheus/alertmanager/blob/main/CHANGELOG.md) - [Commits](prometheus/alertmanager@v0.26.0...v0.27.0) --- updated-dependencies: - dependency-name: github.com/prometheus/alertmanager dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * update prometheus version Signed-off-by: dongjiang1989 <[email protected]> * build(deps): bump github.com/prometheus/client_golang Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.18.0 to 1.19.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.19.0/CHANGELOG.md) - [Commits](prometheus/client_golang@v1.18.0...v1.19.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * update alertmanager version Signed-off-by: dongjiang1989 <[email protected]> * [FIX] scrape class regression (prometheus-operator#6345) Signed-off-by: Nicolas Takashi <[email protected]> * build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](stretchr/testify@v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * AlertmanagerConfig CRD: fix MonthRange validation regex * AlertmanagerConfig CRD: improve MonthRange unit tests * docs: correct example of scrapeConfigSelector in scrapeConfig doc In the docs for scrapeConfig, the example of scrapeConfig in prometheus CR was incorrect. In prometheus CR, in scrapeConfigSelector, there should be matchLabels and then the scrapeConfig label. fixes prometheus-operator#6350 Signed-off-by: Dhruv Bindra <[email protected]> * chores: change string type to duration type (prometheus-operator#6337) * change string to duration --------- Signed-off-by: dongjiang1989 <[email protected]> * Prepare 0.72 release (prometheus-operator#6329) Signed-off-by: Arthur Silva Sens <[email protected]> * build(deps): bump golang.org/x/net from 0.21.0 to 0.22.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.21.0 to 0.22.0. - [Commits](golang/net@v0.21.0...v0.22.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Bump prometheus/common Signed-off-by: Arthur Silva Sens <[email protected]> * feat: support --enable-feature argument in Alertmanager CRD (prometheus-operator#6152) * feat: support alertmanager --enable-feature argument this will expose more Alertmanager configuration parameters to users of the Alertmanager CRD. Signed-off-by: Yonatan Sasson <[email protected]> * feat: support sample_age_limit for QueueConfig (prometheus-operator#6326) * add SampleAgeLimit Signed-off-by: dongjiang1989 <[email protected]> * update by code review Signed-off-by: dongjiang1989 <[email protected]> * change string type to duration Signed-off-by: dongjiang1989 <[email protected]> * update make generate Signed-off-by: dongjiang1989 <[email protected]> * update promcfg_test unittest Signed-off-by: dongjiang1989 <[email protected]> * update some nits by code review Signed-off-by: dongjiang1989 <[email protected]> --------- Signed-off-by: dongjiang1989 <[email protected]> * feat: add bodySizeLimit to service and pod monitors (prometheus-operator#6349) * feat: add EnforcedBodySizeLimit to service and monitor * chore: bump to golangci-lint v1.56.2 (prometheus-operator#6384) * update golangci lint version --------- Signed-off-by: dongjiang1989 <[email protected]> * [fix] test * thanos: add support for web configuration to the ThanosRuler CRD (prometheus-operator#6278) * thanos: add support for web configuration to the ThanosRuler CRD This enable us to set tls for thanos ruler Fixes prometheus-operator#6157 * [CHORE] normalizing tls structs monitor objects Signed-off-by: Nicolas Takashi <[email protected]> * build(deps): bump google.golang.org/protobuf in /scripts Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump google.golang.org/protobuf in /pkg/client Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Documentation: adding link for other supported service discoveries prometheus-operator#6382 (prometheus-operator#6391) * build(deps): bump the k8s-libs group with 5 updates Bumps the k8s-libs group with 5 updates: | Package | From | To | | --- | --- | --- | | [k8s.io/api](https://github.com/kubernetes/api) | `0.29.2` | `0.29.3` | | [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.29.2` | `0.29.3` | | [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.29.2` | `0.29.3` | | [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.29.2` | `0.29.3` | | [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.29.2` | `0.29.3` | Updates `k8s.io/api` from 0.29.2 to 0.29.3 - [Commits](kubernetes/api@v0.29.2...v0.29.3) Updates `k8s.io/apiextensions-apiserver` from 0.29.2 to 0.29.3 - [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases) - [Commits](kubernetes/apiextensions-apiserver@v0.29.2...v0.29.3) Updates `k8s.io/apimachinery` from 0.29.2 to 0.29.3 - [Commits](kubernetes/apimachinery@v0.29.2...v0.29.3) Updates `k8s.io/client-go` from 0.29.2 to 0.29.3 - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](kubernetes/client-go@v0.29.2...v0.29.3) Updates `k8s.io/component-base` from 0.29.2 to 0.29.3 - [Commits](kubernetes/component-base@v0.29.2...v0.29.3) --- updated-dependencies: - dependency-name: k8s.io/api dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-libs - dependency-name: k8s.io/apiextensions-apiserver dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-libs - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-libs - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-libs - dependency-name: k8s.io/component-base dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s-libs ... Signed-off-by: dependabot[bot] <[email protected]> * Regenerate documentation Signed-off-by: Simon Pasquier <[email protected]> * chore: add slashpai as v0.73 release shepherd Signed-off-by: Jayapriya Pai <[email protected]> * [fix] test * Add extra relabelings to scrape classes (prometheus-operator#6379) * [fix] - message * Controller id implementation to avoid errors with multiple operators (prometheus-operator#6319) Signed-off-by: Mario Fernandez <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * fix: enqueue in updating secret * Add extra context to warnings (prometheus-operator#6410) * Add extra context to warnings * fix spread operator * ScrapeConfig CRD: refactor ProxyConfig struct embedding (prometheus-operator#6401) * ScrapeConfig CRD: refactor ProxyConfig embedding to v1.ProxyConfig instead of *v1.ProxyConfig * Documentation: Remove experimental tag from sharding option in Prometheus CRD (prometheus-operator#6409) This commit changes the docs so that future prometheus operator users know the option is out of experimental. The sharding option is used for many years by multiple contributers. Co-authored-by: Gijs Entius <[email protected]> * Update MAINTAINERS.md (prometheus-operator#6413) Moving from Nicolas from triage to Maintainer * build(deps): bump github.com/prometheus/common from 0.50.0 to 0.51.0 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.50.0 to 0.51.0. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.50.0...v0.51.0) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump dependabot/fetch-metadata from 1 to 2 (prometheus-operator#6420) Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1 to 2. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](dependabot/fetch-metadata@v1...v2) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Signed-off-by: deterclosed <[email protected]> chore: remove repetitive words Signed-off-by: deterclosed <[email protected]> * build(deps): bump github.com/prometheus/common from 0.51.0 to 0.51.1 Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.51.0 to 0.51.1. - [Release notes](https://github.com/prometheus/common/releases) - [Commits](prometheus/common@v0.51.0...v0.51.1) --- updated-dependencies: - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Document PodMonitor, Probe and Thanos sidecar as stable These 3 features have been there for so long that we agreed to remove the experimental warning on them. This commit also makes the wording more consistent for all fields which are still considered experimental (either from the operator standpoint or from Prometheus standpoint). Signed-off-by: Simon Pasquier <[email protected]> * Fix: ScrapeConfigs Selection Issue Across Different Namespaces (prometheus-operator#6390) * Add testing for scrapeconfig and prometheus CR in different namespaces * fix: wrap panic for scheme * build(deps): bump github.com/distribution/reference from 0.5.0 to 0.6.0 Bumps [github.com/distribution/reference](https://github.com/distribution/reference) from 0.5.0 to 0.6.0. - [Release notes](https://github.com/distribution/reference/releases) - [Commits](distribution/reference@v0.5.0...v0.6.0) --- updated-dependencies: - dependency-name: github.com/distribution/reference dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Docs: Include Local Deployment in CONTRIBUTING.md (prometheus-operator#6388) * Update CONTRIBUTING.md to include local deployment section * Bump prometheus to 0.51.1 Signed-off-by: Arthur Silva Sens <[email protected]> * Kubelet: Add a flag to set node address priority (prometheus-operator#6377) * Add a flag to set node address priority Currently internal node addresses are prioritized over external addresses. This adds a flag to allow users to freely set node address priority (internal/external). This is helpful for use cases where node internal addresses exist but are not routable. Fixes prometheus-operator#3247 * Refactor operators event handler (prometheus-operator#6416) * chore: Refactor controller's event handler to reduce code duplication Signed-off-by: Mohammad Jamshidi <[email protected]> --------- Signed-off-by: Mohammad Jamshidi <[email protected]> * Fixed the link in Prometheus Agent page * feat(xds): Add support eureka service discovery to the ScrapeConfig CRD (prometheus-operator#6408) feat: add eureka sd config Signed-off-by: dongjiang1989 <[email protected]> * Update http_sd description for clarity (prometheus-operator#6454) * chore: bump go dependencies before release Signed-off-by: Jayapriya Pai <[email protected]> * chore: update default prometheus version Signed-off-by: Jayapriya Pai <[email protected]> * Update kakkoyun's affiliation * feat(xds): Add Kuma service discovery to the ScrapeConfig CRD (prometheus-operator#6327) * support kuma xds Signed-off-by: dongjiang1989 <[email protected]> * Add DockerSD support for ScrapeConfig CRD Add DockerSDConfig struct and array of DockerSDConfig to the ScrapeConfig struct Add code block placeholder to process DockerSDConfig Add Code-gen for the updated scrapeconfig with DockerSDConfig Revert "Add Code-gen for the updated scrapeconfig with DockerSDConfig" This reverts commit f7d2ff9. Edit DockerSDConfig struct Add Code-gen for the updated DockerSDConfig Add processing code block for DockerSDConfig in the ScrapeConfig CRD Update processing filters in DockerSDConfig Add tests for DockerSDConfig Add missing host field to DockerSDConfig struct and remove TODOs in promcfg.go Update promcfg.go to append host field to the DockerSDConfiguration Update autogen code and perform formatting fixes Update DockerSD tests to include Host field Add resource_selector validation and tests for Docker SD configs Update tests according to host variable, tests pass Add DockerFilter type for the filters field in DockerSDConfigs Add code-gen for DockerFilter type update Update promcfg test and test data for DockerFilter type Update DockerFilter Format code Update pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go Co-authored-by: Jayapriya Pai <[email protected]> Add validation for host field Add relevant comments and remove unrelated debug code Code-gen and format code Revert "Change git mod file" This reverts commit 232816f. Change from pointer to ProxyConfig to variable reference Generate Code and Format Format code Refactor test cases for Docker SD One test case each for OAuth, BasicAuth and Authorization fields. Also includes other fields like TLSConfig, hostnetworkinghost etc. Format code * feat: added a check to determine if thanos support the '--prometheus.http-client' flag (prometheus-operator#6448) * feat: added a check to determine if thanos support the '--prometheus.http-client' flag * Check if controllers' CRDs are provided and manageable by operator (prometheus-operator#6351) * operator cmd: check if controllers' crds are supplied Only start each controller when its crd is provided, and fail the operator if no controllers start. Fixes prometheus-operator#6140 * Nit * Resolve reviews * chore: Add checks for selectors in KubernetesSDConfig (prometheus-operator#6177) chore: test added rfac: kubernetes sd role chore: cofig.Role to lowercase rfac: unit_test role_consts * fix: add proxyURL validation for smon,pmon and probe If a user specify a non-parsable proxyUrl it was not validated/rejected but will break reloading and restarting of Prometheus due to possible invalid syntax. This commit adds validation and rejects the invalid ones Signed-off-by: Jayapriya Pai <[email protected]> * feat: add support for Hetzner SD in ScrapeConfig CRD (prometheus-operator#6436) * ScrapeConfig CRD: add HetznerSDConfig API definition & include it under ScrapeConfig spec * feat(kuma): Add validation for kuma server (prometheus-operator#6465) Signed-off-by: dongjiang1989 <[email protected]> Co-authored-by: Jayapriya Pai <[email protected]> * relabel config: allow empty separator Allow empty separator in relabel config. This is corresponding to Prometheus' relabel config. Fixes prometheus-operator#5003 * chore: cut v0.73.0 Signed-off-by: Jayapriya Pai <[email protected]> * fix: log deprecated bearer token fields at debug level Signed-off-by: Simon Pasquier <[email protected]> * chore: cut v0.73.1 Signed-off-by: Jayapriya Pai <[email protected]> * fix: register k8s metrics controller-runtime also calls `metrics.Register()` during init and this function can be called only once. To ensure that the k8s client metrics get updated, the global variables need to be set again by the operator. https://github.com/kubernetes-sigs/controller-runtime/blob/67b27f27e514bd9ac4cf9a2d84dec089ece95bf7/pkg/metrics/client_go_adapter.go#L42-L55 https://github.com/kubernetes/client-go/blob/aa7909e7d7c0661792ba21b9e882f3cd6ad0ce53/tools/metrics/metrics.go#L129-L170 Signed-off-by: Simon Pasquier <[email protected]> * fix: ScrapeClass TLSConfig nil pointer exception (prometheus-operator#6507) Signed-off-by: Simon Pasquier <[email protected]> * chore:cut v0.73.2 Signed-off-by: Jayapriya Pai <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> * Fix errors and go versions in build scripts Signed-off-by: Coleen Iona Quadros <[email protected]> * Run make --always-make format generate Signed-off-by: Coleen Iona Quadros <[email protected]> * lint Signed-off-by: Coleen Iona Quadros <[email protected]> * remove duplicate code Signed-off-by: Coleen Iona Quadros <[email protected]> --------- Signed-off-by: Arthur Silva Sens <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Jayapriya Pai <[email protected]> Signed-off-by: Pranshu Srivastava <[email protected]> Signed-off-by: dongjiang1989 <[email protected]> Signed-off-by: adinhodovic <[email protected]> Signed-off-by: machine424 <[email protected]> Signed-off-by: Nicolas Takashi <[email protected]> Signed-off-by: Dhruv Bindra <[email protected]> Signed-off-by: Yonatan Sasson <[email protected]> Signed-off-by: Mario Fernandez <[email protected]> Signed-off-by: deterclosed <[email protected]> Signed-off-by: Mohammad Jamshidi <[email protected]> Signed-off-by: Coleen Iona Quadros <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> Co-authored-by: Arthur Silva Sens <[email protected]> Co-authored-by: Hervé Nicol <[email protected]> Co-authored-by: Herve Nicol <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Jayapriya Pai <[email protected]> Co-authored-by: Pranshu Srivastava <[email protected]> Co-authored-by: dongjiang <[email protected]> Co-authored-by: Arthur Silva Sens <[email protected]> Co-authored-by: adinhodovic <[email protected]> Co-authored-by: Jimmy Zelinskie <[email protected]> Co-authored-by: Sam Kirsch <[email protected]> Co-authored-by: Michael Borens <[email protected]> Co-authored-by: Prajjwal <[email protected]> Co-authored-by: DeamonMV <[email protected]> Co-authored-by: Ayoub Mrini <[email protected]> Co-authored-by: machine424 <[email protected]> Co-authored-by: Nicolas Takashi <[email protected]> Co-authored-by: Mouad Elhaouari <[email protected]> Co-authored-by: Dhruv Bindra <[email protected]> Co-authored-by: Yonatan Sasson <[email protected]> Co-authored-by: Mohammad <[email protected]> Co-authored-by: Helia Barroso <[email protected]> Co-authored-by: Seriki Ayodele <[email protected]> Co-authored-by: Quentin Bisson <[email protected]> Co-authored-by: Mario Fernandez Herrero <[email protected]> Co-authored-by: Mouad Elhaouari <[email protected]> Co-authored-by: Gijs Entius <[email protected]> Co-authored-by: Gijs Entius <[email protected]> Co-authored-by: deterclosed <[email protected]> Co-authored-by: M Viswanath Sai <[email protected]> Co-authored-by: googs1025 <[email protected]> Co-authored-by: Ha Anh Vu <[email protected]> Co-authored-by: Ashwin <[email protected]> Co-authored-by: Pavan Gudiwada <[email protected]> Co-authored-by: Kemal Akkoyun <[email protected]> Co-authored-by: mviswanathsai <[email protected]> Co-authored-by: Matheus Sousa <[email protected]> Co-authored-by: yash <[email protected]> Co-authored-by: haanhvu <[email protected]>
Description
Fixes #3255
This PR allows users of the operator to ensure a set of custom relabelings to all their pod/service monitors.
This superseds this PR #5978
Notable examples would be adding the node label using __meta_kubernetes_pod_node_name but it could be used for other organization purposes such as:
Type of change
What type of changes does your code introduce to the Prometheus operator? Put an
x
in the box that apply.CHANGE
(fix or feature that would cause existing functionality to not work as expected)FEATURE
(non-breaking change which adds functionality)BUGFIX
(non-breaking change which fixes an issue)ENHANCEMENT
(non-breaking change which improves existing functionality)NONE
(if none of the other choices apply. Example, tooling, build system, CI, docs, etc.)Verification
Please check the Prometheus-Operator testing guidelines for recommendations about automated tests.
Changelog entry
Please put a one-line changelog entry below. This will be copied to the changelog file during the release process.