What does this PR do?
Enhancement - This change expands the ability to setcondition to the remaining inputs within the Kubernetes integration.
The main driving factor behind this change is to allow for creating moredynamic Elastic Agent policies which can be used to monitor multiple different Kubernetes setups (ex: different distro's - RKE2, EKS, AKS, etc...; different IP schemas - IPv4 vs IPv6) from a single Elastic Agent policy that contains conditionally defined Kubernetes integration inputs.
Checklist
Author's Checklist
How to test this PR locally
- Upgrade to the latest version
- Add
condition values as needed - Confirm that the
condition values are added appropriately
Below are configs which demonstrate that thecondition functionality has been tested at a configuration level. I've broken the evidence down by input (group) as this is a somewhat large change.
Kubelet API
---No `condition` set
inputs: -id:kubernetes/metrics-kubelet-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:1type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.container type: metrics metricsets: - container add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' period: 10s bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.verification_mode: none -id:>- kubernetes/metrics-kubernetes.node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.node type: metrics metricsets: - node add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' period: 10s bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.verification_mode: none -id:kubernetes/metrics-kubernetes.pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066data_stream:dataset:kubernetes.podtype:metricsmetricsets: -podadd_metadata:truehosts: -'https://${env.NODE_NAME}:10250'period:10sbearer_token_file:/var/run/secrets/kubernetes.io/serviceaccount/tokenssl.verification_mode:none -id:>- kubernetes/metrics-kubernetes.system-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.system type: metrics metricsets: - system add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' period: 10s bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.verification_mode: none -id:>- kubernetes/metrics-kubernetes.volume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.volume type: metrics metricsets: - volume add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' period: 10s bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ssl.verification_mode: none`condition` set
inputs: -id:kubernetes/metrics-kubelet-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:2type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.container type: metrics period: 10s condition: '${host.name} == "testing"' add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' ssl.verification_mode: none metricsets: - container bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.node type: metrics period: 10s condition: '${host.name} == "testing"' add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' ssl.verification_mode: none metricsets: - node bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:kubernetes/metrics-kubernetes.pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066data_stream:dataset:kubernetes.podtype:metricsperiod:10scondition:'${host.name} == "testing"'add_metadata:truehosts: -'https://${env.NODE_NAME}:10250'ssl.verification_mode:nonemetricsets: -podbearer_token_file:/var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.system-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.system type: metrics period: 10s condition: '${host.name} == "testing"' add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' ssl.verification_mode: none metricsets: - system bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.volume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.volume type: metrics period: 10s condition: '${host.name} == "testing"' add_metadata:true hosts: - 'https://${env.NODE_NAME}:10250' ssl.verification_mode: none metricsets: - volume bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ---kube-state-metrics
---No `condition` set, but leader election set
inputs: -id:kubernetes/metrics-kube-state-metrics-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:3type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.state_container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_container type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_container bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_cronjob-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_cronjob type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_cronjob bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_daemonset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_daemonset type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_daemonset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_deployment-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_deployment type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_deployment bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_job-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_job type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_job bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_node type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_node bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolume type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolume bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolumeclaim-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolumeclaim type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolumeclaim bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_pod type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_pod bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_replicaset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_replicaset type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_replicaset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_resourcequota-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_resourcequota type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_resourcequota bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_service-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_service type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_service bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_statefulset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_statefulset type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_statefulset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_storageclass-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_storageclass type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_storageclass bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set, and leader election set
inputs: -id:kubernetes/metrics-kube-state-metrics-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:4type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.state_container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_container type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_container bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_cronjob-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_cronjob type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_cronjob bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_daemonset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_daemonset type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_daemonset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_deployment-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_deployment type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_deployment bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_job-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_job type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_job bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_node type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_node bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolume type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolume bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolumeclaim-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolumeclaim type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolumeclaim bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_pod type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_pod bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_replicaset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_replicaset type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_replicaset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_resourcequota-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_resourcequota type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_resourcequota bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_service-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_service type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_service bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_statefulset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_statefulset type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_statefulset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_storageclass-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_storageclass type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_storageclass bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set, no leader election set
inputs: -id:kubernetes/metrics-kube-state-metrics-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:5type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.state_container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_container type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_container bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_cronjob-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_cronjob type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_cronjob bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_daemonset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_daemonset type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_daemonset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_deployment-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_deployment type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_deployment bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_job-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_job type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_job bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_node type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_node bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolume type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolume bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolumeclaim-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolumeclaim type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolumeclaim bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_pod type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_pod bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_replicaset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_replicaset type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_replicaset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_resourcequota-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_resourcequota type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_resourcequota bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_service-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_service type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_service bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_statefulset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_statefulset type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_statefulset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_storageclass-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_storageclass type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_storageclass bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenNo `condition` set, no leader election set
inputs: -id:kubernetes/metrics-kube-state-metrics-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:6type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.state_container-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_container type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_container bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_cronjob-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_cronjob type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_cronjob bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_daemonset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_daemonset type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_daemonset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_deployment-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_deployment type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_deployment bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_job-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_job type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_job bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_node-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_node type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_node bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolume-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolume type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolume bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_persistentvolumeclaim-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_persistentvolumeclaim type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_persistentvolumeclaim bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_pod-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_pod type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_pod bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_replicaset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_replicaset type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_replicaset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_resourcequota-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_resourcequota type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_resourcequota bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_service-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_service type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_service bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_statefulset-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_statefulset type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_statefulset bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token -id:>- kubernetes/metrics-kubernetes.state_storageclass-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.state_storageclass type: metrics period: 10s add_metadata:true hosts: - 'kube-state-metrics:8080' metricsets: - state_storageclass bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
---Kubernetes API Server
---No `condition`, but leader election set
inputs: -id:kubernetes/metrics-kube-apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:7type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.apiserver type: metrics period: 30s condition: '${kubernetes_leaderelection.leader} == true' hosts: - >- https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT} metricsets: - apiserver ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set, and leader election set
inputs: -id:kubernetes/metrics-kube-apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:8type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.apiserver type: metrics period: 30s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' hosts: - >- https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT} metricsets: - apiserver ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set, but leader election not set
inputs: -id:kubernetes/metrics-kube-apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:9type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.apiserver type: metrics period: 30s condition: '${host.name} == ''testing''' hosts: - >- https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT} metricsets: - apiserver ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/tokenNo `condition` set, no leader election set
inputs: -id:kubernetes/metrics-kube-apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:10type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.apiserver-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.apiserver type: metrics period: 30s hosts: - >- https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT} metricsets: - apiserver ssl.certificate_authorities: - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ---Kubernetes Proxy
---No `condition` set
inputs: -id:kubernetes/metrics-kube-proxy-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:11type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.proxy-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.proxy type: metrics period: 10s hosts: - 'localhost:10249' metricsets: - proxy
`condition` set
inputs: -id:kubernetes/metrics-kube-proxy-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:12type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.proxy-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.proxy type: metrics period: 10s condition: '${host.name} == ''testing''' hosts: - 'localhost:10249' metricsets: - proxy ---Kubernetes Scheduler
---No `condition` set
inputs: -id:kubernetes/metrics-kube-scheduler-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:13type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.scheduler-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.scheduler type: metrics period: 10s condition: '${kubernetes.labels.component} == ''kube-scheduler''' hosts: - 'https://0.0.0.0:10259' ssl.verification_mode: none metricsets: - scheduler bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set
inputs: -id:kubernetes/metrics-kube-scheduler-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:14type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.scheduler-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.scheduler type: metrics period: 10s condition: >- ${kubernetes.labels.component} == 'kube-scheduler' and ${host.name} == 'testing' hosts: - 'https://0.0.0.0:10259' ssl.verification_mode: none metricsets: - scheduler bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ---Kubernetes controller-manager
---No `condition`
inputs: -id:>- kubernetes/metrics-kube-controller-manager-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 name: kubernetes-1 revision: 15 type: kubernetes/metrics use_output: default meta: package: name: kubernetes version: 1.44.5 data_stream: namespace: default package_policy_id: b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 streams: - id: >- kubernetes/metrics-kubernetes.controllermanager-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.controllermanager type: metrics period: 10s condition: '${kubernetes.labels.component} == ''kube-controller-manager''' hosts: - 'https://0.0.0.0:10257' ssl.verification_mode: none metricsets: - controllermanager bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token`condition` set
inputs: -id:>- kubernetes/metrics-kube-controller-manager-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 name: kubernetes-1 revision: 16 type: kubernetes/metrics use_output: default meta: package: name: kubernetes version: 1.44.5 data_stream: namespace: default package_policy_id: b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 streams: - id: >- kubernetes/metrics-kubernetes.controllermanager-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.controllermanager type: metrics period: 10s condition: >- ${kubernetes.labels.component} == 'kube-controller-manager' and ${host.name} == 'testing' hosts: - 'https://0.0.0.0:10257' ssl.verification_mode: none metricsets: - controllermanager bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token ---Kubernetes API Server
---No `condition`, but with leader election
inputs: -id:kubernetes/metrics-events-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:17type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.event-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.event type: metrics period: 10s condition: '${kubernetes_leaderelection.leader} == true' add_metadata:true metricsets: - event skip_older:true`condition` set, and leader election set
inputs: -id:kubernetes/metrics-events-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:18type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.event-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.event type: metrics period: 10s condition: >- ${kubernetes_leaderelection.leader} == true and ${host.name} == 'testing' add_metadata:true metricsets: - event skip_older:true`condition` set, but leader election not set
inputs: -id:kubernetes/metrics-events-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:19type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.event-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.event type: metrics period: 10s condition: '${host.name} == ''testing''' add_metadata:true metricsets: - event skip_older:trueNo `condition` set, and leader election not set
inputs: -id:kubernetes/metrics-events-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:20type:kubernetes/metricsuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:>- kubernetes/metrics-kubernetes.event-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066 data_stream: dataset: kubernetes.event type: metrics period: 10s add_metadata:true metricsets: - event skip_older:true
---Kubernetes audit logs
---No `condition` set
inputs: -id:filestream-audit-logs-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:21type:filestreamuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:filestream-kubernetes.audit_logs-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066data_stream:dataset:kubernetes.audit_logstype:logsexclude_files: -.gz$paths: -/var/log/kubernetes/kube-apiserver-audit.logparsers: -ndjson:add_error_key:truetarget:kubernetes_auditprocessors: -rename:fields: -from:kubernetes_auditto:kubernetes.audit -drop_fields:fields: -kubernetes.audit.responseObject.metadatawhen:has_fields:kubernetes.audit.responseObject -drop_fields:fields: -kubernetes.audit.requestObject.metadatawhen:has_fields:kubernetes.audit.requestObject -script:id:dedot_annotationssource:| function process(event) { var audit = event.Get("kubernetes.audit"); for (var annotation in audit["annotations"]) { var annotation_dedoted = annotation.replace(/\./g,'_') event.Rename("kubernetes.audit.annotations."+annotation, "kubernetes.audit.annotations."+annotation_dedoted) } return event; } function test() { var event = process(new Event({ "kubernetes": { "audit": { "annotations": { "authorization.k8s.io/decision": "allow", "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:kube-scheduler\" of ClusterRole \"system:kube-scheduler\" to User \"system:kube-scheduler\"" } } } })); if (event.Get("kubernetes.audit.annotations.authorization_k8s_io/decision") !== "allow") { throw "expected kubernetes.audit.annotations.authorization_k8s_io/decision === allow"; } }lang:javascript`condition` set
inputs: -id:filestream-audit-logs-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066name:kubernetes-1revision:22type:filestreamuse_output:defaultmeta:package:name:kubernetesversion:1.44.5data_stream:namespace:defaultpackage_policy_id:b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066streams: -id:filestream-kubernetes.audit_logs-b6ebc720-3bc7-11ee-a0fc-f5e8b9d3c066data_stream:dataset:kubernetes.audit_logstype:logsexclude_files: -.gz$condition:'${host.name} ==''testing'''paths: -/var/log/kubernetes/kube-apiserver-audit.logparsers: -ndjson:add_error_key:truetarget:kubernetes_auditprocessors: -rename:fields: -from:kubernetes_auditto:kubernetes.audit -drop_fields:fields: -kubernetes.audit.responseObject.metadatawhen:has_fields:kubernetes.audit.responseObject -drop_fields:fields: -kubernetes.audit.requestObject.metadatawhen:has_fields:kubernetes.audit.requestObject -script:id:dedot_annotationssource:| function process(event) { var audit = event.Get("kubernetes.audit"); for (var annotation in audit["annotations"]) { var annotation_dedoted = annotation.replace(/\./g,'_') event.Rename("kubernetes.audit.annotations."+annotation, "kubernetes.audit.annotations."+annotation_dedoted) } return event; } function test() { var event = process(new Event({ "kubernetes": { "audit": { "annotations": { "authorization.k8s.io/decision": "allow", "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:kube-scheduler\" of ClusterRole \"system:kube-scheduler\" to User \"system:kube-scheduler\"" } } } })); if (event.Get("kubernetes.audit.annotations.authorization_k8s_io/decision") !== "allow") { throw "expected kubernetes.audit.annotations.authorization_k8s_io/decision === allow"; } }lang:javascript ---Related issues
Screenshots
Uh oh!
There was an error while loading.Please reload this page.
What does this PR do?
Enhancement - This change expands the ability to set
conditionto the remaining inputs within the Kubernetes integration.The main driving factor behind this change is to allow for creating moredynamic Elastic Agent policies which can be used to monitor multiple different Kubernetes setups (ex: different distro's - RKE2, EKS, AKS, etc...; different IP schemas - IPv4 vs IPv6) from a single Elastic Agent policy that contains conditionally defined Kubernetes integration inputs.
Checklist
changelog.ymlfile.Author's Checklist
conditionfields added are hidden/advanced, they're targeted at more edge-case needs I believe, so I don't think it makes sense to show themconditionfieldconditionon each metric input individuallyconditionfieldconditionon each metric input individuallyconditionfield here is to be able to support host values that need to target either IPv4 or IPv6 (host values in IPv6 need to be wrapped in[]when also specifying a port)conditionfield is to be able to support different Kubernetes distro's where their audit log location is differentHow to test this PR locally
conditionvalues as neededconditionvalues are added appropriatelyBelow are configs which demonstrate that the
conditionfunctionality has been tested at a configuration level. I've broken the evidence down by input (group) as this is a somewhat large change.Kubelet API
---No `condition` set
`condition` set
kube-state-metrics
---No `condition` set, but leader election set
`condition` set, and leader election set
`condition` set, no leader election set
No `condition` set, no leader election set
Kubernetes API Server
---No `condition`, but leader election set
`condition` set, and leader election set
`condition` set, but leader election not set
No `condition` set, no leader election set
Kubernetes Proxy
---No `condition` set
`condition` set
Kubernetes Scheduler
---No `condition` set
`condition` set
Kubernetes controller-manager
---No `condition`
`condition` set
Kubernetes API Server
---No `condition`, but with leader election
`condition` set, and leader election set
`condition` set, but leader election not set
No `condition` set, and leader election not set
Kubernetes audit logs
---No `condition` set
`condition` set
Related issues
Screenshots