Skip to content
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

QuentinBisson
Copy link
Contributor

@QuentinBisson QuentinBisson commented Mar 8, 2024

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:

- sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
  action: "replace"
  targetLabel: app

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.

Allow addition of extra relabelings to all scrape classes

@QuentinBisson QuentinBisson requested a review from a team as a code owner March 8, 2024 22:25
@QuentinBisson
Copy link
Contributor Author

@nicolastakashi and @ArthurSens now that scrape classes are finally out, could you check this one? :)

@QuentinBisson QuentinBisson force-pushed the add-extra-relabelings-to-scrape-class branch from 89fc641 to 1e5857f Compare March 8, 2024 22:55
@QuentinBisson QuentinBisson force-pushed the add-extra-relabelings-to-scrape-class branch from 1e5857f to 0f1009a Compare March 10, 2024 13:49
Copy link
Contributor

@simonpasquier simonpasquier left a 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
Copy link
Contributor

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.

Copy link
Contributor Author

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"`
Copy link
Contributor

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.

Copy link
Contributor Author

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

Copy link
Contributor

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.

Copy link
Member

@ArthurSens ArthurSens left a 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"`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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?

Copy link
Contributor Author

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 :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's now renamed :)

Comment on lines 425 to 435
scrapeClassName := cg.defaultScrapeClassName

if scrapeClass != nil {
scrapeClassName = scrapeClass.Name
}

scrapeClass, found := cg.scrapeClasses[scrapeClassName]

if !found {
return nil
}
Copy link
Member

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 🤔

Copy link
Contributor Author

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

scrapeClass := cg.getScrapeClassOrDefault(m.Spec.ScrapeClassName)
at the top of all configured resources and it returns nil if there is no scrape class so I simplified this PR's code and maybe the same should be done for the existing fields

Comment on lines 1038 to 1043
// Add user extra relabelings if specified.
extraRelabelings := cg.GetScrapeClassExtraRelabelings(scrapeClass)
if len(extraRelabelings) > 0 {
relabelings = append(relabelings, generateRelabelConfig(extraRelabelings)...)
}

Copy link
Member

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?

Copy link
Contributor Author

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)

Copy link
Contributor

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.

Copy link
Contributor Author

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

Copy link
Contributor

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.

@QuentinBisson
Copy link
Contributor Author

Thanks for your really fast reviews. I tried to adjust to fix your comments :) Let me know how I can improve

Copy link
Contributor

@simonpasquier simonpasquier left a 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.

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
}

@QuentinBisson
Copy link
Contributor Author

Validation is added

Comment on lines 349 to 353
if c.Relabelings != nil {
if err := validateRelabelConfigs(p, c.Relabelings); err != nil {
return fmt.Errorf("scrapeClass %q relabelings: %w", *sc, err)
}
}
Copy link
Contributor

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.

Copy link
Contributor Author

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 ?

Copy link
Contributor Author

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?

@@ -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))
Copy link
Contributor

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.

Copy link
Contributor Author

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

Copy link
Contributor Author

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 ?

Copy link
Contributor Author

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)
Copy link
Contributor Author

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

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 {
Copy link
Contributor Author

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?

Copy link
Contributor

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.

Suggested change
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) {
Copy link
Contributor Author

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?

Copy link
Contributor

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.
Copy link
Contributor Author

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

@QuentinBisson
Copy link
Contributor Author

@simonpasquier the e2e test failures looks to be a fluke. Is there a way to retest?

pkg/prometheus/promcfg.go Outdated Show resolved Hide resolved
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 {
Copy link
Contributor

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.

Suggested change
if scrapeClass.Relabelings != nil {

pkg/prometheus/promcfg.go Outdated Show resolved Hide resolved
pkg/prometheus/resource_selector.go Show resolved Hide resolved
@@ -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) {
Copy link
Contributor

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?

@simonpasquier
Copy link
Contributor

Thanks! This is almost there. Could you also a few more unit tests, esp. making sure that a default scrape class gets applied?

@QuentinBisson QuentinBisson force-pushed the add-extra-relabelings-to-scrape-class branch from 918e1c2 to 522a034 Compare March 16, 2024 13:35
@QuentinBisson QuentinBisson force-pushed the add-extra-relabelings-to-scrape-class branch from d8d3823 to 1d661b1 Compare March 16, 2024 13:46
@QuentinBisson QuentinBisson force-pushed the add-extra-relabelings-to-scrape-class branch from 827c208 to 7727b8c Compare March 16, 2024 14:10
@QuentinBisson
Copy link
Contributor Author

I hope it's better with the new tests :)

@nicolastakashi
Copy link
Contributor

Amazing progress 👏🏽
It looks great to me.

Copy link
Contributor

@simonpasquier simonpasquier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great!

@simonpasquier simonpasquier merged commit 877e578 into prometheus-operator:main Mar 19, 2024
17 checks passed
mviswanathsai pushed a commit to mviswanathsai/prometheus-operator that referenced this pull request Mar 22, 2024
openshift-merge-bot bot pushed a commit to stolostron/prometheus-operator that referenced this pull request May 22, 2024
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

how to add a customize metric relabelling for all Servicemonitor and PodMonitor
4 participants