-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
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!
@@ -1795,4 +1795,10 @@ type ScrapeClass struct { | |||
// TLSConfig section for scrapes. | |||
// +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
@@ -469,7 +474,7 @@ func (rs *ResourceSelector) SelectPodMonitors(ctx context.Context, listFn ListAl | |||
} | |||
|
|||
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
@@ -183,12 +183,12 @@ func (yr YearRange) Parse() (*ParsedRange, error) { | |||
|
|||
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
scrapeClasses := make(map[string]*monitoringv1.ScrapeClass, len(cpf.ScrapeClasses)) | ||
defaultScrapeClass := "" | ||
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 { |
@@ -120,7 +120,7 @@ func (rs *ResourceSelector) SelectServiceMonitors(ctx context.Context, listFn Li | |||
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?
@@ -53,3 +58,16 @@ func (b *ScrapeClassApplyConfiguration) WithTLSConfig(value *TLSConfigApplyConfi | |||
b.TLSConfig = value | |||
return b | |||
} | |||
|
|||
// 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
scrapeClasses := make(map[string]*monitoringv1.ScrapeClass, len(cpf.ScrapeClasses)) | ||
defaultScrapeClass := "" | ||
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 { |
@@ -120,7 +120,7 @@ func (rs *ResourceSelector) SelectServiceMonitors(ctx context.Context, listFn Li | |||
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 <arthur.sens@coralogix.com> * Add support for enableHttp2 in prometheus remotewrite (prometheus-operator#6192) --------- Co-authored-by: Herve Nicol <12008875+hervenicol@users.noreply.github.com> * chore: refactor generateScrapeConfig() From a comment while reviewing prometheus-operator#6153. Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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] <support@github.com> * 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 <spasquie@redhat.com> * 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] <support@github.com> * Add proposal for Shard Autoscaling (prometheus-operator#5961) * Add proposal for automated sharding Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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 <arthur.sens@coralogix.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * chore: refactor ShardedSecret This commit reorganizes the code makinguse of `SharedSecret` to reduce duplication. Signed-off-by: Simon Pasquier <spasquie@redhat.com> * Add testing guidelines (prometheus-operator#5903) * Add testing guidelines Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Add separate Makefile targets for e2e-tests Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Apply suggestions from code review Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * 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 <arthur.sens@coralogix.com> * Fix godot issues Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Prevent mistakes with testify lib (prometheus-operator#6211) * Prevent mistakes with testify By enabling testifylint Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Fix testifylint issues Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Prevent unnecessary type conversions (prometheus-operator#6210) * Prevent unnecessary type conversions By enabling the unconvert linter Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Fix unconvert issues Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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] <support@github.com> * 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 <slashpai9@gmail.com> * 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 <rexagod@gmail.com> * Decouple event recorder from operator metrics Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Only emit events if permissions were given Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Keep operator name consistent across telemetry Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Address comments Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Pranshu Srivastava <rexagod@gmail.com> Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> Co-authored-by: Pranshu Srivastava <rexagod@gmail.com> * 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 <dongjiang1989@126.com> * Add scale subresource to Prometheus/PrometheusAgent (prometheus-operator#5962) * Add scale subresource to Prometheus/PrometheusAgent Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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 <arthur.sens@coralogix.com> * Create function to generate selector labels Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Add UpdateScale and GetScale methods (prometheus-operator#6197) Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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 <spasquie@redhat.com> * 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 <slashpai9@gmail.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * chore: refactor creation of the TLS assets volume Signed-off-by: Simon Pasquier <spasquie@redhat.com> * chore: Add ArthurSens as 0.72 shepherd Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * chore: cut v0.71.0 (prometheus-operator#6223) * chore: cut v0.71.0 --------- Signed-off-by: Simon Pasquier <spasquie@redhat.com> Co-authored-by: Jayapriya Pai <slashpai9@gmail.com> * chore: fix golangci-lint `Files Exists` errors (prometheus-operator#6221) * fix golangci-lint files exists errors --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * chore: refactor logger and eventrecorder creations (prometheus-operator#6225) Signed-off-by: Simon Pasquier <spasquie@redhat.com> * setting targeted go version Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * Enable revive (prometheus-operator#6207) * Enable revive linter in test/framework Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Fix revive issues Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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] <support@github.com> * 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] <support@github.com> * feat(scrapeConfigs): Add sharding to scrapeConfigs Signed-off-by: adinhodovic <hodovicadin@gmail.com> * chore: remove proxyconfig code duplication Fixes prometheus-operator#6218 Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * chore: fix makefile targets Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * chore: bump to Prometheus v2.49.1 (prometheus-operator#6234) * update prometheus version --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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] <support@github.com> * feat: support `enable_compression` for ScrapeConfig (prometheus-operator#6236) * support enable_compression setting --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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] <support@github.com> * 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 <slashpai9@gmail.com> * 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 <dongjiang1989@126.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * chore: bump k8s dependencies to v1.29.1 Signed-off-by: Simon Pasquier <spasquie@redhat.com> * feat: Add support for NS records to DNSSDConfig (prometheus-operator#6240) * update dns sd config --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * chore: cut v0.71.1 Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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] <support@github.com> * 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] <support@github.com> * 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] <support@github.com> * fix: azuresdconfig typo (prometheus-operator#6259) * fix: typo on AuthenticationMethod check * chore: cut v0.71.2 Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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] <support@github.com> * 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] <support@github.com> * 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] <support@github.com> * chore: update remote-write tests Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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 <spasquie@redhat.com> * feat: support added scrape_protocols to Pod/Service monitors (prometheus-operator#6268) * support scrape_protocols to podmonitor/servicemonitor --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * chore: add e2e test detecting the issue Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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 <spasquie@redhat.com> * add slashpai to maintainers (prometheus-operator#6280) Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * chore: update Kind version to v0.21.0 This commit also bumps the Kubernetes version to v1.29.1. Signed-off-by: Simon Pasquier <spasquie@redhat.com> * update go version 1.22 Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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] <support@github.com> * 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] <support@github.com> * 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] <support@github.com> * fix: remove deprecation on service monitor's targetPort Closes prometheus-operator#6269 Signed-off-by: Simon Pasquier <spasquie@redhat.com> * 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] <support@github.com> * 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] <support@github.com> * 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 <amrini@redhat.com> Signed-off-by: Simon Pasquier <spasquie@redhat.com> * test: add TestPartialObjectMetadataStripOnDeletedFinalStateUnknown Co-authored-by: machine424 <ayoubmrini424@gmail.com> Signed-off-by: Simon Pasquier <spasquie@redhat.com> Signed-off-by: machine424 <ayoubmrini424@gmail.com> --------- Signed-off-by: Simon Pasquier <spasquie@redhat.com> Signed-off-by: machine424 <ayoubmrini424@gmail.com> Co-authored-by: Ayoub Mrini <amrini@redhat.com> Co-authored-by: machine424 <ayoubmrini424@gmail.com> * 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] <support@github.com> * 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] <support@github.com> * chore: update Kubernetes to v1.29.2 Signed-off-by: Simon Pasquier <spasquie@redhat.com> * chore: switch example app image Signed-off-by: Simon Pasquier <spasquie@redhat.com> * Update go dependencies before release (prometheus-operator#6315) * Update go dependencies before release Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * make generate Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * docs: correct slashpai slack id Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * 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] <support@github.com> * Update default Thanos version (prometheus-operator#6317) * Update default Thanos version Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Update unit tests depending on DefaultThanosVersion Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * Update Default Prometheus version Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * feat: adding scrape class (prometheus-operator#6199) * feat: adding scrape class Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com> * Update pkg/apis/monitoring/v1/prometheus_types.go Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> * Update pkg/prometheus/promcfg.go Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> * Update pkg/prometheus/store.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/resource_selector.go Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> * Update pkg/prometheus/store.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/resource_selector.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/resource_selector.go Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/server/operator.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update pkg/prometheus/promcfg.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Update prometheus_types.go Co-authored-by: Simon Pasquier <spasquie@redhat.com> --------- Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com> Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * fix: update kubernetes slack link Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * 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] <support@github.com> * chore: move ProxyConfig type to v1 Related-to prometheus-operator#6301 Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * 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] <support@github.com> * update prometheus version Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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] <support@github.com> * update alertmanager version Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * [FIX] scrape class regression (prometheus-operator#6345) Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com> * 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] <support@github.com> * 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 <ddbindra@gmail.com> * chores: change string type to duration type (prometheus-operator#6337) * change string to duration --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * Prepare 0.72 release (prometheus-operator#6329) Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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] <support@github.com> * 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] <support@github.com> * Bump prometheus/common Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> * 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 <yonatanxd7@gmail.com> * feat: support sample_age_limit for QueueConfig (prometheus-operator#6326) * add SampleAgeLimit Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * update by code review Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * change string type to duration Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * update make generate Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * update promcfg_test unittest Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * update some nits by code review Signed-off-by: dongjiang1989 <dongjiang1989@126.com> --------- Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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 <dongjiang1989@126.com> * [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 <nicolas.tcs@hotmail.com> * 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] <support@github.com> * 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] <support@github.com> * 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] <support@github.com> * Regenerate documentation Signed-off-by: Simon Pasquier <spasquie@redhat.com> * chore: add slashpai as v0.73 release shepherd Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * [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 <mariofer@redhat.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * 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 <in648ent@Gijss-MacBook-Pro.local> * 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] <support@github.com> * 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] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Signed-off-by: deterclosed <fliter@outlook.com> chore: remove repetitive words Signed-off-by: deterclosed <fliter@outlook.com> * 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] <support@github.com> * 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 <spasquie@redhat.com> * 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] <support@github.com> * 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 <arthur.sens@coralogix.com> * 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 <jamshidi.m799@gmail.com> --------- Signed-off-by: Mohammad Jamshidi <jamshidi.m799@gmail.com> * 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 <dongjiang1989@126.com> * Update http_sd description for clarity (prometheus-operator#6454) * chore: bump go dependencies before release Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * chore: update default prometheus version Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * Update kakkoyun's affiliation * feat(xds): Add Kuma service discovery to the ScrapeConfig CRD (prometheus-operator#6327) * support kuma xds Signed-off-by: dongjiang1989 <dongjiang1989@126.com> * 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 <slashpai9@gmail.com> 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 <slashpai9@gmail.com> * 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 <dongjiang1989@126.com> Co-authored-by: Jayapriya Pai <slashpai9@gmail.com> * 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 <slashpai9@gmail.com> * fix: log deprecated bearer token fields at debug level Signed-off-by: Simon Pasquier <spasquie@redhat.com> * chore: cut v0.73.1 Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> * 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 <spasquie@redhat.com> * fix: ScrapeClass TLSConfig nil pointer exception (prometheus-operator#6507) Signed-off-by: Simon Pasquier <spasquie@redhat.com> * chore:cut v0.73.2 Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> * Fix errors and go versions in build scripts Signed-off-by: Coleen Iona Quadros <coleen.quadros27@gmail.com> * Run make --always-make format generate Signed-off-by: Coleen Iona Quadros <coleen.quadros27@gmail.com> * lint Signed-off-by: Coleen Iona Quadros <coleen.quadros27@gmail.com> * remove duplicate code Signed-off-by: Coleen Iona Quadros <coleen.quadros27@gmail.com> --------- Signed-off-by: Arthur Silva Sens <arthur.sens@coralogix.com> Signed-off-by: Simon Pasquier <spasquie@redhat.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Jayapriya Pai <slashpai9@gmail.com> Signed-off-by: Pranshu Srivastava <rexagod@gmail.com> Signed-off-by: dongjiang1989 <dongjiang1989@126.com> Signed-off-by: adinhodovic <hodovicadin@gmail.com> Signed-off-by: machine424 <ayoubmrini424@gmail.com> Signed-off-by: Nicolas Takashi <nicolas.tcs@hotmail.com> Signed-off-by: Dhruv Bindra <ddbindra@gmail.com> Signed-off-by: Yonatan Sasson <yonatanxd7@gmail.com> Signed-off-by: Mario Fernandez <mariofer@redhat.com> Signed-off-by: deterclosed <fliter@outlook.com> Signed-off-by: Mohammad Jamshidi <jamshidi.m799@gmail.com> Signed-off-by: Coleen Iona Quadros <coleen.quadros27@gmail.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> Co-authored-by: Arthur Silva Sens <arthursens2005@gmail.com> Co-authored-by: Hervé Nicol <hervenicol@users.noreply.github.com> Co-authored-by: Herve Nicol <12008875+hervenicol@users.noreply.github.com> 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 <slashpai9@gmail.com> Co-authored-by: Pranshu Srivastava <rexagod@gmail.com> Co-authored-by: dongjiang <dongjiang1989@126.com> Co-authored-by: Arthur Silva Sens <arthur.sens@coralogix.com> Co-authored-by: adinhodovic <hodovicadin@gmail.com> Co-authored-by: Jimmy Zelinskie <jimmy@zelinskie.com> Co-authored-by: Sam Kirsch <SamKirsch10@users.noreply.github.com> Co-authored-by: Michael Borens <appo.esl@gmail.com> Co-authored-by: Prajjwal <prajjwaldimri@hotmail.com> Co-authored-by: DeamonMV <deamonmv@gmail.com> Co-authored-by: Ayoub Mrini <amrini@redhat.com> Co-authored-by: machine424 <ayoubmrini424@gmail.com> Co-authored-by: Nicolas Takashi <nicolas.tcs@hotmail.com> Co-authored-by: Mouad Elhaouari <jm_elhaouari@esi.dz> Co-authored-by: Dhruv Bindra <dbindra@asu.edu> Co-authored-by: Yonatan Sasson <107778824+Yuni-sa@users.noreply.github.com> Co-authored-by: Mohammad <jamshidi.m799@gmail.com> Co-authored-by: Helia Barroso <helia.barroso@hotmail.com> Co-authored-by: Seriki Ayodele <serikiayodele@gmail.com> Co-authored-by: Quentin Bisson <quentin@giantswarm.io> Co-authored-by: Mario Fernandez Herrero <mariofer@redhat.com> Co-authored-by: Mouad Elhaouari <80008527+mouad-eh@users.noreply.github.com> Co-authored-by: Gijs Entius <g.m.entius@gmail.com> Co-authored-by: Gijs Entius <in648ent@Gijss-MacBook-Pro.local> Co-authored-by: deterclosed <fliter@outlook.com> Co-authored-by: M Viswanath Sai <110663831+mviswanathsai@users.noreply.github.com> Co-authored-by: googs1025 <googs1025@gmail.com> Co-authored-by: Ha Anh Vu <75315486+haanhvu@users.noreply.github.com> Co-authored-by: Ashwin <ashwinsriram11@gmail.com> Co-authored-by: Pavan Gudiwada <25551553+pavangudiwada@users.noreply.github.com> Co-authored-by: Kemal Akkoyun <kakkoyun@users.noreply.github.com> Co-authored-by: mviswanathsai <mviswanath.sai.met21@itbhu.ac.in> Co-authored-by: Matheus Sousa <73663610+MateSousa@users.noreply.github.com> Co-authored-by: yash <yp969803@gmail.com> Co-authored-by: haanhvu <haanh6594@gmail.com>
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.