Fix: avoid panic in ksm-core ingresses collector #15623
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
upstream fixes.
usage in the kubernetes_state_core check. this patch require to use a
fork of the upstream project until fix: public Builder compatibility with the BuilderInterface kubernetes/kube-state-metrics#1994 has
been merged and released.
Motivation
Fix possible panic in the kubernetes_state_core check, when a Kubernetes Ingress object with a
resource
instead of a
service
inside.rules[].http.paths[].backend
.Additional Notes
Possible Drawbacks / Trade-offs
we update from
v2.4.2
tov2.7.0
"kube-state-metrics" to benefit from the upstream fix. But it is not the only fix or code change. we need to be careful during the QA of this card on otherkubernetes_state.*
metrics generation.Describe how to test/QA your changes
deploy the agent and cluster-agent with
kubernetes_state_core
enabled.create an Ingress object with a rule defining using a
resource
instead of aservice
in.rules[].http.paths[].backend
.With this fix is should not panic.
Reviewer's Checklist
Triage
milestone is set.major_change
label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.changelog/no-changelog
label has been applied.qa/skip-qa
label is not applied.team/..
label has been applied, indicating the team(s) that should QA this change.need-change/operator
andneed-change/helm
labels have been applied.k8s/<min-version>
label, indicating the lowest Kubernetes version compatible with this feature.