File tree Expand file tree Collapse file tree 2 files changed +17
-0
lines changed
Expand file tree Collapse file tree 2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -49,6 +49,7 @@ import (
4949 "k8s.io/apimachinery/pkg/util/sets"
5050 auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
5151 apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
52+ ksmpkg "k8s.io/kube-state-metrics/v2/pkg/options"
5253 "k8s.io/utils/ptr"
5354 k8syaml "sigs.k8s.io/yaml"
5455
@@ -767,6 +768,19 @@ func (f *Factory) KubeStateMetricsDeployment(enableCRSMetrics bool) (*appsv1.Dep
767768 if enableCRSMetrics {
768769 d .Spec .Template .Spec .Containers [i ].Args = append (container .Args , flagCRSConfigFile )
769770 }
771+ additionalAllowList := f .config .ClusterMonitoringConfiguration .KubeStateMetricsConfig .AdditionalLabelsAllowList
772+ if additionalAllowList != nil && * additionalAllowList != "" {
773+ allowListValidator := ksmpkg.LabelsAllowList {}
774+ err = allowListValidator .Set (* additionalAllowList )
775+ if err != nil {
776+ return nil , fmt .Errorf ("error parsing allowlist: %v" , err )
777+ }
778+ for i = range container .Args {
779+ if strings .HasPrefix (container .Args [i ], "--metric-labels-allowlist=" ) {
780+ container .Args [i ] += "," + * additionalAllowList
781+ }
782+ }
783+ }
770784 }
771785 }
772786
Original file line number Diff line number Diff line change @@ -175,6 +175,9 @@ type KubeStateMetricsConfig struct {
175175 Tolerations []v1.Toleration `json:"tolerations,omitempty"`
176176 // Defines a pod's topology spread constraints.
177177 TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
178+ // Defines any additional resource-based label-metrics' allow listing in addition to the default one.
179+ // Refer: https://pkg.go.dev/k8s.io/kube-state-metrics/[email protected] /pkg/options#LabelsAllowList 180+ AdditionalLabelsAllowList * string `json:"additionalLabelsAllowList,omitempty"`
178181}
179182
180183// The `PrometheusK8sConfig` resource defines settings for the Prometheus
You can’t perform that action at this time.
0 commit comments