Compare commits

...
30 Commits
Author SHA1 Message Date
55bb290076 retry failed nakadi requests and respect the rate limits (#862)
Signed-off-by: Belmin Bedak <belmin.bedak@zalando.de>
Co-authored-by: Belmin Bedak <belmin.bedak@zalando.de>
2026-02-20 14:20:02 +01:00
Martin LinkhorstandGitHub 70641827ce Merge pull request #869 from zalando-incubator/fix-nil-pointer
fix: Nil check Metric.Selector in MetricTypeName
2026-02-19 17:55:39 +01:00
Markus Wyrsch 99ca95588e fix: Nil check Metric.Selector in MetricTypeName
Signed-off-by: Markus Wyrsch <markus.wyrsch@zalando.de>
2026-02-19 16:11:46 +01:00
cc9952d66e fix: Only format if there is actual an error (#868)
* fix: Only format if there is actual an error

Signed-off-by: Markus Wyrsch <markus.wyrsch@zalando.de>

* small styling fixes

Signed-off-by: Martin Linkhorst <martin.linkhorst@zalando.de>

---------

Signed-off-by: Markus Wyrsch <markus.wyrsch@zalando.de>
Signed-off-by: Martin Linkhorst <martin.linkhorst@zalando.de>
Co-authored-by: Markus Wyrsch <markus.wyrsch@zalando.de>
Co-authored-by: Martin Linkhorst <martin.linkhorst@zalando.de>
2026-02-18 20:52:18 +01:00
Katyanna MouraandGitHub 58c6a56cbf Merge pull request #861 from zalando-incubator/dependabot/github_actions/github-actions-5b791d3f7c
Bump the github-actions group with 3 updates
2026-02-18 13:18:26 +01:00
Katyanna MouraandGitHub 9e3a1760f1 Merge pull request #866 from zalando-incubator/dependabot/go_modules/all-go-mod-patch-and-minor-cd0c2694b7
Bump the all-go-mod-patch-and-minor group with 7 updates
2026-02-18 13:18:14 +01:00
Jens HausherrandGitHub 0e52e076c1 Enable adding annotations to apiservice resources (#865)
Signed-off-by: Jens Hausherr <jens.hausherr@pflege.de>
2026-02-16 09:06:54 +01:00
dependabot[bot]andGitHub 18faf9c076 Bump the all-go-mod-patch-and-minor group with 7 updates
Bumps the all-go-mod-patch-and-minor group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/argoproj/argo-rollouts](https://github.com/argoproj/argo-rollouts) | `1.8.3` | `1.8.4` |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.34.3` | `0.34.4` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.34.3` | `0.34.4` |
| [k8s.io/apiserver](https://github.com/kubernetes/apiserver) | `0.34.3` | `0.34.4` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.34.3` | `0.34.4` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.34.3` | `0.34.4` |
| [k8s.io/metrics](https://github.com/kubernetes/metrics) | `0.34.3` | `0.34.4` |


Updates `github.com/argoproj/argo-rollouts` from 1.8.3 to 1.8.4
- [Release notes](https://github.com/argoproj/argo-rollouts/releases)
- [Changelog](https://github.com/argoproj/argo-rollouts/blob/master/CHANGELOG.md)
- [Commits](https://github.com/argoproj/argo-rollouts/compare/v1.8.3...v1.8.4)

Updates `k8s.io/api` from 0.34.3 to 0.34.4
- [Commits](https://github.com/kubernetes/api/compare/v0.34.3...v0.34.4)

Updates `k8s.io/apimachinery` from 0.34.3 to 0.34.4
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.34.3...v0.34.4)

Updates `k8s.io/apiserver` from 0.34.3 to 0.34.4
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.34.3...v0.34.4)

Updates `k8s.io/client-go` from 0.34.3 to 0.34.4
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.34.3...v0.34.4)

Updates `k8s.io/component-base` from 0.34.3 to 0.34.4
- [Commits](https://github.com/kubernetes/component-base/compare/v0.34.3...v0.34.4)

Updates `k8s.io/metrics` from 0.34.3 to 0.34.4
- [Commits](https://github.com/kubernetes/metrics/compare/v0.34.3...v0.34.4)

---
updated-dependencies:
- dependency-name: github.com/argoproj/argo-rollouts
  dependency-version: 1.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/api
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apiserver
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/client-go
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/component-base
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/metrics
  dependency-version: 0.34.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 06:32:11 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
170faf8809 Bump golang.org/x/oauth2 in the all-go-mod-patch-and-minor group (#863)
Bumps the all-go-mod-patch-and-minor group with 1 update: [golang.org/x/oauth2](https://github.com/golang/oauth2).


Updates `golang.org/x/oauth2` from 0.34.0 to 0.35.0
- [Commits](https://github.com/golang/oauth2/compare/v0.34.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.35.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-12 16:09:31 +01:00
dependabot[bot]andGitHub 419f75cf18 Bump the github-actions group with 3 updates
Bumps the github-actions group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-go](https://github.com/actions/setup-go) and [docker/login-action](https://github.com/docker/login-action).


Updates `actions/checkout` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v6.0.1...v6.0.2)

Updates `actions/setup-go` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v6.1.0...v6.2.0)

Updates `docker/login-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/5e57cd118135c172c3672efd75eb46360885c0ef...c94ce9fb468520275223c153574b00df6fe4bcc9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/setup-go
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-01 06:28:13 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0fe764be7c Bump the all-go-mod-patch-and-minor group across 1 directory with 6 updates (#859)
Bumps the all-go-mod-patch-and-minor group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.41.0` | `1.41.1` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.6` | `1.32.7` |
| [github.com/aws/aws-sdk-go-v2/service/sqs](https://github.com/aws/aws-sdk-go-v2) | `1.42.20` | `1.42.21` |
| [github.com/prometheus/common](https://github.com/prometheus/common) | `0.67.4` | `0.67.5` |
| [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) | `1.9.3` | `1.9.4` |
| [k8s.io/metrics](https://github.com/kubernetes/metrics) | `0.34.2` | `0.34.3` |



Updates `github.com/aws/aws-sdk-go-v2` from 1.41.0 to 1.41.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.0...v1.41.1)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.6 to 1.32.7
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.6...v1.32.7)

Updates `github.com/aws/aws-sdk-go-v2/service/sqs` from 1.42.20 to 1.42.21
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.42.20...service/sqs/v1.42.21)

Updates `github.com/prometheus/common` from 0.67.4 to 0.67.5
- [Release notes](https://github.com/prometheus/common/releases)
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/common/compare/v0.67.4...v0.67.5)

Updates `github.com/sirupsen/logrus` from 1.9.3 to 1.9.4
- [Release notes](https://github.com/sirupsen/logrus/releases)
- [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sirupsen/logrus/compare/v1.9.3...v1.9.4)

Updates `k8s.io/metrics` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/metrics/compare/v0.34.2...v0.34.3)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.41.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sqs
  dependency-version: 1.42.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/prometheus/common
  dependency-version: 0.67.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/sirupsen/logrus
  dependency-version: 1.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/metrics
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 14:35:22 +01:00
Katyanna MouraandGitHub 6a245b7e1e Merge pull request #854 from zalando-incubator/dependabot/go_modules/all-go-mod-patch-and-minor-dfce17d494
Bump the all-go-mod-patch-and-minor group across 1 directory with 13 updates
2026-01-02 10:23:08 +01:00
Katyanna MouraandGitHub 7a4d08cd77 Merge pull request #856 from zalando-incubator/dependabot/github_actions/github-actions-20d51ea382
Bump the github-actions group with 2 updates
2026-01-02 10:20:52 +01:00
Katyanna MouraandGitHub 1a9eaeedcb Merge pull request #855 from zalando-incubator/enrich-error-with-metric
Enrich GetMetrics errors with metric identifier
2026-01-02 10:19:17 +01:00
Mikkel Oscar Lyderik Larsen 0227a3fa07 Update generated code
Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
2026-01-02 10:13:53 +01:00
dependabot[bot]andGitHub 430b2382f6 Bump the github-actions group with 2 updates
Bumps the github-actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action).


Updates `actions/checkout` from 5.0.1 to 6.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6.0.1)

Updates `docker/setup-buildx-action` from 3.11.1 to 3.12.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/e468171a9de216ec08956ac3ada2f0791b6bd435...8d2750c68a42422c14e847fe6c8ac0403b4cbd6f)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 06:18:28 +00:00
dependabot[bot]andGitHub f64cfab5c9 Bump the all-go-mod-patch-and-minor group across 1 directory with 13 updates
Bumps the all-go-mod-patch-and-minor group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.40.0` | `1.41.0` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.2` | `1.32.5` |
| [github.com/aws/aws-sdk-go-v2/service/sqs](https://github.com/aws/aws-sdk-go-v2) | `1.42.17` | `1.42.20` |
| [github.com/spf13/cobra](https://github.com/spf13/cobra) | `1.10.1` | `1.10.2` |
| [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.33.0` | `0.34.0` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.18.0` | `0.19.0` |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.34.2` | `0.34.3` |
| [k8s.io/apiserver](https://github.com/kubernetes/apiserver) | `0.34.2` | `0.34.3` |
| [k8s.io/metrics](https://github.com/kubernetes/metrics) | `0.33.6` | `0.33.7` |
| [sigs.k8s.io/custom-metrics-apiserver](https://github.com/kubernetes-sigs/custom-metrics-apiserver) | `1.33.0` | `1.34.0` |



Updates `github.com/aws/aws-sdk-go-v2` from 1.40.0 to 1.41.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.40.0...v1.41.0)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.2 to 1.32.5
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.2...v1.32.5)

Updates `github.com/aws/aws-sdk-go-v2/service/sqs` from 1.42.17 to 1.42.20
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.42.17...service/sqs/v1.42.20)

Updates `github.com/spf13/cobra` from 1.10.1 to 1.10.2
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.10.1...v1.10.2)

Updates `golang.org/x/oauth2` from 0.33.0 to 0.34.0
- [Commits](https://github.com/golang/oauth2/compare/v0.33.0...v0.34.0)

Updates `golang.org/x/sync` from 0.18.0 to 0.19.0
- [Commits](https://github.com/golang/sync/compare/v0.18.0...v0.19.0)

Updates `k8s.io/api` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/api/compare/v0.34.2...v0.34.3)

Updates `k8s.io/apimachinery` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.34.2...v0.34.3)

Updates `k8s.io/apiserver` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.34.2...v0.34.3)

Updates `k8s.io/client-go` from 0.34.2 to 0.34.3
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.34.2...v0.34.3)

Updates `k8s.io/component-base` from 0.34.2 to 0.34.3
- [Commits](https://github.com/kubernetes/component-base/compare/v0.34.2...v0.34.3)

Updates `k8s.io/metrics` from 0.33.6 to 0.33.7
- [Commits](https://github.com/kubernetes/metrics/compare/v0.33.6...v0.33.7)

Updates `sigs.k8s.io/custom-metrics-apiserver` from 1.33.0 to 1.34.0
- [Release notes](https://github.com/kubernetes-sigs/custom-metrics-apiserver/releases)
- [Changelog](https://github.com/kubernetes-sigs/custom-metrics-apiserver/blob/master/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/custom-metrics-apiserver/compare/v1.33.0...v1.34.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sqs
  dependency-version: 1.42.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/spf13/cobra
  dependency-version: 1.10.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: golang.org/x/sync
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/api
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apiserver
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/client-go
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/component-base
  dependency-version: 0.34.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/metrics
  dependency-version: 0.33.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: sigs.k8s.io/custom-metrics-apiserver
  dependency-version: 1.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 06:05:23 +00:00
Mikkel Oscar Lyderik Larsen 19b1706f6c Enrich GetMetrics errors with metric identifier
Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
2025-12-18 11:46:42 +01:00
Angel AlonsoandGitHub 335dc1ff56 Expose KubeClient QPS and Burst configs (#853)
Signed-off-by: Angel Alonso <angel.alonso@automattic.com>
2025-12-15 13:52:22 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
23f65af774 Bump the all-go-mod-patch-and-minor group across 1 directory with 11 updates (#850)
Bumps the all-go-mod-patch-and-minor group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.39.2` | `1.40.0` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.31.12` | `1.32.2` |
| [github.com/aws/aws-sdk-go-v2/service/sqs](https://github.com/aws/aws-sdk-go-v2) | `1.42.8` | `1.42.17` |
| [github.com/prometheus/common](https://github.com/prometheus/common) | `0.67.1` | `0.67.4` |
| [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.32.0` | `0.33.0` |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.34.1` | `0.34.2` |
| [k8s.io/apiserver](https://github.com/kubernetes/apiserver) | `0.34.1` | `0.34.2` |
| [k8s.io/metrics](https://github.com/kubernetes/metrics) | `0.33.5` | `0.33.6` |



Updates `github.com/aws/aws-sdk-go-v2` from 1.39.2 to 1.40.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.39.2...v1.40.0)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.31.12 to 1.32.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.12...v1.32.2)

Updates `github.com/aws/aws-sdk-go-v2/service/sqs` from 1.42.8 to 1.42.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ivs/v1.42.8...service/sqs/v1.42.17)

Updates `github.com/prometheus/common` from 0.67.1 to 0.67.4
- [Release notes](https://github.com/prometheus/common/releases)
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/common/compare/v0.67.1...v0.67.4)

Updates `golang.org/x/oauth2` from 0.32.0 to 0.33.0
- [Commits](https://github.com/golang/oauth2/compare/v0.32.0...v0.33.0)

Updates `k8s.io/api` from 0.34.1 to 0.34.2
- [Commits](https://github.com/kubernetes/api/compare/v0.34.1...v0.34.2)

Updates `k8s.io/apimachinery` from 0.34.1 to 0.34.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.34.1...v0.34.2)

Updates `k8s.io/apiserver` from 0.34.1 to 0.34.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.34.1...v0.34.2)

Updates `k8s.io/client-go` from 0.34.1 to 0.34.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.34.1...v0.34.2)

Updates `k8s.io/component-base` from 0.34.1 to 0.34.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.34.1...v0.34.2)

Updates `k8s.io/metrics` from 0.33.5 to 0.33.6
- [Commits](https://github.com/kubernetes/metrics/compare/v0.33.5...v0.33.6)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sqs
  dependency-version: 1.42.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/prometheus/common
  dependency-version: 0.67.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.33.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/api
  dependency-version: 0.34.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.34.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/apiserver
  dependency-version: 0.34.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/client-go
  dependency-version: 0.34.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/component-base
  dependency-version: 0.34.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: k8s.io/metrics
  dependency-version: 0.33.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 12:03:36 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a0263ae7f9 Bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#844)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.43.0 to 0.45.0.
- [Commits](https://github.com/golang/crypto/compare/v0.43.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 09:08:42 +01:00
Mikkel Oscar Lyderik LarsenandGitHub 90a0e28490 scheduled-scaling: Handle mili values (fractions) in target value (#846)
Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
2025-12-02 09:06:15 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
724a613dda Bump the github-actions group with 4 updates (#849)
Bumps the github-actions group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-go](https://github.com/actions/setup-go), [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) and [docker/metadata-action](https://github.com/docker/metadata-action).


Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

Updates `actions/setup-go` from 6.0.0 to 6.1.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v6...v6.1.0)

Updates `docker/setup-qemu-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/29109295f81e9208d7d86ff1c6c12d2833863392...c7c53464625b32c7a7e944ae62b3e17d2b600130)

Updates `docker/metadata-action` from 5.8.0 to 5.10.0
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/c1e51972afc2121e065aed6d45c65596fe445f3f...c299e40c65443455700f0fdfc63efafe5b349051)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: actions/setup-go
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
- dependency-name: docker/metadata-action
  dependency-version: 5.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 10:43:50 +01:00
Mikkel Oscar Lyderik LarsenandGitHub 33db2b700c Use stdlib context package (#847) 2025-11-27 13:34:22 +01:00
dependabot[bot]andGitHub 4bde6c3b98 Bump github/codeql-action from 3 to 4 in the github-actions group (#840) 2025-11-01 20:44:05 +01:00
Martin LinkhorstandGitHub f295dfa4b6 Merge pull request #835 from zalando-incubator/dependabot/github_actions/github-actions-457c2bfbc2
Bump docker/login-action from 3.5.0 to 3.6.0 in the github-actions group
2025-10-31 10:28:12 +01:00
Martin LinkhorstandGitHub b9a1cf9a26 Merge pull request #837 from zalando-incubator/dependabot/go_modules/all-go-mod-patch-and-minor-d105dbe417
Bump the all-go-mod-patch-and-minor group across 1 directory with 7 updates
2025-10-31 10:27:53 +01:00
Katyanna MouraandGitHub adba88129b Merge pull request #839 from zalando-incubator/go-tool-1.24
Run code gen via Go 1.24 go tool
2025-10-29 13:10:57 +01:00
dependabot[bot]andGitHub e263f964e9 Bump the all-go-mod-patch-and-minor group across 1 directory with 7 updates
Bumps the all-go-mod-patch-and-minor group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.39.0` | `1.39.2` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.31.8` | `1.31.12` |
| [github.com/aws/aws-sdk-go-v2/service/sqs](https://github.com/aws/aws-sdk-go-v2) | `1.42.5` | `1.42.8` |
| [github.com/prometheus/common](https://github.com/prometheus/common) | `0.66.1` | `0.67.1` |
| [github.com/szuecs/routegroup-client](https://github.com/szuecs/routegroup-client) | `0.28.2` | `0.34.1` |
| [golang.org/x/net](https://github.com/golang/net) | `0.44.0` | `0.46.0` |
| [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.31.0` | `0.32.0` |



Updates `github.com/aws/aws-sdk-go-v2` from 1.39.0 to 1.39.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.39.0...v1.39.2)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.31.8 to 1.31.12
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.8...config/v1.31.12)

Updates `github.com/aws/aws-sdk-go-v2/service/sqs` from 1.42.5 to 1.42.8
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.42.5...service/ivs/v1.42.8)

Updates `github.com/prometheus/common` from 0.66.1 to 0.67.1
- [Release notes](https://github.com/prometheus/common/releases)
- [Changelog](https://github.com/prometheus/common/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/common/compare/v0.66.1...v0.67.1)

Updates `github.com/szuecs/routegroup-client` from 0.28.2 to 0.34.1
- [Release notes](https://github.com/szuecs/routegroup-client/releases)
- [Commits](https://github.com/szuecs/routegroup-client/compare/v0.28.2...v0.34.1)

Updates `golang.org/x/net` from 0.44.0 to 0.46.0
- [Commits](https://github.com/golang/net/compare/v0.44.0...v0.46.0)

Updates `golang.org/x/oauth2` from 0.31.0 to 0.32.0
- [Commits](https://github.com/golang/oauth2/compare/v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.39.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.31.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sqs
  dependency-version: 1.42.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/prometheus/common
  dependency-version: 0.67.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: github.com/szuecs/routegroup-client
  dependency-version: 0.34.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: golang.org/x/net
  dependency-version: 0.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-mod-patch-and-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 06:04:53 +00:00
dependabot[bot]andGitHub 88d8843e96 Bump docker/login-action from 3.5.0 to 3.6.0 in the github-actions group
Bumps the github-actions group with 1 update: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 3.5.0 to 3.6.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/184bdaa0721073962dff0199f1fb9940f07167d1...5e57cd118135c172c3672efd75eb46360885c0ef)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 06:28:28 +00:00
22 changed files with 484 additions and 436 deletions
+2 -2
View File
@@ -10,8 +10,8 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v6.0.0
- uses: actions/checkout@v6.0.2
- uses: actions/setup-go@v6.2.0
with:
go-version: '^1.25'
- run: go version
+5 -5
View File
@@ -38,16 +38,16 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6.0.2
- name: setup go
uses: actions/setup-go@v6.0.0
uses: actions/setup-go@v6.2.0
with:
go-version: '1.25'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -61,7 +61,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4
# ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -74,4 +74,4 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
+7 -7
View File
@@ -25,15 +25,15 @@ jobs:
packages: write # to push packages
steps:
- name: Checkout
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00
- uses: actions/setup-go@a5f9b05d2d216f63e13859e0d847461041025775
with:
# https://www.npmjs.com/package/semver#caret-ranges-123-025-004
go-version: '^1.25'
- name: Login to Github Container Registry
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -47,21 +47,21 @@ jobs:
make build.linux.amd64 build.linux.arm64
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f
- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051
id: meta
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
@@ -3,6 +3,13 @@ apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: v1beta1.custom.metrics.k8s.io
{{- with .Values.customMetricsApi.annotations }}
annotations:
{{- range $k, $v := . }}
{{- $value := $v | quote }}
{{- printf "%s: %s" (tpl $k $) (tpl $value $) | nindent 4 }}
{{- end }}
{{- end }}
spec:
service:
name: kube-metrics-adapter
@@ -13,3 +20,4 @@ spec:
groupPriorityMinimum: 100
versionPriority: 100
{{- end}}
""
@@ -3,6 +3,13 @@ apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: v1beta1.external.metrics.k8s.io
{{- with .Values.externalMetricsApi.annotations }}
annotations:
{{- range $k, $v := . }}
{{- $value := $v | quote }}
{{- printf "%s: %s" (tpl $k $) (tpl $value $) | nindent 4 }}
{{- end }}
{{- end }}
spec:
service:
name: kube-metrics-adapter
+12
View File
@@ -15,7 +15,19 @@ addDirectoryHeader:
contentionProfiling:
profiling:
enableCustomMetricsApi: true
# -- add annotations to the custom metrics apiservice resource, e.g.
# cert-manager.io/inject-ca-from: {{.Release.Namespace}}/kube-metrics-adapter to inject the CA certificate form a cert-manager-issued cert used for the deployment
customMetricsApi:
annotations: {}
enableExternalMetricsApi: true
# -- add annotations to the custom metrics apiservice resource, e.g.
# cert-manager.io/inject-ca-from: {{.Release.Namespace}}/kube-metrics-adapter to inject the CA certificate form a cert-manager-issued cert used for the deployment
externalMetricsApi:
annotations: {}
credentialsDirectory:
disregardIncompatibleHPAs:
http2MaxStreamsPerConnection:
+45 -42
View File
@@ -1,32 +1,31 @@
module github.com/zalando-incubator/kube-metrics-adapter
require (
github.com/argoproj/argo-rollouts v1.8.3
github.com/aws/aws-sdk-go-v2 v1.39.0
github.com/aws/aws-sdk-go-v2/config v1.31.8
github.com/aws/aws-sdk-go-v2/service/sqs v1.42.5
github.com/argoproj/argo-rollouts v1.8.4
github.com/aws/aws-sdk-go-v2 v1.41.1
github.com/aws/aws-sdk-go-v2/config v1.32.7
github.com/aws/aws-sdk-go-v2/service/sqs v1.42.21
github.com/influxdata/influxdb-client-go v1.4.0
github.com/prometheus/client_golang v1.23.2
github.com/prometheus/common v0.66.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.10.1
github.com/prometheus/common v0.67.5
github.com/sirupsen/logrus v1.9.4
github.com/spf13/cobra v1.10.2
github.com/spyzhov/ajson v0.9.6
github.com/stretchr/testify v1.11.1
github.com/szuecs/routegroup-client v0.28.2
github.com/szuecs/routegroup-client v0.34.1
github.com/zalando-incubator/cluster-lifecycle-manager v0.0.0-20250912104308-4489de744ee3
golang.org/x/net v0.44.0
golang.org/x/oauth2 v0.31.0
golang.org/x/sync v0.17.0
k8s.io/api v0.34.1
k8s.io/apimachinery v0.34.1
k8s.io/apiserver v0.34.1
k8s.io/client-go v0.34.1
k8s.io/component-base v0.34.1
golang.org/x/oauth2 v0.35.0
golang.org/x/sync v0.19.0
k8s.io/api v0.34.4
k8s.io/apimachinery v0.34.4
k8s.io/apiserver v0.34.4
k8s.io/client-go v0.34.4
k8s.io/component-base v0.34.4
k8s.io/klog v1.0.0
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b
k8s.io/metrics v0.33.5
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
sigs.k8s.io/custom-metrics-apiserver v1.33.0
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912
k8s.io/metrics v0.34.4
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
sigs.k8s.io/custom-metrics-apiserver v1.34.0
)
require (
@@ -40,23 +39,25 @@ require (
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.18.12 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 // indirect
github.com/aws/smithy-go v1.23.0 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.19.7 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 // indirect
github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 // indirect
github.com/aws/smithy-go v1.24.0 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/bytedance/sonic v1.11.9 // indirect
github.com/bytedance/sonic/loader v0.1.1 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
@@ -64,7 +65,7 @@ require (
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deepmap/oapi-codegen v1.16.3 // indirect
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/fatih/structs v1.1.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -168,23 +169,25 @@ require (
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
go.opentelemetry.io/otel/trace v1.35.0 // indirect
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/arch v0.8.0 // indirect
golang.org/x/crypto v0.42.0 // indirect
golang.org/x/crypto v0.46.0 // indirect
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
golang.org/x/mod v0.28.0 // indirect
golang.org/x/sys v0.36.0 // indirect
golang.org/x/term v0.35.0 // indirect
golang.org/x/text v0.29.0 // indirect
golang.org/x/mod v0.30.0 // indirect
golang.org/x/net v0.48.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/term v0.38.0 // indirect
golang.org/x/text v0.32.0 // indirect
golang.org/x/time v0.11.0 // indirect
golang.org/x/tools v0.37.0 // indirect
golang.org/x/tools v0.39.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
google.golang.org/grpc v1.72.1 // indirect
google.golang.org/protobuf v1.36.8 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
@@ -192,10 +195,10 @@ require (
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.34.0 // indirect
k8s.io/code-generator v0.34.1 // indirect
k8s.io/code-generator v0.34.4 // indirect
k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kms v0.34.1 // indirect
k8s.io/kms v0.34.4 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
sigs.k8s.io/controller-tools v0.19.0 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
+95 -326
View File
File diff suppressed because it is too large Load Diff
@@ -268,7 +268,6 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/core/v1.WeightedPodAffinityTerm": schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref),
"k8s.io/api/core/v1.WindowsSecurityContextOptions": schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref),
"k8s.io/apimachinery/pkg/api/resource.Quantity": schema_apimachinery_pkg_api_resource_Quantity(ref),
"k8s.io/apimachinery/pkg/api/resource.int64Amount": schema_apimachinery_pkg_api_resource_int64Amount(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup": schema_pkg_apis_meta_v1_APIGroup(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList": schema_pkg_apis_meta_v1_APIGroupList(ref),
"k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
@@ -15167,15 +15166,12 @@ func schema_pkg_apis_meta_v1_InternalEvent(ref common.ReferenceCallback) common.
"Object": {
SchemaProps: spec.SchemaProps{
Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Bookmark: the object (instance of a type being watched) where\n only ResourceVersion field is set. On successful restart of watch from a\n bookmark resourceVersion, client is guaranteed to not get repeat event\n nor miss any events.\n * If Type is Error: *api.Status is recommended; other types may make sense\n depending on context.",
Ref: ref("k8s.io/apimachinery/pkg/runtime.Object"),
},
},
},
Required: []string{"Type", "Object"},
},
},
Dependencies: []string{
"k8s.io/apimachinery/pkg/runtime.Object"},
}
}
+20
View File
@@ -3,6 +3,7 @@ package collector
import (
"context"
"fmt"
"strings"
"time"
log "github.com/sirupsen/logrus"
@@ -182,6 +183,25 @@ type MetricTypeName struct {
Metric autoscalingv2.MetricIdentifier
}
func (m MetricTypeName) String() string {
str := fmt.Sprintf("%s/%s", m.Type, m.Metric.Name)
if m.Metric.Selector != nil && len(m.Metric.Selector.MatchLabels) > 0 {
str += " " + mapToString(m.Metric.Selector.MatchLabels)
}
return str
}
func mapToString(m map[string]string) string {
str := "{"
keyVals := make([]string, 0, len(m))
for k, v := range m {
keyVals = append(keyVals, fmt.Sprintf("%s=%s", k, v))
}
str += strings.Join(keyVals, ",")
str += "}"
return str
}
type CollectedMetric struct {
Type autoscalingv2.MetricSourceType
Namespace string
+82
View File
@@ -30,6 +30,88 @@ func (c *mockCollector) Interval() time.Duration {
return 0
}
func TestMetricTypeName_String(t *testing.T) {
for _, tc := range []struct {
name string
metricType autoscalingv2.MetricSourceType
metricName string
selector *metav1.LabelSelector
expectedStr string
shouldContain []string
}{
{
name: "nil selector with PodsMetricSourceType",
metricType: autoscalingv2.PodsMetricSourceType,
metricName: "metric-name",
selector: nil,
expectedStr: "Pods/metric-name",
},
{
name: "nil selector with ObjectMetricSourceType",
metricType: autoscalingv2.ObjectMetricSourceType,
metricName: "metric-name",
selector: nil,
expectedStr: "Object/metric-name",
},
{
name: "nil selector with ExternalMetricSourceType",
metricType: autoscalingv2.ExternalMetricSourceType,
metricName: "metric-name",
selector: nil,
expectedStr: "External/metric-name",
},
{
name: "empty selector (non-nil but empty MatchLabels)",
metricType: autoscalingv2.ExternalMetricSourceType,
metricName: "metric-name",
selector: &metav1.LabelSelector{
MatchLabels: map[string]string{},
},
expectedStr: "External/metric-name",
},
{
name: "selector with single MatchLabel",
metricType: autoscalingv2.ExternalMetricSourceType,
metricName: "metric-name",
selector: &metav1.LabelSelector{
MatchLabels: map[string]string{"key": "value"},
},
shouldContain: []string{"External/metric-name", "key=value"},
},
{
name: "selector with multiple MatchLabels",
metricType: autoscalingv2.ExternalMetricSourceType,
metricName: "metric-name",
selector: &metav1.LabelSelector{
MatchLabels: map[string]string{"key1": "val1", "key2": "val2"},
},
shouldContain: []string{"External/metric-name", "key1=val1", "key2=val2"},
},
} {
t.Run(tc.name, func(t *testing.T) {
mtn := MetricTypeName{
Type: tc.metricType,
Metric: autoscalingv2.MetricIdentifier{
Name: tc.metricName,
Selector: tc.selector,
},
}
result := mtn.String()
if tc.expectedStr != "" {
require.Equal(t, tc.expectedStr, result)
}
if len(tc.shouldContain) > 0 {
for _, substring := range tc.shouldContain {
require.Contains(t, result, substring, "result should contain %q", substring)
}
}
})
}
}
func TestNewCollector(t *testing.T) {
for _, tc := range []struct {
msg string
+1 -1
View File
@@ -1,9 +1,9 @@
package collector
import (
"context"
"time"
"golang.org/x/net/context"
autoscalingv2 "k8s.io/api/autoscaling/v2"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/metrics/pkg/apis/custom_metrics"
+1 -1
View File
@@ -1,13 +1,13 @@
package collector
import (
"context"
"fmt"
"strconv"
"strings"
"time"
"github.com/zalando-incubator/kube-metrics-adapter/pkg/zmon"
"golang.org/x/net/context"
autoscalingv2 "k8s.io/api/autoscaling/v2"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+1 -1
View File
@@ -1,10 +1,10 @@
package scheduledscaling
import (
"context"
"fmt"
"time"
"golang.org/x/net/context"
autoscalingv1 "k8s.io/api/autoscaling/v1"
autoscalingv2 "k8s.io/api/autoscaling/v2"
apimeta "k8s.io/apimachinery/pkg/api/meta"
@@ -1,6 +1,7 @@
package scheduledscaling
import (
"context"
"errors"
"fmt"
"math"
@@ -10,7 +11,6 @@ import (
v1 "github.com/zalando-incubator/kube-metrics-adapter/pkg/apis/zalando.org/v1"
zalandov1 "github.com/zalando-incubator/kube-metrics-adapter/pkg/client/clientset/versioned/typed/zalando.org/v1"
"github.com/zalando-incubator/kube-metrics-adapter/pkg/recorder"
"golang.org/x/net/context"
"golang.org/x/sync/errgroup"
autoscalingv2 "k8s.io/api/autoscaling/v2"
corev1 "k8s.io/api/core/v1"
@@ -57,7 +57,7 @@ var (
type now func() time.Time
type scalingScheduleStore interface {
List() []interface{}
List() []any
}
type Controller struct {
@@ -325,7 +325,7 @@ func highestActiveSchedule(hpa *autoscalingv2.HorizontalPodAutoscaler, activeSch
continue
}
target := int64(metric.Object.Target.AverageValue.MilliValue() / 1000)
target := float64(metric.Object.Target.AverageValue.MilliValue()) / 1000.0
if target == 0 {
continue
}
@@ -338,10 +338,10 @@ func highestActiveSchedule(hpa *autoscalingv2.HorizontalPodAutoscaler, activeSch
value = activeSchedules[scheduleName]
}
expected := int64(math.Ceil(float64(value) / float64(target)))
expected := int64(math.Ceil(float64(value) / target))
if expected > highestExpected {
highestExpected = expected
usageRatio = float64(value) / (float64(target) * float64(currentReplicas))
usageRatio = float64(value) / (target * float64(currentReplicas))
highestObject = metric.Object.DescribedObject
}
}
@@ -336,35 +336,42 @@ func TestAdjustScaling(t *testing.T) {
msg string
currentReplicas int32
desiredReplicas int32
targetValue int64
targetValue string
scheduleTarget int64
}{
{
msg: "current less than 10%% below desired (target 10000)",
currentReplicas: 28, // 7.1% increase to desired
desiredReplicas: 31,
targetValue: 333, // 10000/333 ~= 31
targetValue: "333", // 10000/333 ~= 31
scheduleTarget: 10000,
},
{
msg: "current less than 10%% below desired",
currentReplicas: 95, // 5.3% increase to desired
desiredReplicas: 100,
targetValue: 10, // 1000/10 = 100
targetValue: "10", // 1000/10 = 100
scheduleTarget: 1000,
},
{
msg: "current more than 10%% below desired, no adjustment",
currentReplicas: 90, // 11% increase to desired
desiredReplicas: 90,
targetValue: 10, // 1000/10 = 100
targetValue: "10", // 1000/10 = 100
scheduleTarget: 1000,
},
{
msg: "invalid HPA should not do any adjustment",
currentReplicas: 95,
desiredReplicas: 95,
targetValue: 0, // this is treated as invalid in the test, thus the HPA is ingored and no adjustment happens.
targetValue: "", // this is treated as invalid in the test, thus the HPA is ingored and no adjustment happens.
scheduleTarget: 1000,
},
{
msg: "handle milivalue as targetValue",
currentReplicas: 90, // 5.8% increase to desired
desiredReplicas: 96,
targetValue: "10500m", // 1000/10.5 ~= 96
scheduleTarget: 1000,
},
} {
@@ -444,8 +451,11 @@ func TestAdjustScaling(t *testing.T) {
},
}
if tc.targetValue != 0 {
hpa.Spec.Metrics[0].Object.Target.AverageValue = resource.NewQuantity(tc.targetValue, resource.DecimalSI)
if tc.targetValue != "" {
quantity, err := resource.ParseQuantity(tc.targetValue)
require.NoError(t, err)
hpa.Spec.Metrics[0].Object.Target.AverageValue = &quantity
}
hpa, err = kubeClient.AutoscalingV2().HorizontalPodAutoscalers("default").Create(context.Background(), hpa, metav1.CreateOptions{})
+92 -28
View File
@@ -8,6 +8,10 @@ import (
"io"
"net/http"
"net/url"
"strconv"
"time"
"github.com/cenkalti/backoff/v5"
)
// Nakadi defines an interface for talking to the Nakadi API.
@@ -95,26 +99,40 @@ func (c *Client) subscriptions(ctx context.Context, filter *SubscriptionFilter,
endpoint.RawQuery = q.Encode()
}
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint.String(), nil)
if err != nil {
return nil, fmt.Errorf("[nakadi subscriptions] failed to create request: %w", err)
op := func() ([]byte, error) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint.String(), nil)
if err != nil {
return nil, fmt.Errorf("[nakadi subscriptions] failed to create request: %w", err)
}
resp, err := c.http.Do(req)
if err != nil {
return nil, fmt.Errorf("[nakadi subscriptions] failed to make request: %w", err)
}
defer resp.Body.Close()
b, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
if err := checkResponseStatus(resp, b); err != nil {
return nil, fmt.Errorf("[nakadi subscriptions] %w", err)
}
return b, nil
}
resp, err := c.http.Do(req)
if err != nil {
return nil, fmt.Errorf("[nakadi subscriptions] failed to make request: %w", err)
}
defer resp.Body.Close()
d, err := io.ReadAll(resp.Body)
d, err := backoff.Retry(
ctx,
op,
backoff.WithBackOff(exponentialBackoff()),
backoff.WithMaxTries(3),
)
if err != nil {
return nil, err
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("[nakadi subscriptions] unexpected response code: %d (%s)", resp.StatusCode, string(d))
}
var subscriptionsResp struct {
Items []struct {
ID string `json:"id"`
@@ -194,26 +212,40 @@ func (c *Client) stats(ctx context.Context, filter *SubscriptionFilter) ([]stats
q.Set("show_time_lag", "true")
endpoint.RawQuery = q.Encode()
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint.String(), nil)
if err != nil {
return nil, fmt.Errorf("[nakadi stats] failed to create request: %w", err)
op := func() ([]byte, error) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint.String(), nil)
if err != nil {
return nil, fmt.Errorf("[nakadi stats] failed to create request: %w", err)
}
resp, err := c.http.Do(req)
if err != nil {
return nil, fmt.Errorf("[nakadi stats] failed to make request: %w", err)
}
defer resp.Body.Close()
b, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
if err := checkResponseStatus(resp, b); err != nil {
return nil, fmt.Errorf("[nakadi stats] %w", err)
}
return b, nil
}
resp, err := c.http.Do(req)
if err != nil {
return nil, fmt.Errorf("[nakadi stats] failed to make request: %w", err)
}
defer resp.Body.Close()
d, err := io.ReadAll(resp.Body)
d, err := backoff.Retry(
ctx,
op,
backoff.WithBackOff(exponentialBackoff()),
backoff.WithMaxTries(3),
)
if err != nil {
return nil, err
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("[nakadi stats] unexpected response code: %d (%s)", resp.StatusCode, string(d))
}
var result statsResp
err = json.Unmarshal(d, &result)
if err != nil {
@@ -229,3 +261,35 @@ func (c *Client) stats(ctx context.Context, filter *SubscriptionFilter) ([]stats
return stats, nil
}
func checkResponseStatus(resp *http.Response, b []byte) error {
if resp.StatusCode == http.StatusTooManyRequests {
h := resp.Header.Get("Retry-After")
if h == "" {
return fmt.Errorf("unexpected response code: %d (%s)", resp.StatusCode, string(b))
}
sec, err := strconv.ParseInt(h, 10, 32)
if err != nil {
return backoff.Permanent(err)
}
return backoff.RetryAfter(int(sec))
}
if resp.StatusCode >= http.StatusBadRequest &&
resp.StatusCode < http.StatusInternalServerError {
return backoff.Permanent(
fmt.Errorf("non-retryable response code: %d (%s)", resp.StatusCode, string(b)),
)
}
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("unexpected response code: %d (%s)", resp.StatusCode, string(b))
}
return nil
}
func exponentialBackoff() backoff.BackOff {
b := backoff.NewExponentialBackOff()
b.MaxInterval = time.Second * 30
b.InitialInterval = time.Millisecond * 100
return b
}
+63 -2
View File
@@ -5,8 +5,10 @@ import (
"errors"
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/cenkalti/backoff/v5"
"github.com/stretchr/testify/assert"
)
@@ -210,11 +212,70 @@ func TestQuery(tt *testing.T) {
nakadiClient := NewNakadiClient(ts.URL, client)
consumerLagSeconds, err := nakadiClient.ConsumerLagSeconds(context.Background(), ti.subscriptionFilter)
assert.Equal(t, ti.err, err)
assertErrorMessage(t, ti.err, err)
assert.Equal(t, ti.consumerLagSeconds, consumerLagSeconds)
unconsumedEvents, err := nakadiClient.UnconsumedEvents(context.Background(), ti.subscriptionFilter)
assert.Equal(t, ti.err, err)
assertErrorMessage(t, ti.err, err)
assert.Equal(t, ti.unconsumedEvents, unconsumedEvents)
})
}
}
func Test_checkResponseStatus(tt *testing.T) {
for _, ti := range []struct {
msg string
resp *http.Response
errCheck func(error) bool
}{
{
msg: "nil when 200",
resp: &http.Response{StatusCode: http.StatusOK},
},
{
msg: "backoff.Permanent when 4xx",
resp: &http.Response{StatusCode: http.StatusBadRequest},
errCheck: func(err error) bool {
var permanentErr *backoff.PermanentError
return errors.As(err, &permanentErr)
},
},
{
msg: "unexpected error when 422 without Retry-After header",
resp: &http.Response{StatusCode: http.StatusTooManyRequests},
errCheck: func(err error) bool {
return strings.Contains(err.Error(), "unexpected response code")
},
},
{
msg: "backoff.RetryAfter when 422 with Retry-After header",
resp: &http.Response{
StatusCode: http.StatusTooManyRequests,
Header: http.Header{
"Retry-After": []string{"120"},
},
},
errCheck: func(err error) bool {
var retryAfterErr *backoff.RetryAfterError
return errors.As(err, &retryAfterErr)
},
},
} {
tt.Run(ti.msg, func(t *testing.T) {
err := checkResponseStatus(ti.resp, nil)
if ti.errCheck == nil {
assert.NoError(t, err)
} else {
assert.True(t, ti.errCheck(err))
}
})
}
}
func assertErrorMessage(t *testing.T, expected, actual error) {
t.Helper()
if expected != nil {
assert.EqualError(t, actual, expected.Error())
} else {
assert.NoError(t, actual)
}
}
+7 -3
View File
@@ -3,6 +3,7 @@ package provider
import (
"context"
"errors"
"fmt"
"reflect"
"sync"
"time"
@@ -345,7 +346,7 @@ type CollectorScheduler struct {
sync.RWMutex
}
// NewCollectorScheudler initializes a new CollectorScheduler.
// NewCollectorScheduler initializes a new CollectorScheduler.
func NewCollectorScheduler(ctx context.Context, metricsc chan<- metricCollection) *CollectorScheduler {
return &CollectorScheduler{
ctx: ctx,
@@ -375,14 +376,17 @@ func (t *CollectorScheduler) Add(resourceRef resourceReference, typeName collect
collectors[typeName] = cancel
// start runner for new collector
go collectorRunner(ctx, metricCollector, t.metricSink)
go collectorRunner(ctx, typeName, metricCollector, t.metricSink)
}
// collectorRunner runs a collector at the desirec interval. If the passed
// context is canceled the collection will be stopped.
func collectorRunner(ctx context.Context, collector collector.Collector, metricsc chan<- metricCollection) {
func collectorRunner(ctx context.Context, typeName collector.MetricTypeName, collector collector.Collector, metricsc chan<- metricCollection) {
for {
values, err := collector.GetMetrics(ctx)
if err != nil {
err = fmt.Errorf("getting metrics for %s failed: %w", typeName, err)
}
metricsc <- metricCollection{
Values: values,
+1 -1
View File
@@ -1,13 +1,13 @@
package provider
import (
"context"
"sort"
"testing"
"time"
"github.com/stretchr/testify/require"
"github.com/zalando-incubator/kube-metrics-adapter/pkg/collector"
"golang.org/x/net/context"
autoscalingv2 "k8s.io/api/autoscaling/v2"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+12
View File
@@ -70,6 +70,8 @@ func NewCommandStartAdapterServer(stopCh <-chan struct{}) *cobra.Command {
NakadiTokenName: "nakadi",
CredentialsDir: "/meta/credentials",
ExternalRPSMetricName: "skipper_serve_host_duration_seconds_count",
KubeClientQPS: 0.0, // 0.0 will use the 5.0 default in client-go
KubeClientBurst: 0, // 0 will use the 10 default in client-go
}
cmd := &cobra.Command{
@@ -153,6 +155,10 @@ func NewCommandStartAdapterServer(stopCh <-chan struct{}) *cobra.Command {
"The name of the metric that should be used to query prometheus for RPS per hostname.")
flags.BoolVar(&o.ExternalRPSMetrics, "external-rps-metrics", o.ExternalRPSMetrics, ""+
"whether to enable external RPS metric collector or not")
flags.Float64Var(&o.KubeClientQPS, "kube-client-qps", o.KubeClientQPS, ""+
"maximum queries per second (QPS) to the Kubernetes API server (increase for large clusters), defaults to 5")
flags.IntVar(&o.KubeClientBurst, "kube-client-burst", o.KubeClientBurst, ""+
"maximum burst for throttle to the Kubernetes API server (increase for large clusters, defaults to 10)")
return cmd
}
@@ -199,6 +205,8 @@ func (o AdapterServerOptions) RunCustomMetricsAdapterServer(stopCh <-chan struct
}()
clientConfig.Timeout = defaultClientGOTimeout
clientConfig.QPS = float32(o.KubeClientQPS)
clientConfig.Burst = o.KubeClientBurst
client, err := kubernetes.NewForConfig(clientConfig)
if err != nil {
@@ -546,4 +554,8 @@ type AdapterServerOptions struct {
ExternalRPSMetrics bool
// Name of the Prometheus metric that stores RPS by hostname for external RPS metrics.
ExternalRPSMetricName string
// KubeClientQPS configures the maximum QPS to the Kubernetes API server
KubeClientQPS float64
// KubeClientBurst configures the maximum burst for throttle to the Kubernetes API server
KubeClientBurst int
}