Skip to content

Commit

Permalink
feat: support Selectors field in kubernetes SD
Browse files Browse the repository at this point in the history
Related-to #5711

Signed-off-by: Jayapriya Pai <slashpai9@gmail.com>
  • Loading branch information
slashpai committed Oct 31, 2023
1 parent 18a2bad commit b82ed76
Show file tree
Hide file tree
Showing 16 changed files with 428 additions and 17 deletions.
80 changes: 77 additions & 3 deletions Documentation/api.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 23 additions & 1 deletion bundle.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 31 additions & 2 deletions jsonnet/prometheus-operator/scrapeconfigs-crd.json
Original file line number Diff line number Diff line change
Expand Up @@ -1009,11 +1009,40 @@
"description": "KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config",
"properties": {
"role": {
"description": "Role of the Kubernetes entities that should be discovered. Currently the only supported role is \"Node\".",
"description": "Role of the Kubernetes entities that should be discovered.",
"enum": [
"Node"
"Node",
"node"
],
"type": "string"
},
"selectors": {
"description": "Selector to select objects.",
"items": {
"description": "K8SSelectorConfig is Kubernetes Selector Config",
"properties": {
"field": {
"type": "string"
},
"label": {
"type": "string"
},
"role": {
"description": "K8SRole is role of the service in Kubernetes. Currently the only supported role is \"Node\".",
"enum": [
"Node",
"node"
],
"type": "string"
}
},
"type": "object"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"role"
],
"x-kubernetes-list-type": "map"
}
},
"required": [
Expand Down
22 changes: 19 additions & 3 deletions pkg/apis/monitoring/v1alpha1/scrapeconfig_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,19 @@ type EC2Filter struct {
Values []string `json:"values"`
}

// K8SRole is role of the service in Kubernetes.
// Currently the only supported role is "Node".
// +kubebuilder:validation:Enum=Node;node
type K8SRole string

// K8SSelectorConfig is Kubernetes Selector Config
type K8SSelectorConfig struct {
// +kubebuilder:validation:Required
Role K8SRole `json:"role,omitempty"`
Label string `json:"label,omitempty"`
Field string `json:"field,omitempty"`
}

// +genclient
// +k8s:openapi-gen=true
// +kubebuilder:resource:categories="prometheus-operator",shortName="scfg"
Expand Down Expand Up @@ -225,10 +238,13 @@ type HTTPSDConfig struct {
// +k8s:openapi-gen=true
type KubernetesSDConfig struct {
// Role of the Kubernetes entities that should be discovered.
// Currently the only supported role is "Node".
// +kubebuilder:validation:Enum=Node
// +required
Role string `json:"role"`
Role K8SRole `json:"role"`
// Selector to select objects.
// +optional
// +listType=map
// +listMapKey=role
Selectors []K8SSelectorConfig `json:"selectors,omitempty"`
}

// ConsulSDConfig defines a Consul service discovery configuration
Expand Down
24 changes: 23 additions & 1 deletion pkg/apis/monitoring/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b82ed76

Please sign in to comment.